Package | Description |
---|---|
org.jikesrvm.compilers.opt.controlflow |
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.
|
Modifier and Type | Field and Description |
---|---|
protected LSTNode |
LSTGraph.rootNode |
Modifier and Type | Field and Description |
---|---|
private HashMap<BasicBlock,LSTNode> |
LSTGraph.loopMap
Map of bb to LSTNode of innermost loop containing bb
|
Modifier and Type | Method and Description |
---|---|
LSTNode |
LSTGraph.getLoop(BasicBlock b) |
LSTNode |
LSTNode.getParent() |
LSTNode |
LSTGraph.getRoot()
Return the root node of the tree
|
Modifier and Type | Method and Description |
---|---|
Enumeration<LSTNode> |
LSTNode.getChildren() |
Modifier and Type | Method and Description |
---|---|
private float |
EstimateBlockFrequencies.computeLoopExitWeight(LSTNode n) |
private void |
EstimateBlockFrequencies.computeLoopMultipliers(LSTNode n)
Postorder traversal of LST computing loop multiplier and loop exits
for each loop.
|
private void |
EstimateBlockFrequencies.computeMultiplier(LSTNode n)
Compute the loop multiplier for this loop nest
|
private void |
EstimateBlockFrequencies.computeNodeWeights(LSTNode n)
Propagate execution frequencies through the loop.
|
private String |
LSTGraph.dumpIt(LSTNode n) |
private static void |
CFGTransformations.ensureLandingPad(LSTNode n,
IR ir) |
private static void |
CFGTransformations.ensureLandingPads(LSTNode t,
IR ir) |
private static BasicBlock[] |
CFGTransformations.inLoopPredecessors(LSTNode n) |
private static BasicBlock[] |
CFGTransformations.inLoopSuccessors(LSTNode n) |
private static BasicBlock[] |
CFGTransformations.loopPredecessors(LSTNode n) |
private void |
LoopUnrolling.naiveUnroller(LSTNode t,
IR ir) |
private void |
EstimateBlockFrequencies.processEdge(LSTNode n,
BasicBlock source,
BasicBlock target,
float prob,
float weight) |
private void |
YieldPoints.processLoopNest(LSTNode n)
Process all loop heads in a loop nest by inserting a backedge yieldpoint in each of them.
|
private void |
LSTGraph.setDepth(IR ir,
LSTNode node,
int depth) |
private static boolean |
CFGTransformations.turnLoopIntoUntil(LSTNode n,
IR ir)
Transforms a given loop.
|
private static boolean |
CFGTransformations.turnLoopTreeIntoUntils(LSTNode t,
IR ir) |
(package private) boolean |
LoopUnrolling.unrollLeaf(LSTNode t,
IR ir) |
(package private) int |
LoopUnrolling.unrollLoopTree(LSTNode t,
IR ir,
int target) |
Constructor and Description |
---|
AnnotatedLSTNode(IR ir,
LSTNode node)
Constructor
|
LSTNode(LSTNode node)
Copy constructor
|