|
||||||||||
| 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 block
void copy(Fact source,
Fact dest)
void initEntryFact(Fact result)
throws DataflowAnalysisException
DataflowAnalysisExceptionvoid initResultFact(Fact result)
void makeFactTop(Fact fact)
boolean isForwards()
BlockOrder getBlockOrder(CFG cfg)
cfg - the CFG upon which we're performing dataflow analysis
boolean 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 | |||||||||