harpoon.IR.LowQuad
Class LowQuadNoSSA

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

public class LowQuadNoSSA
extends Code

The LowQuadNoSSA codeview exposes a lowquad-based representation. The distinguishing characteristic of this codeview is that is not in SSA form. What this means is that, although there are still PHI and SIGMA quads in this codeview, they do not actually assign values to temporaries. In other words, PHI and SIGMA nodes exist solely to indicate flow of control in a program, but they will always be empty.

Version:
$Id: LowQuadNoSSA.java,v 1.3 2003/03/10 22:19:14 cananian Exp $
Author:
Duncan Bryce <duncan@lcs.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 LowQuadNoSSA(HMethod method, 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()
          Return a code factory for LowQuadNoSSA, using the default code factory for LowQuadSSI
static HCodeFactory codeFactory(HCodeFactory hcf)
          Return a code factory for LowQuadNoSSA, given a code factory for either LowQuadSSI.
 String getName()
          Return the name of this code view.
 
Methods inherited from class harpoon.IR.LowQuad.Code
cloneHelper, getDerivation, newQF, setDerivation
 
Methods inherited from class harpoon.IR.Quads.Code
cloneHelper, elementArrayFactory, getAllocationInformation, getElements, getElementsI, getLeafElements, getMethod, getRootElement, 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

LowQuadNoSSA

protected LowQuadNoSSA(HMethod method,
                       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 "low-quad-no-ssa"

codeFactory

public static HCodeFactory codeFactory(HCodeFactory hcf)
Return a code factory for LowQuadNoSSA, given a code factory for either LowQuadSSI.
effects: if hcf is a code factory for LowQuadSSI, then creates and returns a code factory for LowQuadNoSSA. Else passes hcf to LowQuadSSI.codeFactory(), and reattempts to create a code factory for LowQuadNoSSA from the code factory returned by LowQuadSSI.

See Also:
LowQuadSSI.codeFactory(HCodeFactory)

codeFactory

public static HCodeFactory codeFactory()
Return a code factory for LowQuadNoSSA, using the default code factory for LowQuadSSI