org.jikesrvm.compilers.opt.lir2mir
Class BURS

java.lang.Object
  extended by org.jikesrvm.compilers.opt.lir2mir.BURS
Direct Known Subclasses:
MinimalBURS, NormalBURS

public abstract class BURS
extends Object

A few common utilities used for invoking BURS tree-pattern matching to do instruction selection. The interesting code is in the subclasses of this class.


Field Summary
protected  ArchitectureSpecificOpt.BURS_TreeNode AddressConstant
           
protected  ArchitectureSpecificOpt.BURS_TreeNode BranchTarget
           
static boolean DEBUG
           
 IR ir
           
protected  Instruction lastInstr
           
protected  ArchitectureSpecificOpt.BURS_TreeNode LongConstant
           
protected  ArchitectureSpecificOpt.BURS_TreeNode NullTreeNode
           
protected  ArchitectureSpecificOpt.BURS_TreeNode Register
           
 
Constructor Summary
BURS(IR ir)
           
 
Method Summary
 void append(Instruction instruction)
          Appends an instruction, i.e. emits an MIR instruction.
(package private)  void finalizeBlock(BasicBlock bb)
          Must be called after invoke for all non-empty blocks.
(package private)  void prepareForBlock(BasicBlock bb)
          Prepare to convert a block.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEBUG

public static final boolean DEBUG
See Also:
Constant Field Values

NullTreeNode

protected final ArchitectureSpecificOpt.BURS_TreeNode NullTreeNode

LongConstant

protected final ArchitectureSpecificOpt.BURS_TreeNode LongConstant

AddressConstant

protected final ArchitectureSpecificOpt.BURS_TreeNode AddressConstant

Register

protected final ArchitectureSpecificOpt.BURS_TreeNode Register

BranchTarget

protected final ArchitectureSpecificOpt.BURS_TreeNode BranchTarget

ir

public final IR ir

lastInstr

protected Instruction lastInstr
Constructor Detail

BURS

BURS(IR ir)
Method Detail

prepareForBlock

final void prepareForBlock(BasicBlock bb)
Prepare to convert a block. Must be called before invoke.

Parameters:
bb -

finalizeBlock

final void finalizeBlock(BasicBlock bb)
Must be called after invoke for all non-empty blocks.

Parameters:
bb -

append

public final void append(Instruction instruction)
Appends an instruction, i.e. emits an MIR instruction.