|
|||||||||
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 Code
oldquad
- quad that is being replacednewquad
- new quad that replaces oldquad
tm
- maps old temps to new tempspublic HCodeAndMaps<Quad> clone(HMethod newMethod)
clone
in class Code
public 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 |