harpoon.Analysis.Tree
Class MemHoisting

java.lang.Object
  extended by harpoon.Analysis.Tree.Simplification
      extended by harpoon.Analysis.Tree.MemHoisting

public abstract class MemHoisting
extends Simplification

MemHoisting ensures that the ordering of MEM operations is well-defined in the tree, by creating a temporary for and hoisting all but one MEM in any given subexpression. Canonicalization completes the transformation.

Version:
$Id: MemHoisting.java,v 1.4 2002/04/10 03:02:06 cananian Exp $
Author:
C. Scott Ananian <cananian@alumni.princeton.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
 
Method Summary
static HCodeFactory codeFactory(HCodeFactory parent)
          Code factory for applying MemHoisting to a canonical tree.
static List<Simplification.Rule> HCE_RULES(Code code)
           
 
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
 

Method Detail

codeFactory

public static HCodeFactory codeFactory(HCodeFactory parent)
Code factory for applying MemHoisting to a canonical tree. Clones the tree before doing transformation in-place.


HCE_RULES

public static List<Simplification.Rule> HCE_RULES(Code code)