|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectedu.umd.cs.findbugs.ba.Dataflow<Fact,AnalysisType>
public class Dataflow<Fact,AnalysisType extends DataflowAnalysis<Fact>>
Perform dataflow analysis on a method using a control flow graph. Both forward and backward analyses can be performed.
CFG
,
DataflowAnalysis
Field Summary | |
---|---|
private AnalysisType |
analysis
|
private BlockOrder |
blockOrder
|
private CFG |
cfg
|
private static boolean |
DEBUG
|
private boolean |
isForwards
|
private static int |
MAX_ITERS
|
private int |
numIterations
|
Constructor Summary | |
---|---|
Dataflow(CFG cfg,
AnalysisType analysis)
Constructor. |
Method Summary | |
---|---|
private static void |
debug(BasicBlock bb,
BasicBlock pred,
java.lang.String msg)
|
private static void |
debug(BasicBlock bb,
java.lang.String msg)
|
void |
execute()
Run the algorithm. |
AnalysisType |
getAnalysis()
Get the analysis object. |
CFG |
getCFG()
Get the CFG object. |
int |
getNumIterations()
Return the number of iterations of the main execution loop. |
Fact |
getResultFact(BasicBlock block)
Get dataflow facts for end of given block. |
Fact |
getStartFact(BasicBlock block)
Get dataflow facts for start of given block. |
private BasicBlock |
logicalEntryBlock()
Get the "logical" entry block of the CFG. |
private java.util.Iterator<Edge> |
logicalPredecessorEdgeIterator(BasicBlock block)
Return an Iterator over edges that connect given block to its logical predecessors. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private CFG cfg
private AnalysisType extends DataflowAnalysis<Fact> analysis
private BlockOrder blockOrder
private boolean isForwards
private int numIterations
private static final boolean DEBUG
private static final int MAX_ITERS
Constructor Detail |
---|
public Dataflow(CFG cfg, AnalysisType analysis)
cfg
- the control flow graphanalysis
- the DataflowAnalysis to be runMethod Detail |
---|
public void execute() throws DataflowAnalysisException
DataflowAnalysisException
private static void debug(BasicBlock bb, java.lang.String msg)
private static void debug(BasicBlock bb, BasicBlock pred, java.lang.String msg)
public int getNumIterations()
public Fact getStartFact(BasicBlock block)
public Fact getResultFact(BasicBlock block)
public AnalysisType getAnalysis()
public CFG getCFG()
private java.util.Iterator<Edge> logicalPredecessorEdgeIterator(BasicBlock block)
private BasicBlock logicalEntryBlock()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |