|
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<TypeQualifierValueSet>
edu.umd.cs.findbugs.ba.jsr305.TypeQualifierDataflowAnalysis
edu.umd.cs.findbugs.ba.jsr305.BackwardTypeQualifierDataflowAnalysis
public class BackwardTypeQualifierDataflowAnalysis
Backwards type qualifier dataflow analysis.
Field Summary |
---|
Fields inherited from class edu.umd.cs.findbugs.ba.jsr305.TypeQualifierDataflowAnalysis |
---|
cfg, cpg, typeQualifierValue, vnaDataflow, xmethod |
Constructor Summary | |
---|---|
BackwardTypeQualifierDataflowAnalysis(DepthFirstSearch dfs,
ReverseDepthFirstSearch rdfs,
XMethod xmethod,
CFG cfg,
ValueNumberDataflow vnaDataflow,
org.apache.bcel.generic.ConstantPoolGen cpg,
TypeQualifierValue typeQualifierValue)
Constructor. |
Method Summary | |
---|---|
void |
edgeTransfer(Edge edge,
TypeQualifierValueSet fact)
Edge transfer function. |
BlockOrder |
getBlockOrder(CFG cfg)
Return the BlockOrder specifying the order in which BasicBlocks should be visited in the main dataflow loop. |
boolean |
isForwards()
Returns true if the analysis is forwards, false if backwards. |
protected void |
propagateAcrossPhiNode(TypeQualifierValueSet fact,
ValueNumber sourceVN,
ValueNumber targetVN)
|
void |
registerSourceSinkLocations()
This method must be called before the dataflow analysis is executed. |
void |
setForwardTypeQualifierDataflow(ForwardTypeQualifierDataflow forwardTypeQualifierDataflow)
|
void |
transferInstruction(org.apache.bcel.generic.InstructionHandle handle,
BasicBlock basicBlock,
TypeQualifierValueSet fact)
Transfer function for a single instruction. |
Methods inherited from class edu.umd.cs.findbugs.ba.jsr305.TypeQualifierDataflowAnalysis |
---|
copy, createFact, getSourceSinkInfoSet, initEntryFact, isFactValid, isTop, makeFactTop, meetInto, registerSourceSink, same |
Methods inherited from class edu.umd.cs.findbugs.ba.AbstractDataflowAnalysis |
---|
getFactAfterLocation, getFactAtLocation, transfer |
Methods inherited from class edu.umd.cs.findbugs.ba.BasicAbstractDataflowAnalysis |
---|
factToString, 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 BackwardTypeQualifierDataflowAnalysis(DepthFirstSearch dfs, ReverseDepthFirstSearch rdfs, XMethod xmethod, CFG cfg, ValueNumberDataflow vnaDataflow, org.apache.bcel.generic.ConstantPoolGen cpg, TypeQualifierValue typeQualifierValue)
dfs
- DepthFirstSearch on the analyzed methodrdfs
- ReverseDepthFirstSearch on the analyzed methodxmethod
- XMethod for the analyzed methodcfg
- CFG of the analyzed methodvnaDataflow
- ValueNumberDataflow on the analyzed methodcpg
- ConstantPoolGen of the analyzed methodtypeQualifierValue
- TypeQualifierValue representing type qualifier the analysis should checkMethod Detail |
---|
public void setForwardTypeQualifierDataflow(ForwardTypeQualifierDataflow forwardTypeQualifierDataflow)
forwardTypeQualifierDataflow
- The forwardTypeQualifierDataflow to set.public void edgeTransfer(Edge edge, TypeQualifierValueSet fact) throws DataflowAnalysisException
DataflowAnalysis
A do-nothing implementation is legal, and appropriate for analyses where branches are not significant.
edgeTransfer
in interface DataflowAnalysis<TypeQualifierValueSet>
edgeTransfer
in class TypeQualifierDataflowAnalysis
edge
- the Edgefact
- a dataflow fact
DataflowAnalysisException
public void transferInstruction(org.apache.bcel.generic.InstructionHandle handle, BasicBlock basicBlock, TypeQualifierValueSet fact) throws DataflowAnalysisException
AbstractDataflowAnalysis
transferInstruction
in class TypeQualifierDataflowAnalysis
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 BlockOrder getBlockOrder(CFG cfg)
DataflowAnalysis
cfg
- the CFG upon which we're performing dataflow analysispublic boolean isForwards()
DataflowAnalysis
public void registerSourceSinkLocations() throws DataflowAnalysisException
TypeQualifierDataflowAnalysis
registerSourceSinkLocations
in class TypeQualifierDataflowAnalysis
DataflowAnalysisException
protected void propagateAcrossPhiNode(TypeQualifierValueSet fact, ValueNumber sourceVN, ValueNumber targetVN)
propagateAcrossPhiNode
in class TypeQualifierDataflowAnalysis
|
FindBugs™ 1.3.9 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |