|
FindBugs™ 1.3.9 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectedu.umd.cs.findbugs.ba.BasicAbstractDataflowAnalysis<Fact>
edu.umd.cs.findbugs.ba.AbstractDataflowAnalysis<Fact>
edu.umd.cs.findbugs.ba.BackwardDataflowAnalysis<java.util.BitSet>
edu.umd.cs.findbugs.ba.LiveLocalStoreAnalysis
public class LiveLocalStoreAnalysis
Dataflow analysis to find live stores of locals. This is just a backward analysis to see which loads reach stores of the same local.
This analysis also computes which stores that were killed by a subsequent store on any subsequent reachable path. (The FindDeadLocalStores detector uses this information to reduce false positives.)
Field Summary |
---|
Fields inherited from interface edu.umd.cs.findbugs.ba.Debug |
---|
VERIFY_INTEGRITY |
Constructor Summary | |
---|---|
LiveLocalStoreAnalysis(org.apache.bcel.generic.MethodGen methodGen,
ReverseDepthFirstSearch rdfs,
DepthFirstSearch dfs)
|
Method Summary | |
---|---|
void |
copy(java.util.BitSet source,
java.util.BitSet dest)
Copy dataflow facts. |
java.util.BitSet |
createFact()
Create empty (uninitialized) dataflow facts for one program point. |
java.lang.String |
factToString(java.util.BitSet fact)
Return a String representation of given Fact. |
void |
initEntryFact(java.util.BitSet result)
Initialize the "entry" fact for the graph. |
boolean |
isFactValid(java.util.BitSet fact)
Determine whether the given fact is valid (neither top nor bottom). |
boolean |
isStoreAlive(java.util.BitSet fact,
int local)
Return whether or not a store of given local is alive. |
boolean |
isTop(java.util.BitSet fact)
Return whether or not given fact is the special TOP value. |
boolean |
killedByStore(java.util.BitSet fact,
int local)
Return whether or not a store of given local was killed by a subsequent (dominated) store. |
void |
makeFactTop(java.util.BitSet fact)
Make given fact the top value. |
void |
meetInto(java.util.BitSet fact,
Edge edge,
java.util.BitSet result)
Meet a dataflow fact associated with an incoming edge into another fact. |
boolean |
same(java.util.BitSet fact1,
java.util.BitSet fact2)
Are given dataflow facts the same? |
void |
transferInstruction(org.apache.bcel.generic.InstructionHandle handle,
BasicBlock basicBlock,
java.util.BitSet 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 |
---|
getFactAfterLocation, getFactAtLocation, transfer |
Methods inherited from class edu.umd.cs.findbugs.ba.BasicAbstractDataflowAnalysis |
---|
edgeTransfer, finishIteration, getFactOnEdge, getLastUpdateTimestamp, getResultFact, getStartFact, resultFactIterator, setLastUpdateTimestamp, startIteration |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public LiveLocalStoreAnalysis(org.apache.bcel.generic.MethodGen methodGen, ReverseDepthFirstSearch rdfs, DepthFirstSearch dfs)
Method Detail |
---|
public java.util.BitSet createFact()
DataflowAnalysis
createFact
in interface DataflowAnalysis<java.util.BitSet>
public void copy(java.util.BitSet source, java.util.BitSet dest)
DataflowAnalysis
copy
in interface DataflowAnalysis<java.util.BitSet>
public void initEntryFact(java.util.BitSet result) throws DataflowAnalysisException
DataflowAnalysis
initEntryFact
in interface DataflowAnalysis<java.util.BitSet>
DataflowAnalysisException
public void makeFactTop(java.util.BitSet fact)
DataflowAnalysis
makeFactTop
in interface DataflowAnalysis<java.util.BitSet>
public boolean same(java.util.BitSet fact1, java.util.BitSet fact2)
DataflowAnalysis
same
in interface DataflowAnalysis<java.util.BitSet>
public void meetInto(java.util.BitSet fact, Edge edge, java.util.BitSet result) throws DataflowAnalysisException
DataflowAnalysis
meetInto
in interface DataflowAnalysis<java.util.BitSet>
fact
- the predecessor fact (incoming edge)edge
- the edge from the predecessorresult
- the result fact
DataflowAnalysisException
public void transferInstruction(org.apache.bcel.generic.InstructionHandle handle, BasicBlock basicBlock, java.util.BitSet fact) throws DataflowAnalysisException
AbstractDataflowAnalysis
transferInstruction
in class AbstractDataflowAnalysis<java.util.BitSet>
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 boolean isFactValid(java.util.BitSet fact)
AbstractDataflowAnalysis
isFactValid
in class AbstractDataflowAnalysis<java.util.BitSet>
public java.lang.String factToString(java.util.BitSet fact)
DataflowAnalysis
factToString
in interface DataflowAnalysis<java.util.BitSet>
factToString
in class BasicAbstractDataflowAnalysis<java.util.BitSet>
fact
- a dataflow fact
public boolean isTop(java.util.BitSet fact)
isTop
in interface DataflowAnalysis<java.util.BitSet>
public boolean isStoreAlive(java.util.BitSet fact, int local)
fact
- a dataflow fact created by this analysislocal
- the localpublic boolean killedByStore(java.util.BitSet fact, int local)
|
FindBugs™ 1.3.9 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |