harpoon.Backend.Analysis
Class GCTraceStore

java.lang.Object
  extended by harpoon.Analysis.Tree.Simplification
      extended by harpoon.Backend.Analysis.GCTraceStore

public class GCTraceStore
extends Simplification

GCTraceStore traces stores for the purposes of garbage collection. MOVE(MEM(foo), bar) -> NATIVECALL(foo, bar) where MEM.getType() == Type.POINTER.

Author:
Wes Beebee <wbeebee@mit.edu>

Nested Class Summary
 
Nested classes/interfaces inherited from class harpoon.Analysis.Tree.Simplification
Simplification.Rule
 
Field Summary
 
Fields inherited from class harpoon.Analysis.Tree.Simplification
_ADD, _ALIGN, _AND, _BINOP, _CALL, _CJUMP, _CMPEQ, _CMPGE, _CMPGT, _CMPLE, _CMPLT, _CMPNE, _CONST, _CONST0, _CONST1, _CONSTm1, _CONSTNULL, _DATUM, _DIV, _ESEQ, _EXPR, _JUMP, _LABEL, _MEM, _METHOD, _MOVE, _MUL, _NAME, _NATIVECALL, _OR, _REM, _RETURN, _SEGMENT, _SEQ, _SHL, _SHR, _TEMP, _THROW, _UNOP, _USHR, _XOR
 
Constructor Summary
GCTraceStore()
           
 
Method Summary
 HCodeFactory codeFactory(HCodeFactory parent)
           
protected static Exp DECLARE(DerivationGenerator dg, Derivation.DList dl, Exp exp)
          Declare a derived pointer.
protected static Exp DECLARE(DerivationGenerator dg, HClass hc, Exp exp)
          Declare the type of an expression.
protected static Exp DECLARE(DerivationGenerator dg, HClass hc, Temp t, Exp exp)
          Declare the type of an expression and the variable associated with it.
protected static TEMP ref(TreeFactory tf, DerivationGenerator dg, Stm e, Temp t1)
           
protected static TEMP val(TreeFactory tf, DerivationGenerator dg, Stm e, Temp t2)
           
 
Methods inherited from class harpoon.Analysis.Tree.Simplification
_KIND, _OP, codeFactory, contains, simplify
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GCTraceStore

public GCTraceStore()
Method Detail

ref

protected static TEMP ref(TreeFactory tf,
                          DerivationGenerator dg,
                          Stm e,
                          Temp t1)

val

protected static TEMP val(TreeFactory tf,
                          DerivationGenerator dg,
                          Stm e,
                          Temp t2)

codeFactory

public HCodeFactory codeFactory(HCodeFactory parent)

DECLARE

protected static Exp DECLARE(DerivationGenerator dg,
                             HClass hc,
                             Exp exp)
Declare the type of an expression.


DECLARE

protected static Exp DECLARE(DerivationGenerator dg,
                             HClass hc,
                             Temp t,
                             Exp exp)
Declare the type of an expression and the variable associated with it.


DECLARE

protected static Exp DECLARE(DerivationGenerator dg,
                             Derivation.DList dl,
                             Exp exp)
Declare a derived pointer.