Package | Description |
---|---|
org.jikesrvm.compilers.opt.controlflow | |
org.jikesrvm.compilers.opt.depgraph |
Provides classes that implement a dependence graph.
|
org.jikesrvm.compilers.opt.dfsolver | |
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.
|
(package private) class |
DominatorCell
DominatorCell represents a set of basic blocks, used in
the dataflow calculation
|
class |
LSTNode
A node in the LST (Loop Structure Tree)
|
Modifier and Type | Class and Description |
---|---|
class |
DepGraphNode
Dependence graph node: there is one for each instruction in a basic block.
|
Modifier and Type | Interface and Description |
---|---|
interface |
DF_LatticeCell
Represents a single lattice cell in a dataflow equation system.
|
Modifier and Type | Class and Description |
---|---|
class |
DF_AbstractCell
Represents a single lattice cell in a dataflow system.
|
class |
DF_Equation
Represents a single Data Flow equation.
|
Modifier and Type | Field and Description |
---|---|
ArrayList<GraphNode> |
DF_Graph.nodes
The nodes of the graph.
|
Modifier and Type | Method and Description |
---|---|
Enumeration<GraphNode> |
DF_Graph.enumerateNodes()
Enumerate the nodes in the graph.
|
Enumeration<GraphNode> |
DF_AbstractCell.inNodes() |
Enumeration<GraphNode> |
DF_Equation.inNodes()
Return an enumeration of the equations upon whose results this
equation depends.
|
Enumeration<GraphNode> |
DF_AbstractCell.outNodes() |
Enumeration<GraphNode> |
DF_Equation.outNodes()
Return an enumeration of the equations which use the result of this
equation.
|
Modifier and Type | Method and Description |
---|---|
void |
DF_Graph.addGraphEdge(GraphNode x,
GraphNode y)
Unsupported.
|
void |
DF_Graph.addGraphNode(GraphNode x) |
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 | Class and Description |
---|---|
(package private) class |
NormalBURS_DepGraphNode
A special dependence graph node for use by NormalBURS.
|
Modifier and Type | Class and Description |
---|---|
(package private) static class |
CoalesceGraph.Node |
Modifier and Type | Class and Description |
---|---|
(package private) static class |
IndexPropagation.ArrayCell
An ArrayCell is a lattice cell for the index propagation
problem, used in redundant load elimination for one-dimensional arrays.
|
(package private) static class |
IndexPropagation.ObjectCell
An ObjectCell is a lattice cell for the index propagation
problem, used in redundant load elimination for fields.
|
(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 | Method and Description |
---|---|
Enumeration<GraphNode> |
ValueGraph.enumerateVertices()
Enumerate the vertices in the value graph.
|
Modifier and Type | Class and Description |
---|---|
class |
SortedGraphNode |
class |
SpaceEffGraphNode
SpaceEffGraphNode is a generic graph node.
|
Modifier and Type | Field and Description |
---|---|
GraphNode |
DFSenumerateByFinish.currentRoot
While a depth-first enumeration is in progress, this field
holds the current root node, i.e. the current bottom of the
search stack (assuming stacks grow upward).
|
private GraphNode |
DFSenumerateByFinish.theNextElement
the current next element in finishing time order
|
Modifier and Type | Field and Description |
---|---|
private Enumeration<GraphNode> |
GraphNodeEnumerator.Enum.e |
private Enumeration<GraphNode> |
DFSenumerateByFinish.e
an enumeration of all nodes to search from
|
private Iterator<GraphNode> |
GraphNodeEnumerator.Iter.i |
private List<Enumeration<GraphNode>> |
DFSenumerateByFinish.info
an enumeration of child nodes for each node being searched
|
private Stack<GraphNode> |
DepthFirstEnumerator.stack |
private Set<GraphNode> |
DepthFirstEnumerator.visited |
Modifier and Type | Method and Description |
---|---|
GraphNode |
SpaceEffGraphEdge.from()
Get the start node for the edge.
|
GraphNode |
GraphEdge.from() |
abstract GraphNode |
GraphNodeEnumerator.nextElement() |
GraphNode |
GraphNodeEnumerator.Enum.nextElement() |
GraphNode |
GraphNodeEnumerator.Iter.nextElement() |
GraphNode |
DepthFirstEnumerator.nextElement() |
GraphNode |
SpaceEffGraph.NodeEnumeration.nextElement() |
GraphNode |
SpaceEffGraphNode.InNodeEnumeration.nextElement() |
GraphNode |
SpaceEffGraphNode.OutNodeEnumeration.nextElement() |
GraphNode |
DFSenumerateByFinish.nextElement()
Find the next graph node in finishing time order.
|
GraphNode |
SpaceEffGraphEdge.to()
Get the end node for the edge.
|
GraphNode |
GraphEdge.to() |
Modifier and Type | Method and Description |
---|---|
Enumeration<GraphNode> |
SpaceEffGraph.enumerateNodes()
Enumerate the nodes in no particular order
|
Enumeration<GraphNode> |
Graph.enumerateNodes()
This method lists all of the nodes in a given graph.
|
static Enumeration<GraphNode> |
GraphUtilities.enumerateTopSort(Graph G)
Return an enumeration of the nodes, or a subset of the nodes, in an
acyclic graph in topological order.
|
static Enumeration<GraphNode> |
GraphUtilities.enumerateTopSort(Graph G,
Enumeration<GraphNode> ie) |
static Enumeration<GraphNode> |
GraphUtilities.enumerateTopSort(Graph G,
Enumeration<GraphNode> ie,
GraphEdgeFilter f) |
private static Enumeration<GraphNode> |
GraphUtilities.enumerateTopSortInternal(Graph G,
Enumeration<GraphNode> e) |
protected Enumeration<GraphNode> |
ReverseDFSenumerateByFinish.getConnected(GraphNode n)
Traverse edges from target to source.
|
protected Enumeration<GraphNode> |
FilteredDFSenumerateByFinish.getConnected(GraphNode n) |
protected Enumeration<GraphNode> |
DFSenumerateByFinish.getConnected(GraphNode n)
get the out edges of a given node
|
protected Enumeration<GraphNode> |
ReverseFilteredDFSenumerateByFinish.getConnected(GraphNode n) |
Enumeration<GraphNode> |
SpaceEffGraphNode.inNodes() |
Enumeration<GraphNode> |
GraphNode.inNodes()
Get an enumeration of all the edges at which edges that point
to this node are sourced.
|
Enumeration<GraphNode> |
GraphEdgeFilter.inNodes(GraphNode node) |
Enumeration<GraphNode> |
SpaceEffGraphNode.outNodes() |
Enumeration<GraphNode> |
GraphNode.outNodes()
Get an enumeration of all the edges to which edges sourced at
this node point.
|
Enumeration<GraphNode> |
GraphEdgeFilter.outNodes(GraphNode node) |
Modifier and Type | Method and Description |
---|---|
void |
SpaceEffGraph.addGraphEdge(GraphNode from,
GraphNode to)
Add an edge to the graph.
|
void |
Graph.addGraphEdge(GraphNode source,
GraphNode target)
Add a new edge to a graph.
|
void |
SpaceEffGraph.addGraphNode(GraphNode inode) |
void |
Graph.addGraphNode(GraphNode node)
Add a new graph node to the graph.
|
protected Enumeration<GraphNode> |
ReverseDFSenumerateByFinish.getConnected(GraphNode n)
Traverse edges from target to source.
|
protected Enumeration<GraphNode> |
FilteredDFSenumerateByFinish.getConnected(GraphNode n) |
protected Enumeration<GraphNode> |
DFSenumerateByFinish.getConnected(GraphNode n)
get the out edges of a given node
|
protected Enumeration<GraphNode> |
ReverseFilteredDFSenumerateByFinish.getConnected(GraphNode n) |
boolean |
SpaceEffGraphNode.hasIn(GraphNode in) |
boolean |
SpaceEffGraphNode.hasOut(GraphNode out) |
Enumeration<GraphNode> |
GraphEdgeFilter.inNodes(GraphNode node) |
private boolean |
DepthFirstEnumerator.notVisited(GraphNode node) |
Enumeration<GraphNode> |
GraphEdgeFilter.outNodes(GraphNode node) |
Modifier and Type | Method and Description |
---|---|
static GraphNodeEnumerator |
GraphNodeEnumerator.create(Enumeration<GraphNode> e) |
static GraphNodeEnumerator |
GraphNodeEnumerator.create(Iterable<GraphNode> i) |
static GraphNodeEnumerator |
GraphNodeEnumerator.create(Iterator<GraphNode> i) |
static Enumeration<GraphNode> |
GraphUtilities.enumerateTopSort(Graph G,
Enumeration<GraphNode> ie) |
static Enumeration<GraphNode> |
GraphUtilities.enumerateTopSort(Graph G,
Enumeration<GraphNode> ie,
GraphEdgeFilter f) |
private static Enumeration<GraphNode> |
GraphUtilities.enumerateTopSortInternal(Graph G,
Enumeration<GraphNode> e) |
private void |
SpaceEffGraph.print(Enumeration<GraphNode> e)
Print, to System.out, the basic blocks in the order given in
the supplied enumeration.
|
Constructor and Description |
---|
DepthFirstEnumerator(GraphNode start) |
Constructor and Description |
---|
DFSenumerateByFinish(Graph net,
Enumeration<GraphNode> nodes)
Construct a depth-first enumerator across the (possibly
improper) subset of nodes reachable from the nodes in the given
enumeration.
|
Enum(Enumeration<GraphNode> e) |
FilteredDFSenumerateByFinish(Graph net,
Enumeration<GraphNode> nodes,
GraphEdgeFilter filter) |
Iter(Iterator<GraphNode> i) |
ReverseDFSenumerateByFinish(Graph net,
Enumeration<GraphNode> nodes)
Construct a reverse DFS across a subset of a graph, starting
at the given set of nodes.
|
ReverseFilteredDFSenumerateByFinish(Graph net,
Enumeration<GraphNode> nodes,
GraphEdgeFilter filter) |