harpoon.Analysis.Tree
Class MemHoisting

java.lang.Object
  |
  +--harpoon.Analysis.Tree.Simplification
        |
        +--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.3 2002/02/26 22:42:47 cananian Exp $
Author:
C. Scott Ananian <cananian@alumni.princeton.edu>

Nested Class Summary
 
Nested classes 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
MemHoisting()
           
 
Method Summary
static HCodeFactory codeFactory(HCodeFactory parent)
          Code factory for applying MemHoisting to a canonical tree.
static List 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
 

Constructor Detail

MemHoisting

public MemHoisting()
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 HCE_RULES(Code code)