public class BackwardTypeQualifierDataflowAnalysis extends TypeQualifierDataflowAnalysis
cfg, cpg, typeQualifierValue, vnaDataflow, xmethod
Constructor and Description |
---|
BackwardTypeQualifierDataflowAnalysis(DepthFirstSearch dfs,
ReverseDepthFirstSearch rdfs,
XMethod xmethod,
CFG cfg,
ValueNumberDataflow vnaDataflow,
org.apache.bcel.generic.ConstantPoolGen cpg,
TypeQualifierValue<?> typeQualifierValue)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
edgeTransfer(Edge edge,
TypeQualifierValueSet fact)
Edge transfer function.
|
BlockOrder |
getBlockOrder(CFG cfg1)
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.
|
copy, createFact, getSourceSinkInfoSet, initEntryFact, isFactValid, isTop, makeFactTop, meetInto, registerSourceSink, same
getFactAfterLocation, getFactAtLocation, transfer
factToString, finishIteration, getFactOnEdge, getLastUpdateTimestamp, getResultFact, getStartFact, resultFactIterator, setLastUpdateTimestamp, startIteration
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 checkpublic 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 factDataflowAnalysisException
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 instructionDataflowAnalysisException
public BlockOrder getBlockOrder(CFG cfg1)
DataflowAnalysis
cfg1
- 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™ is licenced under the LGPL. Copyright © 2006 University of Maryland.