|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectharpoon.ClassFile.HCode<Quad>
harpoon.IR.Quads.Code
harpoon.IR.Quads.QuadSSI
public class QuadSSI
Quads.QuadSSI is a code view in 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 SSI form; that is, every variable has exactly one definition,
and PHI and SIGMA functions are used where
control flow merges or splits, respectively.
| 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. |
static boolean |
KEEP_QUAD_MAP_HACK
|
| Fields inherited from class harpoon.IR.Quads.Code |
|---|
ai, parent, qf, quads |
| Constructor Summary | |
|---|---|
protected |
QuadSSI(HMethod parent,
Quad quads)
Create a new code object given a quadruple representation of the method instructions. |
|
QuadSSI(QuadNoSSA qns)
Creates a Code object from a bytecode object. |
|
QuadSSI(ResilientNoSSA rns)
Creates a Code object from a resilient-no-ssa
object. |
| Method Summary | |
|---|---|
HCodeAndMaps<Quad> |
clone(HMethod newMethod)
Clone this code representation. |
static HCodeFactory |
codeFactory()
Return a code factory for QuadSSI, using the default code factory for QuadNoSSA. |
static HCodeFactory |
codeFactory(HCodeFactory hcf)
Return a code factory for QuadSSI, given a code
factory for QuadNoSSA. |
String |
getName()
Return the name of this code view. |
Map |
getQuadMapNoSSA2SSI()
Every QuadSSI is built from a QuadNoSSA. |
Map |
getQuadMapSSI2NoSSA()
Returns the reverse of the map returned by getQuadMapNoSSA2SSI. |
void |
notifyReplace(Quad oldquad,
Quad newquad,
TempMap tm)
Update the QuadNoSSA to QuadSSI mappings when the SSI quad oldquad is replaced of this is
replaced with the new SSI quad newquad. |
| Methods inherited from class harpoon.IR.Quads.Code |
|---|
cloneHelper, cloneHelper, elementArrayFactory, getAllocationInformation, getDerivation, getElements, getElementsI, getLeafElements, getMethod, getRootElement, newQF, nodes, 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 |
|---|
public static final String codename
public static boolean KEEP_QUAD_MAP_HACK
| Constructor Detail |
|---|
public QuadSSI(QuadNoSSA qns)
Code object from a bytecode object.
public QuadSSI(ResilientNoSSA rns)
Code object from a resilient-no-ssa
object.
protected QuadSSI(HMethod parent,
Quad quads)
| Method Detail |
|---|
public Map getQuadMapNoSSA2SSI()
this codeview.
getQuadMapSSI2NoSSA()public Map getQuadMapSSI2NoSSA()
getQuadMapNoSSA2SSI.
getQuadMapNoSSA2SSI()
public void notifyReplace(Quad oldquad,
Quad newquad,
TempMap tm)
oldquad is replaced of this is
replaced with the new SSI quad newquad.
notifyReplace in class Codeoldquad - quad that is being replacednewquad - new quad that replaces oldquadtm - maps old temps to new tempspublic HCodeAndMaps<Quad> clone(HMethod newMethod)
clone in class Codepublic String getName()
getName in class Code"quad-ssi".public static HCodeFactory codeFactory(HCodeFactory hcf)
QuadSSI, given a code
factory for QuadNoSSA. Given a code factory for
Bytecode or QuadWithTry, chain
through QuadNoSSA.codeFactory().
public static HCodeFactory codeFactory()
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||