DataflowAnalysis<Fact>AbstractDataflowAnalysis, AbstractDominatorsAnalysis, BlockTypeAnalysis, ReturnPathTypeAnalysispublic abstract class BasicAbstractDataflowAnalysis<Fact> extends java.lang.Object implements DataflowAnalysis<Fact>
Subclasses that model instructions within basic blocks should extend AbstractDataflowAnalysis.
| Constructor | Description |
|---|---|
BasicAbstractDataflowAnalysis() |
Constructor.
|
| Modifier and Type | Method | Description |
|---|---|---|
void |
edgeTransfer(Edge edge,
Fact fact) |
Edge transfer function.
|
java.lang.String |
factToString(Fact fact) |
Return a String representation of given Fact.
|
void |
finishIteration() |
Called after finishing an iteration of analysis.
|
Fact |
getFactAfterLocation(Location location) |
Get the dataflow fact representing the point just after given Location.
|
Fact |
getFactAtLocation(Location location) |
Get dataflow fact at (just before) given Location.
|
Fact |
getFactOnEdge(Edge edge) |
Get the fact that is true on the given control edge,
after applying the edge transfer function (if any).
|
int |
getLastUpdateTimestamp(Fact fact) |
|
Fact |
getResultFact(BasicBlock block) |
Get the result fact for given basic block.
|
Fact |
getStartFact(BasicBlock block) |
Get the start fact for given basic block.
|
java.util.Iterator<Fact> |
resultFactIterator() |
Get an iterator over the result facts.
|
void |
setLastUpdateTimestamp(Fact fact,
int lastUpdateTimestamp) |
|
void |
startIteration() |
Called before beginning an iteration of analysis.
|
copy, createFact, getBlockOrder, initEntryFact, isForwards, isTop, makeFactTop, meetInto, same, transferpublic BasicAbstractDataflowAnalysis()
public java.util.Iterator<Fact> resultFactIterator()
public java.lang.String factToString(Fact fact)
DataflowAnalysisfactToString in interface DataflowAnalysis<Fact>fact - a dataflow factpublic Fact getStartFact(BasicBlock block)
DataflowAnalysisgetStartFact in interface DataflowAnalysis<Fact>block - the basic blockpublic Fact getResultFact(BasicBlock block)
DataflowAnalysisgetResultFact in interface DataflowAnalysis<Fact>block - the basic blockpublic Fact getFactAtLocation(Location location) throws DataflowAnalysisException
The default implementation ignores instructions within basic blocks. Subclasses that model individual instructions must override this method.
getFactAtLocation in interface DataflowAnalysis<Fact>location - the LocationDataflowAnalysisExceptionpublic Fact getFactAfterLocation(Location location) throws DataflowAnalysisException
The default implementation ignores instructions within basic blocks. Subclasses that model individual instructions must override this method.
getFactAfterLocation in interface DataflowAnalysis<Fact>location - the LocationDataflowAnalysisExceptionpublic Fact getFactOnEdge(Edge edge) throws DataflowAnalysisException
getFactOnEdge in interface DataflowAnalysis<Fact>edge - the edgeDataflowAnalysisExceptionpublic void startIteration()
DataflowAnalysisstartIteration in interface DataflowAnalysis<Fact>public void finishIteration()
DataflowAnalysisfinishIteration in interface DataflowAnalysis<Fact>public void edgeTransfer(Edge edge, Fact fact) throws DataflowAnalysisException
DataflowAnalysisA do-nothing implementation is legal, and appropriate for analyses where branches are not significant.
edgeTransfer in interface DataflowAnalysis<Fact>edge - the Edgefact - a dataflow factDataflowAnalysisExceptionpublic int getLastUpdateTimestamp(Fact fact)
getLastUpdateTimestamp in interface DataflowAnalysis<Fact>public void setLastUpdateTimestamp(Fact fact, int lastUpdateTimestamp)
setLastUpdateTimestamp in interface DataflowAnalysis<Fact>FindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.