DataflowAnalysis<Fact>public class BackwardTypeQualifierDataflowAnalysis extends TypeQualifierDataflowAnalysis
cfg, cpg, typeQualifierValue, vnaDataflow, xmethod| Constructor | 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 | 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.
|
getFactAfterLocation, getFactAtLocation, transferfactToString, finishIteration, getFactOnEdge, getLastUpdateTimestamp, getResultFact, getStartFact, resultFactIterator, setLastUpdateTimestamp, startIterationclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcopy, createFact, getSourceSinkInfoSet, initEntryFact, isFactValid, isTop, makeFactTop, meetInto, registerSourceSink, samepublic 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<Fact>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.