DataflowAnalysis<Fact>
AbstractDataflowAnalysis
, AbstractDominatorsAnalysis
, BlockTypeAnalysis
, ReturnPathTypeAnalysis
public 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, transfer
public BasicAbstractDataflowAnalysis()
public java.util.Iterator<Fact> resultFactIterator()
public java.lang.String factToString(Fact fact)
DataflowAnalysis
factToString
in interface DataflowAnalysis<Fact>
fact
- a dataflow factpublic Fact getStartFact(BasicBlock block)
DataflowAnalysis
getStartFact
in interface DataflowAnalysis<Fact>
block
- the basic blockpublic Fact getResultFact(BasicBlock block)
DataflowAnalysis
getResultFact
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 LocationDataflowAnalysisException
public 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 LocationDataflowAnalysisException
public Fact getFactOnEdge(Edge edge) throws DataflowAnalysisException
getFactOnEdge
in interface DataflowAnalysis<Fact>
edge
- the edgeDataflowAnalysisException
public void startIteration()
DataflowAnalysis
startIteration
in interface DataflowAnalysis<Fact>
public void finishIteration()
DataflowAnalysis
finishIteration
in interface DataflowAnalysis<Fact>
public void edgeTransfer(Edge edge, Fact fact) throws DataflowAnalysisException
DataflowAnalysis
A do-nothing implementation is legal, and appropriate for analyses where branches are not significant.
edgeTransfer
in interface DataflowAnalysis<Fact>
edge
- the Edgefact
- a dataflow factDataflowAnalysisException
public 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.