Package edu.umd.cs.findbugs.ba.jsr305
Class ForwardTypeQualifierDataflowAnalysis
- java.lang.Object
-
- edu.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.ForwardTypeQualifierDataflowAnalysis
-
- All Implemented Interfaces:
DataflowAnalysis<TypeQualifierValueSet>
public class ForwardTypeQualifierDataflowAnalysis extends TypeQualifierDataflowAnalysis
Forward type qualifier dataflow analysis.- Author:
- David Hovemeyer
-
-
Field Summary
-
Fields inherited from class edu.umd.cs.findbugs.ba.jsr305.TypeQualifierDataflowAnalysis
cfg, cpg, typeQualifierValue, vnaDataflow, xmethod
-
-
Constructor Summary
Constructors Constructor Description ForwardTypeQualifierDataflowAnalysis(DepthFirstSearch dfs, XMethod xmethod, CFG cfg, ValueNumberDataflow vnaDataflow, org.apache.bcel.generic.ConstantPoolGen cpg, TypeQualifierValue<?> typeQualifierValue)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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.-
Methods inherited from class edu.umd.cs.findbugs.ba.jsr305.TypeQualifierDataflowAnalysis
copy, createFact, edgeTransfer, getSourceSinkInfoSet, initEntryFact, isFactValid, isTop, makeFactTop, meetInto, registerSourceSink, same, transferInstruction
-
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
-
-
-
-
Constructor Detail
-
ForwardTypeQualifierDataflowAnalysis
public ForwardTypeQualifierDataflowAnalysis(DepthFirstSearch dfs, XMethod xmethod, CFG cfg, ValueNumberDataflow vnaDataflow, org.apache.bcel.generic.ConstantPoolGen cpg, TypeQualifierValue<?> typeQualifierValue)
Constructor.- Parameters:
dfs
- DepthFirstSearch 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 check
-
-
Method Detail
-
getBlockOrder
public BlockOrder getBlockOrder(CFG cfg1)
Description copied from interface:DataflowAnalysis
Return the BlockOrder specifying the order in which BasicBlocks should be visited in the main dataflow loop.- Parameters:
cfg1
- the CFG upon which we're performing dataflow analysis
-
isForwards
public boolean isForwards()
Description copied from interface:DataflowAnalysis
Returns true if the analysis is forwards, false if backwards.
-
registerSourceSinkLocations
public void registerSourceSinkLocations() throws DataflowAnalysisException
Description copied from class:TypeQualifierDataflowAnalysis
This method must be called before the dataflow analysis is executed.- Specified by:
registerSourceSinkLocations
in classTypeQualifierDataflowAnalysis
- Throws:
DataflowAnalysisException
-
propagateAcrossPhiNode
protected void propagateAcrossPhiNode(TypeQualifierValueSet fact, ValueNumber sourceVN, ValueNumber targetVN)
- Specified by:
propagateAcrossPhiNode
in classTypeQualifierDataflowAnalysis
-
-