at.dms.backend
Class Optimizer

java.lang.Object
  extended by at.dms.backend.Optimizer
All Implemented Interfaces:
AccessorContainer

public class Optimizer
extends Object
implements AccessorContainer

This class is the entry point for the peephole byte code optimizer


Constructor Summary
Optimizer(CodeInfo codeInfo)
          Constructs a new optimizer object.
 
Method Summary
 CodeInfo getCodeInfo()
          Returns a new, optimized code info structure.
 InstructionHandle getCodeStart()
           
static CodeInfo optimize(CodeInfo code)
          Optimizes the byte code for a single method.
static CodeInfo optimize(MethodInfo info, CodeInfo code, BackendOptions options)
          Optimizes the byte code for a single method.
 void setCodeStart(InstructionHandle handle)
           
 void transformAccessors(AccessorTransformer transformer)
          Transforms targets (deferences to actual instructions).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Optimizer

public Optimizer(CodeInfo codeInfo)
Constructs a new optimizer object.

Method Detail

optimize

public static CodeInfo optimize(MethodInfo info,
                                CodeInfo code,
                                BackendOptions options)
Optimizes the byte code for a single method.


optimize

public static CodeInfo optimize(CodeInfo code)
Optimizes the byte code for a single method.


getCodeInfo

public CodeInfo getCodeInfo()
Returns a new, optimized code info structure.


transformAccessors

public void transformAccessors(AccessorTransformer transformer)
                        throws BadAccessorException
Transforms targets (deferences to actual instructions).

Specified by:
transformAccessors in interface AccessorContainer
Parameters:
transformer - the transformer used to transform accessors
Throws:
BadAccessorException

setCodeStart

public void setCodeStart(InstructionHandle handle)

getCodeStart

public InstructionHandle getCodeStart()