|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectchord.program.CFGLoopFinder
public class CFGLoopFinder
Inference of all loops in a control-flow graph.
| Field Summary | |
|---|---|
static boolean |
DEBUG
|
| Constructor Summary | |
|---|---|
CFGLoopFinder()
|
|
| Method Summary | |
|---|---|
java.util.Map<joeq.Compiler.Quad.BasicBlock,java.util.Set<joeq.Compiler.Quad.BasicBlock>> |
getHeadToBodyMap()
Provides a map from each loop header in this control-flow graph to the set of all basic blocks in that loop's body. |
java.util.Map<joeq.Compiler.Quad.BasicBlock,java.util.Set<joeq.Compiler.Quad.BasicBlock>> |
getHeadToExitsMap()
Provides a map from each loop header in this control-flow graph to the set of all basic blocks in that loop's body that have an immediate successor outside that loop's body. |
java.util.Set<joeq.Compiler.Quad.BasicBlock> |
getLoopBody(joeq.Compiler.Quad.BasicBlock head)
Provides the set of all basic blocks in the body of the loop specified by the given loop header. |
java.util.Set<joeq.Compiler.Quad.BasicBlock> |
getLoopExits(joeq.Compiler.Quad.BasicBlock head)
Provides the set of all basic blocks in the body of the loop specified by the given loop header that have an immediate successor outside that loop's body. |
java.util.Set<joeq.Compiler.Quad.BasicBlock> |
getLoopHeads()
Provides the set of all loop header basic blocks in this control-flow graph. |
void |
visit(joeq.Compiler.Quad.ControlFlowGraph cfg)
Computes all loops in a given control-flow graph. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final boolean DEBUG
| Constructor Detail |
|---|
public CFGLoopFinder()
| Method Detail |
|---|
public void visit(joeq.Compiler.Quad.ControlFlowGraph cfg)
cfg - A control-flow graph.public java.util.Set<joeq.Compiler.Quad.BasicBlock> getLoopHeads()
public java.util.Set<joeq.Compiler.Quad.BasicBlock> getLoopBody(joeq.Compiler.Quad.BasicBlock head)
head - A loop header.
public java.util.Set<joeq.Compiler.Quad.BasicBlock> getLoopExits(joeq.Compiler.Quad.BasicBlock head)
head - A loop header.
public java.util.Map<joeq.Compiler.Quad.BasicBlock,java.util.Set<joeq.Compiler.Quad.BasicBlock>> getHeadToExitsMap()
public java.util.Map<joeq.Compiler.Quad.BasicBlock,java.util.Set<joeq.Compiler.Quad.BasicBlock>> getHeadToBodyMap()
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||