|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectedu.umd.cs.findbugs.ba.AbstractDataflowAnalysis<Fact>
edu.umd.cs.findbugs.ba.BackwardDataflowAnalysis<UnconditionalDerefSet>
edu.umd.cs.findbugs.ba.npe.UnconditionalDerefAnalysis
public class UnconditionalDerefAnalysis
Dataflow analysis to look for parameters dereferenced unconditionally. Flow values are sets of parameters (indexed starting from 0) which are dereferenced on every path past the current location.
Constructor Summary | |
---|---|
UnconditionalDerefAnalysis(ReverseDepthFirstSearch rdfs,
CFG cfg,
org.apache.bcel.generic.MethodGen methodGen,
ValueNumberDataflow vnaDataflow,
TypeDataflow typeDataflow)
|
Method Summary | |
---|---|
void |
copy(UnconditionalDerefSet source,
UnconditionalDerefSet dest)
Copy dataflow facts. |
UnconditionalDerefSet |
createFact()
Create empty (uninitialized) dataflow facts for one program point. |
void |
initEntryFact(UnconditionalDerefSet result)
Initialize the "entry" fact for the graph. |
void |
initResultFact(UnconditionalDerefSet result)
Initialize result fact for block. |
boolean |
isFactValid(UnconditionalDerefSet fact)
Determine whether the given fact is valid (neither top nor bottom). |
static void |
main(java.lang.String[] argv)
|
void |
makeFactTop(UnconditionalDerefSet fact)
Make given fact the top value. |
void |
meetInto(UnconditionalDerefSet fact,
Edge edge,
UnconditionalDerefSet result)
Meet a dataflow fact associated with an incoming edge into another fact. |
boolean |
same(UnconditionalDerefSet fact1,
UnconditionalDerefSet fact2)
Are given dataflow facts the same? |
void |
transferInstruction(org.apache.bcel.generic.InstructionHandle handle,
BasicBlock basicBlock,
UnconditionalDerefSet fact)
Transfer function for a single instruction. |
Methods inherited from class edu.umd.cs.findbugs.ba.BackwardDataflowAnalysis |
---|
getBlockOrder, getReverseDepthFirstSearch, isForwards |
Methods inherited from class edu.umd.cs.findbugs.ba.AbstractDataflowAnalysis |
---|
endTransfer, factToString, getFactAfterLocation, getFactAtLocation, getResultFact, getStartFact, resultFactIterator, startTransfer, transfer |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public UnconditionalDerefAnalysis(ReverseDepthFirstSearch rdfs, CFG cfg, org.apache.bcel.generic.MethodGen methodGen, ValueNumberDataflow vnaDataflow, TypeDataflow typeDataflow)
Method Detail |
---|
public void copy(UnconditionalDerefSet source, UnconditionalDerefSet dest)
DataflowAnalysis
public UnconditionalDerefSet createFact()
DataflowAnalysis
public void initEntryFact(UnconditionalDerefSet result) throws DataflowAnalysisException
DataflowAnalysis
DataflowAnalysisException
public void initResultFact(UnconditionalDerefSet result)
DataflowAnalysis
public void makeFactTop(UnconditionalDerefSet fact)
DataflowAnalysis
public void meetInto(UnconditionalDerefSet fact, Edge edge, UnconditionalDerefSet result) throws DataflowAnalysisException
DataflowAnalysis
fact
- the predecessor fact (incoming edge)edge
- the edge from the predecessorresult
- the result fact
DataflowAnalysisException
public boolean same(UnconditionalDerefSet fact1, UnconditionalDerefSet fact2)
DataflowAnalysis
public boolean isFactValid(UnconditionalDerefSet fact)
AbstractDataflowAnalysis
isFactValid
in class AbstractDataflowAnalysis<UnconditionalDerefSet>
public void transferInstruction(org.apache.bcel.generic.InstructionHandle handle, BasicBlock basicBlock, UnconditionalDerefSet fact) throws DataflowAnalysisException
AbstractDataflowAnalysis
transferInstruction
in class AbstractDataflowAnalysis<UnconditionalDerefSet>
handle
- the instructionbasicBlock
- the BasicBlock containing the instruction; needed to disambiguate
instructions in inlined JSR subroutinesfact
- which should be modified based on the instruction
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 |