public class ValueNumberFrameModelingVisitor extends AbstractFrameModelingVisitor<ValueNumber,ValueNumberFrame> implements Debug, ValueNumberAnalysisFeatures
ValueNumber
,
ValueNumberFrame
,
ValueNumberAnalysis
cpg
VERIFY_INTEGRITY
REDUNDANT_LOAD_ELIMINATION, RLE_DEBUG
Constructor and Description |
---|
ValueNumberFrameModelingVisitor(org.apache.bcel.generic.MethodGen methodGen,
ValueNumberFactory factory,
ValueNumberCache cache,
LoadedFieldSet loadedFieldSet,
RepositoryLookupFailureCallback lookupFailureCallback)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
ValueNumber |
getDefaultValue()
Produce a "default" value.
|
void |
modelNormalInstruction(org.apache.bcel.generic.Instruction ins,
int numWordsConsumed,
int numWordsProduced)
This is the default instruction modeling method.
|
void |
setHandle(org.apache.bcel.generic.InstructionHandle handle)
Set the instruction handle of the instruction currently being visited.
|
void |
visitACONST_NULL(org.apache.bcel.generic.ACONST_NULL obj) |
void |
visitCHECKCAST(org.apache.bcel.generic.CHECKCAST obj) |
void |
visitGETFIELD(org.apache.bcel.generic.GETFIELD obj) |
void |
visitGETSTATIC(org.apache.bcel.generic.GETSTATIC obj) |
void |
visitIINC(org.apache.bcel.generic.IINC obj) |
void |
visitInvokeOnException(org.apache.bcel.generic.Instruction obj) |
void |
visitINVOKESTATIC(org.apache.bcel.generic.INVOKESTATIC obj) |
void |
visitINVOKEVIRTUAL(org.apache.bcel.generic.INVOKEVIRTUAL obj) |
void |
visitLDC(org.apache.bcel.generic.LDC obj) |
void |
visitMONITORENTER(org.apache.bcel.generic.MONITORENTER obj) |
void |
visitPUTFIELD(org.apache.bcel.generic.PUTFIELD obj) |
void |
visitPUTSTATIC(org.apache.bcel.generic.PUTSTATIC obj) |
analyzeInstruction, getCPG, getFrame, getLocation, getNumWordsConsumed, getNumWordsProduced, handleLoadInstruction, handleNormalInstruction, handleStoreInstruction, modelInstruction, setFrameAndLocation, visitAALOAD, visitAASTORE, visitAllocationInstruction, visitALOAD, visitANEWARRAY, visitARETURN, visitArithmeticInstruction, visitArrayInstruction, visitARRAYLENGTH, visitASTORE, visitATHROW, visitBALOAD, visitBASTORE, visitBIPUSH, visitBranchInstruction, visitBREAKPOINT, visitCALOAD, visitCASTORE, visitConstantPushInstruction, visitConversionInstruction, visitConversionInstruction2, visitCPInstruction, visitD2F, visitD2I, visitD2L, visitDADD, visitDALOAD, visitDASTORE, visitDCMPG, visitDCMPL, visitDCONST, visitDDIV, visitDLOAD, visitDMUL, visitDNEG, visitDREM, visitDRETURN, visitDSTORE, visitDSUB, visitDUP_X1, visitDUP_X2, visitDUP, visitDUP2_X1, visitDUP2_X2, visitDUP2, visitExceptionThrower, visitF2D, visitF2I, visitF2L, visitFADD, visitFALOAD, visitFASTORE, visitFCMPG, visitFCMPL, visitFCONST, visitFDIV, visitFieldInstruction, visitFieldOrMethod, visitFLOAD, visitFMUL, visitFNEG, visitFREM, visitFRETURN, visitFSTORE, visitFSUB, visitGOTO_W, visitGOTO, visitGotoInstruction, visitI2B, visitI2C, visitI2D, visitI2F, visitI2L, visitI2S, visitIADD, visitIALOAD, visitIAND, visitIASTORE, visitICONST, visitIDIV, visitIF_ACMPEQ, visitIF_ACMPNE, visitIF_ICMPEQ, visitIF_ICMPGE, visitIF_ICMPGT, visitIF_ICMPLE, visitIF_ICMPLT, visitIF_ICMPNE, visitIFEQ, visitIFGE, visitIFGT, visitIfInstruction, visitIFLE, visitIFLT, visitIFNE, visitIFNONNULL, visitIFNULL, visitILOAD, visitIMPDEP1, visitIMPDEP2, visitIMUL, visitINEG, visitINSTANCEOF, visitINVOKEDYNAMIC, visitInvokeInstruction, visitINVOKEINTERFACE, visitINVOKESPECIAL, visitIOR, visitIREM, visitIRETURN, visitISHL, visitISHR, visitISTORE, visitISUB, visitIUSHR, visitIXOR, visitJSR_W, visitJSR, visitJsrInstruction, visitL2D, visitL2F, visitL2I, visitLADD, visitLALOAD, visitLAND, visitLASTORE, visitLCMP, visitLCONST, visitLDC2_W, visitLDIV, visitLLOAD, visitLMUL, visitLNEG, visitLoadClass, visitLoadInstruction, visitLocalVariableInstruction, visitLOOKUPSWITCH, visitLOR, visitLREM, visitLRETURN, visitLSHL, visitLSHR, visitLSTORE, visitLSUB, visitLUSHR, visitLXOR, visitMONITOREXIT, visitMULTIANEWARRAY, visitNEW, visitNEWARRAY, visitNONNULL2Z, visitNOP, visitNULL2Z, visitPOP, visitPOP2, visitPopInstruction, visitPushInstruction, visitRET, visitRETURN, visitReturnInstruction, visitSALOAD, visitSASTORE, visitSelect, visitSIPUSH, visitStackConsumer, visitStackInstruction, visitStackProducer, visitStoreInstruction, visitSWAP, visitTABLESWITCH, visitTypedInstruction, visitUnconditionalBranch, visitVariableLengthInstruction
public ValueNumberFrameModelingVisitor(org.apache.bcel.generic.MethodGen methodGen, ValueNumberFactory factory, ValueNumberCache cache, LoadedFieldSet loadedFieldSet, RepositoryLookupFailureCallback lookupFailureCallback)
methodGen
- the method being analyzedfactory
- factory for ValueNumbers for the methodcache
- cache of input/output transformations for each instructionloadedFieldSet
- fields loaded/stored by each instruction and entire methodlookupFailureCallback
- callback to use to report class lookup failurespublic ValueNumber getDefaultValue()
AbstractFrameModelingVisitor
getDefaultValue
in class AbstractFrameModelingVisitor<ValueNumber,ValueNumberFrame>
public void setHandle(org.apache.bcel.generic.InstructionHandle handle)
public void modelNormalInstruction(org.apache.bcel.generic.Instruction ins, int numWordsConsumed, int numWordsProduced)
modelNormalInstruction
in class AbstractFrameModelingVisitor<ValueNumber,ValueNumberFrame>
ins
- the Instruction to modelnumWordsConsumed
- number of stack words consumednumWordsProduced
- number of stack words producedpublic void visitGETFIELD(org.apache.bcel.generic.GETFIELD obj)
visitGETFIELD
in interface org.apache.bcel.generic.Visitor
visitGETFIELD
in class AbstractFrameModelingVisitor<ValueNumber,ValueNumberFrame>
public void visitPUTFIELD(org.apache.bcel.generic.PUTFIELD obj)
visitPUTFIELD
in interface org.apache.bcel.generic.Visitor
visitPUTFIELD
in class AbstractFrameModelingVisitor<ValueNumber,ValueNumberFrame>
public void visitGETSTATIC(org.apache.bcel.generic.GETSTATIC obj)
visitGETSTATIC
in interface org.apache.bcel.generic.Visitor
visitGETSTATIC
in class AbstractFrameModelingVisitor<ValueNumber,ValueNumberFrame>
public void visitPUTSTATIC(org.apache.bcel.generic.PUTSTATIC obj)
visitPUTSTATIC
in interface org.apache.bcel.generic.Visitor
visitPUTSTATIC
in class AbstractFrameModelingVisitor<ValueNumber,ValueNumberFrame>
public void visitINVOKESTATIC(org.apache.bcel.generic.INVOKESTATIC obj)
visitINVOKESTATIC
in interface org.apache.bcel.generic.Visitor
visitINVOKESTATIC
in class AbstractFrameModelingVisitor<ValueNumber,ValueNumberFrame>
public void visitMONITORENTER(org.apache.bcel.generic.MONITORENTER obj)
visitMONITORENTER
in interface org.apache.bcel.generic.Visitor
visitMONITORENTER
in class AbstractFrameModelingVisitor<ValueNumber,ValueNumberFrame>
public void visitInvokeOnException(org.apache.bcel.generic.Instruction obj)
public void visitINVOKEVIRTUAL(org.apache.bcel.generic.INVOKEVIRTUAL obj)
visitINVOKEVIRTUAL
in interface org.apache.bcel.generic.Visitor
visitINVOKEVIRTUAL
in class AbstractFrameModelingVisitor<ValueNumber,ValueNumberFrame>
public void visitACONST_NULL(org.apache.bcel.generic.ACONST_NULL obj)
visitACONST_NULL
in interface org.apache.bcel.generic.Visitor
visitACONST_NULL
in class AbstractFrameModelingVisitor<ValueNumber,ValueNumberFrame>
public void visitLDC(org.apache.bcel.generic.LDC obj)
visitLDC
in interface org.apache.bcel.generic.Visitor
visitLDC
in class AbstractFrameModelingVisitor<ValueNumber,ValueNumberFrame>
public void visitIINC(org.apache.bcel.generic.IINC obj)
visitIINC
in interface org.apache.bcel.generic.Visitor
visitIINC
in class AbstractFrameModelingVisitor<ValueNumber,ValueNumberFrame>
public void visitCHECKCAST(org.apache.bcel.generic.CHECKCAST obj)
visitCHECKCAST
in interface org.apache.bcel.generic.Visitor
visitCHECKCAST
in class AbstractFrameModelingVisitor<ValueNumber,ValueNumberFrame>
FindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.