|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface DataflowAnalysis<Fact>
A dataflow analysis to be used with the Dataflow
class.
Dataflow
Method Summary | |
---|---|
void |
copy(Fact source,
Fact dest)
Copy dataflow facts. |
Fact |
createFact()
Create empty (uninitialized) dataflow facts for one program point. |
BlockOrder |
getBlockOrder(CFG cfg)
Return the BlockOrder specifying the order in which BasicBlocks should be visited in the main dataflow loop. |
Fact |
getResultFact(BasicBlock block)
Get the result fact for given basic block. |
Fact |
getStartFact(BasicBlock block)
Get the start fact for given basic block. |
void |
initEntryFact(Fact result)
Initialize the "entry" fact for the graph. |
void |
initResultFact(Fact result)
Initialize result fact for block. |
boolean |
isForwards()
Returns true if the analysis is forwards, false if backwards. |
void |
makeFactTop(Fact fact)
Make given fact the top value. |
void |
meetInto(Fact fact,
Edge edge,
Fact result)
Meet a dataflow fact associated with an incoming edge into another fact. |
boolean |
same(Fact fact1,
Fact fact2)
Are given dataflow facts the same? |
void |
transfer(BasicBlock basicBlock,
org.apache.bcel.generic.InstructionHandle end,
Fact start,
Fact result)
Transfer function for the analysis. |
Method Detail |
---|
Fact createFact()
Fact getStartFact(BasicBlock block)
block
- the basic blockFact getResultFact(BasicBlock block)
block
- the basic blockvoid copy(Fact source, Fact dest)
void initEntryFact(Fact result) throws DataflowAnalysisException
DataflowAnalysisException
void initResultFact(Fact result)
void makeFactTop(Fact fact)
boolean isForwards()
BlockOrder getBlockOrder(CFG cfg)
cfg
- the CFG upon which we're performing dataflow analysisboolean same(Fact fact1, Fact fact2)
void transfer(BasicBlock basicBlock, @Nullable org.apache.bcel.generic.InstructionHandle end, Fact start, Fact result) throws DataflowAnalysisException
basicBlock
- the basic blockend
- if nonnull, stop before considering this instruction;
otherwise, consider all of the instructions in the basic blockstart
- dataflow facts at beginning of block (if forward analysis)
or end of block (if backwards analysis)result
- resulting dataflow facts at other end of block
DataflowAnalysisException
void meetInto(Fact fact, Edge edge, Fact result) throws DataflowAnalysisException
fact
- the predecessor fact (incoming edge)edge
- the edge from the predecessorresult
- the result fact
DataflowAnalysisException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |