public class ValueNumberAnalysis extends FrameDataflowAnalysis<ValueNumber,ValueNumberFrame>
ValueNumber class for an explanation
 of what the value numbers mean, and when they can be compared.
 This class is still experimental.
ValueNumber, 
DominatorsAnalysis| Modifier and Type | Field and Description | 
|---|---|
| static boolean | DEBUG | 
| Constructor and Description | 
|---|
| ValueNumberAnalysis(org.apache.bcel.generic.MethodGen methodGen,
                   DepthFirstSearch dfs,
                   LoadedFieldSet loadedFieldSet,
                   RepositoryLookupFailureCallback lookupFailureCallback) | 
| Modifier and Type | Method and Description | 
|---|---|
| void | compactValueNumbers(Dataflow<ValueNumberFrame,ValueNumberAnalysis> dataflow)Deprecated.  | 
| ValueNumberFrame | createFact()Create empty (uninitialized) dataflow facts for one program point. | 
| java.util.Iterator<ValueNumberFrame> | factIterator()Get an Iterator over all dataflow facts that we've recorded for the
 Locations in the CFG. | 
| java.lang.String | getClassName(ValueNumber v) | 
| ValueNumber | getClassObjectValue(java.lang.String className) | 
| ValueNumber | getEntryValue(int local)Get the value number assigned to the given local variable upon entry to
 the method. | 
| ValueNumber | getEntryValueForParameter(int param)Get the value number assigned to the given parameter upon entry to the
 method. | 
| ValueNumberFrame | getFactAfterLocation(Location location)Get the dataflow fact representing the point just after given Location. | 
| ValueNumberFrame | getFactAtLocation(Location location)Get the dataflow fact representing the point just before given Location. | 
| ValueNumberFactory | getFactory() | 
| MergeTree | getMergeTree() | 
| int | getNumValuesAllocated() | 
| ValueNumber | getThisValue() | 
| void | initEntryFact(ValueNumberFrame result)Initialize the "entry" fact for the graph. | 
| boolean | isThisValue(ValueNumber value) | 
| void | meetInto(ValueNumberFrame fact,
        Edge edge,
        ValueNumberFrame result)Meet a dataflow fact associated with an incoming edge into another fact. | 
| protected void | mergeInto(ValueNumberFrame frame,
         ValueNumberFrame result)Merge one frame into another. | 
| protected void | mergeValues(ValueNumberFrame otherFrame,
           ValueNumberFrame resultFrame,
           int slot)Merge the values contained in a given slot of two Frames. | 
| void | setMergeTree(MergeTree mergeTree) | 
| void | transfer(BasicBlock basicBlock,
        org.apache.bcel.generic.InstructionHandle end,
        ValueNumberFrame start,
        ValueNumberFrame result)Transfer function for the analysis. | 
| void | transferInstruction(org.apache.bcel.generic.InstructionHandle handle,
                   BasicBlock basicBlock,
                   ValueNumberFrame fact)Transfer function for a single instruction. | 
copy, getFactAtPC, getFactBeforeExceptionCheck, getLastUpdateTimestamp, isFactValid, isTop, makeFactTop, modifyFrame, same, setLastUpdateTimestampgetBlockOrder, getDepthFirstSearch, isForwardsedgeTransfer, factToString, finishIteration, getFactOnEdge, getResultFact, getStartFact, resultFactIterator, startIterationpublic ValueNumberAnalysis(org.apache.bcel.generic.MethodGen methodGen,
                   DepthFirstSearch dfs,
                   LoadedFieldSet loadedFieldSet,
                   RepositoryLookupFailureCallback lookupFailureCallback)
public ValueNumber getClassObjectValue(java.lang.String className)
public void setMergeTree(MergeTree mergeTree)
public MergeTree getMergeTree()
public ValueNumberFactory getFactory()
public int getNumValuesAllocated()
public boolean isThisValue(ValueNumber value)
public ValueNumber getThisValue()
public ValueNumber getEntryValue(int local)
local - local variable numberpublic ValueNumber getEntryValueForParameter(int param)
param - a parameter (0 == first parameter)public ValueNumberFrame createFact()
DataflowAnalysispublic void initEntryFact(ValueNumberFrame result)
DataflowAnalysispublic void transfer(BasicBlock basicBlock, org.apache.bcel.generic.InstructionHandle end, ValueNumberFrame start, ValueNumberFrame result) throws DataflowAnalysisException
DataflowAnalysistransfer in interface DataflowAnalysis<ValueNumberFrame>transfer in class AbstractDataflowAnalysis<ValueNumberFrame>basicBlock - the basic blockend - if nonnull, stop before considering this instruction;
            otherwise, consider all of the instructions in the basic blockstart - dataflow facts at beginning of block (if forward analysis) or
            end of block (if backwards analysis)result - resulting dataflow facts at other end of blockDataflowAnalysisExceptionpublic void transferInstruction(org.apache.bcel.generic.InstructionHandle handle,
                       BasicBlock basicBlock,
                       ValueNumberFrame fact)
                         throws DataflowAnalysisException
AbstractDataflowAnalysistransferInstruction in class AbstractDataflowAnalysis<ValueNumberFrame>handle - the instructionbasicBlock - the BasicBlock containing the instruction; needed to
            disambiguate instructions in inlined JSR subroutinesfact - which should be modified based on the instructionDataflowAnalysisExceptionpublic void meetInto(ValueNumberFrame fact, Edge edge, ValueNumberFrame result) throws DataflowAnalysisException
DataflowAnalysisfact - the predecessor fact (incoming edge)edge - the edge from the predecessorresult - the result factDataflowAnalysisExceptionprotected void mergeInto(ValueNumberFrame frame, ValueNumberFrame result) throws DataflowAnalysisException
FrameDataflowAnalysismergeInto in class FrameDataflowAnalysis<ValueNumber,ValueNumberFrame>frame - the frame to merge with the resultresult - the result frame, which is modified to be the merge of the two
            framesDataflowAnalysisExceptionprotected void mergeValues(ValueNumberFrame otherFrame, ValueNumberFrame resultFrame, int slot) throws DataflowAnalysisException
FrameDataflowAnalysismergeValues in class FrameDataflowAnalysis<ValueNumber,ValueNumberFrame>otherFrame - a FrameresultFrame - a Frame which will contain the resulting merged valueslot - a slot in both framesDataflowAnalysisExceptionpublic ValueNumberFrame getFactAtLocation(Location location)
AbstractDataflowAnalysisgetFactAtLocation in interface DataflowAnalysis<ValueNumberFrame>getFactAtLocation in class AbstractDataflowAnalysis<ValueNumberFrame>location - the locationpublic ValueNumberFrame getFactAfterLocation(Location location)
AbstractDataflowAnalysisgetFactAfterLocation in interface DataflowAnalysis<ValueNumberFrame>getFactAfterLocation in class AbstractDataflowAnalysis<ValueNumberFrame>location - the locationpublic java.util.Iterator<ValueNumberFrame> factIterator()
@Deprecated public void compactValueNumbers(Dataflow<ValueNumberFrame,ValueNumberAnalysis> dataflow)
This method should be called at most once.
dataflow - the Dataflow object which executed this analysis (and has all
            of the block result values)@CheckForNull @DottedClassName public java.lang.String getClassName(ValueNumber v)
FindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.