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, samegetFactAfterLocation, getFactAtLocation, transferfactToString, finishIteration, getFactOnEdge, getLastUpdateTimestamp, getResultFact, getStartFact, resultFactIterator, setLastUpdateTimestamp, startIterationpublic 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
DataflowAnalysisA do-nothing implementation is legal, and appropriate for analyses where branches are not significant.
edgeTransfer in interface DataflowAnalysis<TypeQualifierValueSet>edgeTransfer in class TypeQualifierDataflowAnalysisedge - the Edgefact - a dataflow factDataflowAnalysisExceptionpublic void transferInstruction(org.apache.bcel.generic.InstructionHandle handle,
BasicBlock basicBlock,
TypeQualifierValueSet fact)
throws DataflowAnalysisException
AbstractDataflowAnalysistransferInstruction in class TypeQualifierDataflowAnalysishandle - the instructionbasicBlock - the BasicBlock containing the instruction; needed to
disambiguate instructions in inlined JSR subroutinesfact - which should be modified based on the instructionDataflowAnalysisExceptionpublic BlockOrder getBlockOrder(CFG cfg1)
DataflowAnalysiscfg1 - the CFG upon which we're performing dataflow analysispublic boolean isForwards()
DataflowAnalysispublic void registerSourceSinkLocations()
throws DataflowAnalysisException
TypeQualifierDataflowAnalysisregisterSourceSinkLocations in class TypeQualifierDataflowAnalysisDataflowAnalysisExceptionprotected void propagateAcrossPhiNode(TypeQualifierValueSet fact, ValueNumber sourceVN, ValueNumber targetVN)
propagateAcrossPhiNode in class TypeQualifierDataflowAnalysisFindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.