public abstract class BasicAbstractDataflowAnalysis<Fact> extends java.lang.Object implements DataflowAnalysis<Fact>
Subclasses that model instructions within basic blocks should extend AbstractDataflowAnalysis.
| Constructor and Description |
|---|
BasicAbstractDataflowAnalysis()
Constructor.
|
| Modifier and Type | Method and 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.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcopy, 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.