harpoon.IR.Quads
Class QuadRSSx

java.lang.Object
  extended by harpoon.ClassFile.HCode<Quad>
      extended by harpoon.IR.Quads.Code
          extended by harpoon.IR.Quads.QuadRSSx
All Implemented Interfaces:
Graph<Quad,Edge>, Serializable
Direct Known Subclasses:
ContCode

public class QuadRSSx
extends Code

Quads.QuadRSSx is a code view in relaxed SSI form. Quad form exposes the details of the java classfile bytecodes in a pseudo-quadruple format. Implementation details of the stack-based JVM are hidden in favor of a flat consistent temporary-variable based approach. The generated quadruples adhere to an QuadNoSSA form (that is, there are no contraints on variable definitions/re-definitions); but PHI and SIGMA functions are allowed. PHI and SIGMA nodes behave semantically as their no-ssa conversion; that is, execution proceeds as if there were implicit MOVEs on the edges leading to/coming from the PHI/SIGMA nodes.

Version:
$Id: QuadRSSx.java,v 1.3 2002/09/01 07:47:20 cananian Exp $
Author:
Brian Demsky <bdemsky@mit.edu>
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class harpoon.ClassFile.HCode
HCode.PrintCallback<HCE extends HCodeElement>
 
Nested classes/interfaces inherited from interface harpoon.Util.Collections.Graph
Graph.Edge<N extends Graph.Node<N,E>,E extends Graph.Edge<N,E>>, Graph.Node<N extends Graph.Node<N,E>,E extends Graph.Edge<N,E>>
 
Field Summary
static String codename
          The name of this code view.
 
Fields inherited from class harpoon.IR.Quads.Code
ai, parent, qf, quads
 
Constructor Summary
protected QuadRSSx(HMethod parent, Quad quads)
          Create a new code object given a quadruple representation of the method instructions.
 
Method Summary
 HCodeAndMaps<Quad> clone(HMethod newMethod)
          Clone this code representation.
static HCodeFactory codeFactory(HCodeFactory hcf)
          Return a code factory for QuadRSSx, given a code factory for QuadNoSSA or QuadSSI.
 String getName()
          Return the name of this code view.
 
Methods inherited from class harpoon.IR.Quads.Code
cloneHelper, cloneHelper, elementArrayFactory, getAllocationInformation, getDerivation, getElements, getElementsI, getLeafElements, getMethod, getRootElement, newQF, nodes, notifyReplace, print, selectAllocations, selectCALLs, selectQuads, setAllocationInformation
 
Methods inherited from class harpoon.ClassFile.HCode
clone, elementIndexer, getElementsL, print, toString
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

codename

public static final String codename
The name of this code view.

See Also:
Constant Field Values
Constructor Detail

QuadRSSx

protected QuadRSSx(HMethod parent,
                   Quad quads)
Create a new code object given a quadruple representation of the method instructions.

Method Detail

clone

public HCodeAndMaps<Quad> clone(HMethod newMethod)
Clone this code representation. The clone has its own copy of the quad graph.

Specified by:
clone in class Code

getName

public String getName()
Return the name of this code view.

Specified by:
getName in class Code
Returns:
the string "relaxed-quad-ssi".

codeFactory

public static HCodeFactory codeFactory(HCodeFactory hcf)
Return a code factory for QuadRSSx, given a code factory for QuadNoSSA or QuadSSI.