Package | Description |
---|---|
org.jikesrvm.compilers.opt.controlflow | |
org.jikesrvm.compilers.opt.depgraph |
Provides classes that implement a dependence graph.
|
org.jikesrvm.compilers.opt.ir | |
org.jikesrvm.compilers.opt.lir2mir |
Provides classes that implement the transition from low-level IR to
machine-specific IR.
|
org.jikesrvm.compilers.opt.regalloc | |
org.jikesrvm.compilers.opt.ssa |
SSA implementation (disabled because of bugs, see entry in issue tracker).
|
org.jikesrvm.compilers.opt.util |
Modifier and Type | Class and Description |
---|---|
class |
AnnotatedLSTNode
A node in the LST (Loop Structure Tree) with added information
on:
Whether this is a countable, affine or non-regular loop
The registers being used to hold the loop iterator
The initial loop iterator value
The terminal loop iterator value
The instruction that modifies the iterator
The phi instruction that merges the redefined iterator with its original value
The condition used to test for loop termination
The stride operand
The information is only held on regular loops.
|
class |
LSTNode
A node in the LST (Loop Structure Tree)
|
Modifier and Type | Method and Description |
---|---|
private void |
LSTGraph.clearBackEdges(SpaceEffGraphNode bb)
Clears the back edges for the basic block passed
|
Modifier and Type | Method and Description |
---|---|
private void |
LSTGraph.findBackEdges(BasicBlock bb,
int numBlocks,
Map<SpaceEffGraphNode,Integer> dfnMap)
This routine performs a non-recursive depth-first search starting at
the block passed looking for back edges.
|
Modifier and Type | Class and Description |
---|---|
class |
DepGraphNode
Dependence graph node: there is one for each instruction in a basic block.
|
Modifier and Type | Class and Description |
---|---|
class |
BasicBlock
A basic block in the
Factored Control Flow Graph (FCFG) . |
class |
ExceptionHandlerBasicBlock
A basic block that marks the start of an exception handler.
|
Modifier and Type | Field and Description |
---|---|
private SpaceEffGraphNode |
ControlFlowGraph.NodeEnumeration._end |
private SpaceEffGraphNode |
ControlFlowGraph.NodeEnumeration._node |
Constructor and Description |
---|
ExceptionOutEdgeEnum(SpaceEffGraphNode n) |
InEdgeEnum(SpaceEffGraphNode n) |
NormalOutEdgeEnum(SpaceEffGraphNode n) |
OutEdgeEnum(SpaceEffGraphNode n) |
Modifier and Type | Class and Description |
---|---|
(package private) class |
NormalBURS_DepGraphNode
A special dependence graph node for use by NormalBURS.
|
Modifier and Type | Method and Description |
---|---|
private SpaceEffGraphNode |
NormalBURS.regTrueParent(SpaceEffGraphNode n) |
Modifier and Type | Method and Description |
---|---|
private NormalBURS_DepGraphNode |
NormalBURS.castNode(SpaceEffGraphNode node) |
private void |
NormalBURS.initTreeRootNode(AbstractBURS_TreeNode t,
SpaceEffGraphNode treeRoot)
Initialize nextSorted for nodes in tree rooted at t i.e.
|
private void |
NormalBURS.problemEdgePrep(AbstractBURS_TreeNode n,
SpaceEffGraphNode root) |
private boolean |
NormalBURS.reachableChild(AbstractBURS_TreeNode n,
SpaceEffGraphNode goal,
int searchnum) |
private boolean |
NormalBURS.reachableRoot(SpaceEffGraphNode current,
SpaceEffGraphNode goal,
int searchnum) |
private SpaceEffGraphNode |
NormalBURS.regTrueParent(SpaceEffGraphNode n) |
private boolean |
NormalBURS.trueEdgeRedundant(SpaceEffGraphNode current,
SpaceEffGraphNode goal,
SpaceEffGraphNode root) |
Modifier and Type | Class and Description |
---|---|
(package private) static class |
CoalesceGraph.Node |
Modifier and Type | Class and Description |
---|---|
(package private) class |
ValueGraphVertex
This class implements a vertex in the value graph used in global
value numbering
ala Alpern, Wegman and Zadeck.
|
Modifier and Type | Class and Description |
---|---|
class |
SortedGraphNode |
Modifier and Type | Field and Description |
---|---|
protected SpaceEffGraphNode |
SpaceEffGraph._firstNode
First node
|
protected SpaceEffGraphNode |
SpaceEffGraphEdge._fromNode
Start node.
|
protected SpaceEffGraphNode |
SpaceEffGraph._lastNode
Last node
|
private SpaceEffGraphNode |
SpaceEffGraph.NodeEnumeration._node |
(package private) SpaceEffGraphNode |
SpaceEffGraphNodeList._node |
protected SpaceEffGraphNode |
SpaceEffGraphEdge._toNode
End node.
|
SpaceEffGraphNode |
SpaceEffGraphNode.next
Links inlined from DoublyLinkedListElement.
|
SpaceEffGraphNode |
SpaceEffGraphNode.nextSorted |
SpaceEffGraphNode |
SpaceEffGraphNode.prev
Links inlined from DoublyLinkedListElement.
|
Modifier and Type | Method and Description |
---|---|
protected SpaceEffGraphNode |
SpaceEffGraphNode._sortRevTop(SpaceEffGraphNode tail) |
protected SpaceEffGraphNode |
SpaceEffGraphNode._sortTop(SpaceEffGraphNode tail) |
SpaceEffGraphNode |
SpaceEffGraphNode.firstInNode() |
SpaceEffGraphNode |
SpaceEffGraph.firstNode()
Get the list of nodes.
|
SpaceEffGraphNode |
SpaceEffGraphNode.firstOutNode() |
SpaceEffGraphNode |
SpaceEffGraphEdge.fromNode()
Get the start node for the edge.
|
SpaceEffGraphNode |
SpaceEffGraphNode.getNext()
Get the next node.
|
SpaceEffGraphNode |
SpaceEffGraphNode.getPrev()
Get the previous node.
|
SpaceEffGraphNode |
SpaceEffGraph.lastNode()
Get the end of the list of nodes.
|
(package private) SpaceEffGraphNode |
SpaceEffGraphNodeList.node() |
SpaceEffGraphNode |
SpaceEffGraphNode.remove()
Remove this node from the list.
|
SpaceEffGraphNode |
SpaceEffGraphEdge.toNode()
Get the end node for the edge.
|
Modifier and Type | Method and Description |
---|---|
protected void |
SpaceEffGraphNode._sortDFS(SpaceEffGraphNode header) |
protected SpaceEffGraphNode |
SpaceEffGraphNode._sortRevTop(SpaceEffGraphNode tail) |
protected SpaceEffGraphNode |
SpaceEffGraphNode._sortTop(SpaceEffGraphNode tail) |
boolean |
SpaceEffGraphNodeListHeader.add(SpaceEffGraphNode node) |
void |
SpaceEffGraph.addRootNode(SpaceEffGraphNode root)
Add a root node to the graph.
|
protected void |
SpaceEffGraph.addTopSortNode(SpaceEffGraphNode node) |
void |
SpaceEffGraphNodeListHeader.append(SpaceEffGraphNode node) |
void |
SpaceEffGraphNode.append(SpaceEffGraphNode n)
Append a given node after this node.
|
void |
SpaceEffGraphNode.deleteOut(SpaceEffGraphNode node) |
private void |
SpaceEffGraph.dfs(SpaceEffGraphNode node) |
SpaceEffGraphEdge |
SpaceEffGraphNode.findOutEdgeTo(SpaceEffGraphNode n) |
boolean |
SpaceEffGraphNode.hasOneIn(SpaceEffGraphNode inNode) |
boolean |
SpaceEffGraphNode.hasOneOut(SpaceEffGraphNode outNode) |
void |
SpaceEffGraphNode.insertOut(SpaceEffGraphNode to) |
void |
SpaceEffGraphNode.insertOut(SpaceEffGraphNode to,
SpaceEffGraphEdge e) |
boolean |
SpaceEffGraphNode.pointsIn(SpaceEffGraphNode inNode) |
boolean |
SpaceEffGraphNode.pointsOut(SpaceEffGraphNode outNode) |
void |
SpaceEffGraph.removeGraphNode(SpaceEffGraphNode node)
Remove a node from the graph.
|
protected SpaceEffGraphEdge |
SpaceEffGraphNode.removeIn(SpaceEffGraphNode InNode) |
protected SpaceEffGraphEdge |
SpaceEffGraphNode.removeOut(SpaceEffGraphNode OutNode) |
void |
SpaceEffGraphNode.replaceOut(SpaceEffGraphNode oldOut,
SpaceEffGraphNode newOut) |
void |
SpaceEffGraph.setFirstNode(SpaceEffGraphNode firstNode)
Reset the list of nodes of the graph.
|
(package private) void |
SpaceEffGraphEdge.setFromNode(SpaceEffGraphNode fromNode)
Set start node.
|
void |
SpaceEffGraph.setLastNode(SpaceEffGraphNode lastNode)
Reset the list of nodes of the graph.
|
(package private) void |
SpaceEffGraphEdge.setToNode(SpaceEffGraphNode toNode)
Set end node.
|
Constructor and Description |
---|
InEdgeEnumeration(SpaceEffGraphNode n) |
InNodeEnumeration(SpaceEffGraphNode n) |
NodeEnumeration(SpaceEffGraphNode n) |
OutEdgeEnumeration(SpaceEffGraphNode n) |
OutNodeEnumeration(SpaceEffGraphNode n) |
SpaceEffGraphEdge(SpaceEffGraphNode fromNode,
SpaceEffGraphNode toNode)
Constructs an edge starting at a given node and ending at a given node.
|