|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.jikesrvm.compilers.opt.util.SpaceEffGraphNode org.jikesrvm.compilers.opt.ssa.ValueGraphVertex
final class ValueGraphVertex
This class implements a vertex in the value graph used in global value numbering ala Alpern, Wegman and Zadeck. See Muchnick p.348 for a nice discussion.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class org.jikesrvm.compilers.opt.util.SpaceEffGraphNode |
---|
SpaceEffGraphNode.GraphEdgeEnumeration<T extends GraphEdge>, SpaceEffGraphNode.OutEdgeEnumeration |
Field Summary | |
---|---|
private int |
arity
number of operands needed |
private Object |
label
the name of the operator that does the definition |
private Object |
name
the name of the variable defined by this node |
private ValueGraphVertex[] |
targets
operand vertices, in order |
private int |
valueNumber
integer value number |
Fields inherited from class org.jikesrvm.compilers.opt.util.SpaceEffGraphNode |
---|
_inEdgeEnd, _inEdgeStart, _outEdgeEnd, _outEdgeStart, info, next, nextSorted, prev, scratch, scratchObject |
Constructor Summary | |
---|---|
ValueGraphVertex(Object name)
|
Method Summary | |
---|---|
void |
addTarget(ValueGraphVertex target,
int pos)
|
(package private) void |
copyVertex(ValueGraphVertex v)
Set up properties of this vertex identically to another vertex |
int |
getArity()
|
(package private) Object |
getLabel()
|
(package private) Object |
getName()
|
ValueGraphVertex |
getTarget(int i)
return the target of the ith operand of this node |
(package private) int |
getValueNumber()
|
(package private) boolean |
isBornAtAllocation()
|
(package private) boolean |
isConstant()
|
(package private) boolean |
representsParameter()
Does this vertex represent an incoming parameter? |
(package private) void |
setLabel(Object label,
int arity)
Set the label for this vertex. |
(package private) void |
setValueNumber(int number)
|
String |
toString()
|
Methods inherited from class org.jikesrvm.compilers.opt.util.SpaceEffGraphNode |
---|
_sortDFS, _sortRevTop, _sortTop, append, appendInEdge, appendOutEdge, clearDfsVisited, clearFlags, clearInFlags, clearLoopHeader, clearOnStack, clearOutFlags, clearTopVisited, deleteIn, deleteOut, deleteOut, deleteOut, dfsVisited, findOutEdgeTo, firstInEdge, firstInNode, firstOutEdge, firstOutNode, flagsOn, getIndex, getNext, getNumber, getNumberOfIn, getNumberOfOut, getPrev, getScratch, hasIn, hasOneIn, hasOneIn, hasOneOut, hasOneOut, hasOut, hasZeroIn, hasZeroOut, inEdges, inNodes, insertOut, insertOut, isLoopHeader, markDFN, markSCC, onStack, outEdges, outNodes, pointsIn, pointsOut, printExtended, printInEdges, printInNodes, printOutEdges, printOutNodes, remove, removeIn, removeIn, removeOut, removeOut, replaceInEdge, replaceOut, setDfsVisited, setDfsVisitedOnStack, setIndex, setLoopHeader, setNumber, setOnStack, setScratch, setTopVisited, sortDFS, sortRevTop, sortTop, topVisited |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
private final Object name
private Object label
private ValueGraphVertex[] targets
private int valueNumber
private int arity
Constructor Detail |
---|
ValueGraphVertex(Object name)
Method Detail |
---|
void copyVertex(ValueGraphVertex v)
boolean representsParameter()
void setLabel(Object label, int arity)
label
- the label (an operator of some type)arity
- the number of operands neededObject getLabel()
Object getName()
int getValueNumber()
void setValueNumber(int number)
boolean isConstant()
boolean isBornAtAllocation()
public ValueGraphVertex getTarget(int i)
public void addTarget(ValueGraphVertex target, int pos)
public int getArity()
public String toString()
toString
in class Object
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |