|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectedu.umd.cs.findbugs.ba.BlockTypeAnalysis
public class BlockTypeAnalysis
Dataflow analysis to determine the nesting of catch and finally blocks within a method.
BlockType
Constructor Summary | |
---|---|
BlockTypeAnalysis(DepthFirstSearch dfs)
Constructor. |
Method Summary | |
---|---|
void |
copy(BlockType source,
BlockType dest)
Copy dataflow facts. |
BlockType |
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. |
BlockType |
getResultFact(BasicBlock block)
Get the result fact for given basic block. |
BlockType |
getStartFact(BasicBlock block)
Get the start fact for given basic block. |
void |
initEntryFact(BlockType result)
Initialize the "entry" fact for the graph. |
void |
initResultFact(BlockType result)
Initialize result fact for block. |
boolean |
isForwards()
Returns true if the analysis is forwards, false if backwards. |
static void |
main(java.lang.String[] argv)
|
void |
makeFactTop(BlockType fact)
Make given fact the top value. |
void |
meetInto(BlockType fact,
Edge edge,
BlockType result)
Meet a dataflow fact associated with an incoming edge into another fact. |
boolean |
same(BlockType fact1,
BlockType fact2)
Are given dataflow facts the same? |
void |
transfer(BasicBlock basicBlock,
org.apache.bcel.generic.InstructionHandle end,
BlockType start,
BlockType result)
Transfer function for the analysis. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public BlockTypeAnalysis(DepthFirstSearch dfs)
dfs
- a DepthFirstSearch for the method to be analyzedMethod Detail |
---|
public BlockType createFact()
DataflowAnalysis
createFact
in interface DataflowAnalysis<BlockType>
public BlockType getStartFact(BasicBlock block)
DataflowAnalysis
getStartFact
in interface DataflowAnalysis<BlockType>
block
- the basic blockpublic BlockType getResultFact(BasicBlock block)
DataflowAnalysis
getResultFact
in interface DataflowAnalysis<BlockType>
block
- the basic blockpublic void copy(BlockType source, BlockType dest)
DataflowAnalysis
copy
in interface DataflowAnalysis<BlockType>
public void initEntryFact(BlockType result) throws DataflowAnalysisException
DataflowAnalysis
initEntryFact
in interface DataflowAnalysis<BlockType>
DataflowAnalysisException
public void initResultFact(BlockType result)
DataflowAnalysis
initResultFact
in interface DataflowAnalysis<BlockType>
public void makeFactTop(BlockType fact)
DataflowAnalysis
makeFactTop
in interface DataflowAnalysis<BlockType>
public boolean isForwards()
DataflowAnalysis
isForwards
in interface DataflowAnalysis<BlockType>
public BlockOrder getBlockOrder(CFG cfg)
DataflowAnalysis
getBlockOrder
in interface DataflowAnalysis<BlockType>
cfg
- the CFG upon which we're performing dataflow analysispublic boolean same(BlockType fact1, BlockType fact2)
DataflowAnalysis
same
in interface DataflowAnalysis<BlockType>
public void transfer(BasicBlock basicBlock, org.apache.bcel.generic.InstructionHandle end, BlockType start, BlockType result) throws DataflowAnalysisException
DataflowAnalysis
transfer
in interface DataflowAnalysis<BlockType>
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
public void meetInto(BlockType fact, Edge edge, BlockType result) throws DataflowAnalysisException
DataflowAnalysis
meetInto
in interface DataflowAnalysis<BlockType>
fact
- the predecessor fact (incoming edge)edge
- the edge from the predecessorresult
- the result fact
DataflowAnalysisException
public static void main(java.lang.String[] argv) throws java.lang.Exception
java.lang.Exception
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |