joeq.Compiler.BytecodeAnalysis
Class TypeAnalysis.TypeAnalysisVisitor
java.lang.Object
joeq.Compiler.BytecodeAnalysis.BytecodeVisitor
joeq.Compiler.BytecodeAnalysis.StackDepthVisitor
joeq.Compiler.BytecodeAnalysis.TypeAnalysis.TypeAnalysisVisitor
- All Implemented Interfaces:
- CompilationConstants, jq_ClassFileConstants
- Direct Known Subclasses:
- TypeAnalysis.ScalarReplacementVisitor
- Enclosing class:
- TypeAnalysis
- public static class TypeAnalysis.TypeAnalysisVisitor
- extends StackDepthVisitor
Fields inherited from class joeq.Compiler.BytecodeAnalysis.BytecodeVisitor |
bcs, BINOP_ADD, BINOP_AND, BINOP_DIV, BINOP_MUL, BINOP_OR, BINOP_REM, BINOP_SUB, BINOP_XOR, binopnames, clazz, CMP_AE, CMP_EQ, CMP_G, CMP_GE, CMP_GT, CMP_L, CMP_LE, CMP_LT, CMP_NE, CMP_UNCOND, cmpopnames, fcmpopnames, i_end, i_start, INVOKE_INTERFACE, INVOKE_SPECIAL, INVOKE_STATIC, INVOKE_VIRTUAL, invokeopnames, method, MONITOR_ENTER, MONITOR_EXIT, monitoropnames, out, SHIFT_LEFT, SHIFT_RIGHT, SHIFT_URIGHT, shiftopnames, state, TRACE, UNOP_NEG, unopnames |
Fields inherited from interface joeq.Class.jq_ClassFileConstants |
ACC_ABSTRACT, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_TRANSIENT, ACC_VOLATILE, CONSTANT_Class, CONSTANT_Double, CONSTANT_FieldRef, CONSTANT_Float, CONSTANT_Integer, CONSTANT_InterfaceMethodRef, CONSTANT_Long, CONSTANT_MethodRef, CONSTANT_NameAndType, CONSTANT_ResolvedClass, CONSTANT_ResolvedIFieldRef, CONSTANT_ResolvedIMethodRef, CONSTANT_ResolvedSFieldRef, CONSTANT_ResolvedSMethodRef, CONSTANT_String, CONSTANT_Utf8, CONSUME_STACK, ILLEGAL_OPCODE, ILLEGAL_TYPE, jbc_AALOAD, jbc_AASTORE, jbc_ACONST_NULL, jbc_ALOAD, jbc_ALOAD_0, jbc_ALOAD_1, jbc_ALOAD_2, jbc_ALOAD_3, jbc_ANEWARRAY, jbc_ARETURN, jbc_ARRAYLENGTH, jbc_ASTORE, jbc_ASTORE_0, jbc_ASTORE_1, jbc_ASTORE_2, jbc_ASTORE_3, jbc_ATHROW, jbc_BALOAD, jbc_BASTORE, jbc_BIPUSH, jbc_BREAKPOINT, jbc_CALOAD, jbc_CASTORE, jbc_CHECKCAST, jbc_D2F, jbc_D2I, jbc_D2L, jbc_DADD, jbc_DALOAD, jbc_DASTORE, jbc_DCMPG, jbc_DCMPL, jbc_DCONST_0, jbc_DCONST_1, jbc_DDIV, jbc_DLOAD, jbc_DLOAD_0, jbc_DLOAD_1, jbc_DLOAD_2, jbc_DLOAD_3, jbc_DMUL, jbc_DNEG, jbc_DREM, jbc_DRETURN, jbc_DSTORE, jbc_DSTORE_0, jbc_DSTORE_1, jbc_DSTORE_2, jbc_DSTORE_3, jbc_DSUB, jbc_DUP, jbc_DUP_X1, jbc_DUP_X2, jbc_DUP2, jbc_DUP2_X1, jbc_DUP2_X2, jbc_F2D, jbc_F2I, jbc_F2L, jbc_FADD, jbc_FALOAD, jbc_FASTORE, jbc_FCMPG, jbc_FCMPL, jbc_FCONST_0, jbc_FCONST_1, jbc_FCONST_2, jbc_FDIV, jbc_FLOAD, jbc_FLOAD_0, jbc_FLOAD_1, jbc_FLOAD_2, jbc_FLOAD_3, jbc_FMUL, jbc_FNEG, jbc_FREM, jbc_FRETURN, jbc_FSTORE, jbc_FSTORE_0, jbc_FSTORE_1, jbc_FSTORE_2, jbc_FSTORE_3, jbc_FSUB, jbc_GETFIELD, jbc_GETSTATIC, jbc_GOTO, jbc_GOTO_W, jbc_I2B, jbc_I2C, jbc_I2D, jbc_I2F, jbc_I2L, jbc_I2S, jbc_IADD, jbc_IALOAD, jbc_IAND, jbc_IASTORE, jbc_ICONST_0, jbc_ICONST_1, jbc_ICONST_2, jbc_ICONST_3, jbc_ICONST_4, jbc_ICONST_5, jbc_ICONST_M1, jbc_IDIV, jbc_IF_ACMPEQ, jbc_IF_ACMPNE, jbc_IF_ICMPEQ, jbc_IF_ICMPGE, jbc_IF_ICMPGT, jbc_IF_ICMPLE, jbc_IF_ICMPLT, jbc_IF_ICMPNE, jbc_IFEQ, jbc_IFGE, jbc_IFGT, jbc_IFLE, jbc_IFLT, jbc_IFNE, jbc_IFNONNULL, jbc_IFNULL, jbc_IINC, jbc_ILOAD, jbc_ILOAD_0, jbc_ILOAD_1, jbc_ILOAD_2, jbc_ILOAD_3, jbc_IMUL, jbc_INEG, jbc_INSTANCEOF, jbc_INT2BYTE, jbc_INT2CHAR, jbc_INT2SHORT, jbc_INVOKEINTERFACE, jbc_INVOKENONVIRTUAL, jbc_INVOKESPECIAL, jbc_INVOKESTATIC, jbc_INVOKEVIRTUAL, jbc_IOR, jbc_IREM, jbc_IRETURN, jbc_ISHL, jbc_ISHR, jbc_ISTORE, jbc_ISTORE_0, jbc_ISTORE_1, jbc_ISTORE_2, jbc_ISTORE_3, jbc_ISUB, jbc_IUSHR, jbc_IXOR, jbc_JSR, jbc_JSR_W, jbc_L2D, jbc_L2F, jbc_L2I, jbc_LADD, jbc_LALOAD, jbc_LAND, jbc_LASTORE, jbc_LCMP, jbc_LCONST_0, jbc_LCONST_1, jbc_LDC, jbc_LDC_W, jbc_LDC2_W, jbc_LDIV, jbc_LLOAD, jbc_LLOAD_0, jbc_LLOAD_1, jbc_LLOAD_2, jbc_LLOAD_3, jbc_LMUL, jbc_LNEG, jbc_LOOKUPSWITCH, jbc_LOR, jbc_LREM, jbc_LRETURN, jbc_LSHL, jbc_LSHR, jbc_LSTORE, jbc_LSTORE_0, jbc_LSTORE_1, jbc_LSTORE_2, jbc_LSTORE_3, jbc_LSUB, jbc_LUSHR, jbc_LXOR, jbc_MONITORENTER, jbc_MONITOREXIT, jbc_MULTIANEWARRAY, jbc_NEW, jbc_NEWARRAY, jbc_NOP, jbc_POP, jbc_POP2, jbc_PUTFIELD, jbc_PUTSTATIC, jbc_RET, jbc_RETURN, jbc_SALOAD, jbc_SASTORE, jbc_SIPUSH, jbc_SWAP, jbc_TABLESWITCH, jbc_WIDE, NO_OF_OPERANDS, OPCODE_NAMES, PRODUCE_STACK, RESERVED, STATE_CLSINITERROR, STATE_CLSINITIALIZED, STATE_CLSINITIALIZING, STATE_CLSINITRUNNING, STATE_COMPILED, STATE_COMPILING, STATE_LOADED, STATE_LOADERROR, STATE_LOADING1, STATE_LOADING2, STATE_LOADING3, STATE_PREPARED, STATE_PREPAREERROR, STATE_PREPARING, STATE_SFINITERROR, STATE_SFINITIALIZED, STATE_SFINITIALIZING, STATE_UNLOADED, STATE_VERIFIED, STATE_VERIFYERROR, STATE_VERIFYING, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TC_ARRAY, TC_BOOLEAN, TC_BYTE, TC_CHAR, TC_CLASS, TC_CLASSEND, TC_DOUBLE, TC_FLOAT, TC_INT, TC_LONG, TC_PARAM, TC_PARAMEND, TC_SHORT, TC_VOID, TYPE_OF_OPERANDS, UNDEFINED, UNPREDICTABLE |
Method Summary |
joeq.Compiler.BytecodeAnalysis.TypeAnalysis.SetOfLocations |
applySummary(joeq.Compiler.BytecodeAnalysis.TypeAnalysis.AnalysisState state,
jq_Method f,
TypeAnalysis.AnalysisSummary summary,
boolean ex)
|
String |
toString()
|
void |
visitAALOAD()
|
void |
visitAASTORE()
|
void |
visitACONST(Object s)
|
void |
visitAGETFIELD(jq_InstanceField f)
|
void |
visitAGETSTATIC(jq_StaticField f)
|
void |
visitAINVOKE(byte op,
jq_Method f)
|
void |
visitALOAD(int i)
|
void |
visitAPUTFIELD(jq_InstanceField f)
|
void |
visitAPUTSTATIC(jq_StaticField f)
|
void |
visitARETURN()
|
void |
visitASTORE(int i)
|
void |
visitATHROW()
|
void |
visitBasicBlock(BasicBlock bb)
|
void |
visitCHECKCAST(jq_Type f)
|
void |
visitDALOAD()
|
void |
visitDINVOKE(byte op,
jq_Method f)
|
void |
visitDSTORE(int i)
|
void |
visitDUP_x1()
|
void |
visitDUP_x2()
|
void |
visitDUP()
|
void |
visitDUP2_x1()
|
void |
visitDUP2_x2()
|
void |
visitDUP2()
|
void |
visitFALOAD()
|
void |
visitFINVOKE(byte op,
jq_Method f)
|
void |
visitFSTORE(int i)
|
void |
visitIALOAD()
|
void |
visitIINVOKE(byte op,
jq_Method f)
|
void |
visitISTORE(int i)
|
void |
visitJSR(int target)
|
void |
visitLALOAD()
|
void |
visitLINVOKE(byte op,
jq_Method f)
|
void |
visitLSTORE(int i)
|
void |
visitMONITOR(byte op)
|
void |
visitMULTINEWARRAY(jq_Type f,
char dim)
|
void |
visitNEW(jq_Type f)
|
void |
visitNEWARRAY(jq_Array f)
|
void |
visitPOP()
|
void |
visitPOP2()
|
void |
visitRET(int loc)
|
void |
visitSWAP()
|
void |
visitVINVOKE(byte op,
jq_Method f)
|
Methods inherited from class joeq.Compiler.BytecodeAnalysis.StackDepthVisitor |
go, visitBALOAD, visitBASTORE, visitBGETSTATIC, visitBPUTFIELD, visitBPUTSTATIC, visitCALOAD, visitCASTORE, visitCGETSTATIC, visitCPUTFIELD, visitCPUTSTATIC, visitD2F, visitD2I, visitDASTORE, visitDBINOP, visitDCMP2, visitDCONST, visitDGETFIELD, visitDGETSTATIC, visitDLOAD, visitDPUTFIELD, visitDPUTSTATIC, visitDRETURN, visitF2D, visitF2L, visitFASTORE, visitFBINOP, visitFCMP2, visitFCONST, visitFGETSTATIC, visitFLOAD, visitFPUTFIELD, visitFPUTSTATIC, visitFRETURN, visitI2D, visitI2L, visitIASTORE, visitIBINOP, visitICONST, visitIF, visitIFCMP, visitIFREF, visitIFREFCMP, visitIGETSTATIC, visitILOAD, visitIPUTFIELD, visitIPUTSTATIC, visitIRETURN, visitISHIFT, visitL2F, visitL2I, visitLASTORE, visitLBINOP, visitLCMP2, visitLCONST, visitLGETFIELD, visitLGETSTATIC, visitLLOAD, visitLOOKUPSWITCH, visitLPUTFIELD, visitLPUTSTATIC, visitLRETURN, visitLSHIFT, visitSALOAD, visitSASTORE, visitSGETSTATIC, visitSPUTFIELD, visitSPUTSTATIC, visitTABLESWITCH, visitVRETURN, visitZGETSTATIC, visitZPUTFIELD, visitZPUTSTATIC |
Methods inherited from class joeq.Compiler.BytecodeAnalysis.BytecodeVisitor |
forwardTraversal, tryResolve, tryResolve, tryResolve, tryResolve, tryResolve, updateCPIndex, updateMemberReference, visitARRAYLENGTH, visitBGETFIELD, visitBytecode, visitCGETFIELD, visitD2L, visitDUNOP, visitF2I, visitFGETFIELD, visitFUNOP, visitGOTO, visitI2B, visitI2C, visitI2F, visitI2S, visitIGETFIELD, visitIINC, visitINSTANCEOF, visitIUNOP, visitL2D, visitLUNOP, visitNOP, visitPEI, visitSGETFIELD, visitZGETFIELD |
ALWAYS_TRACE
public static boolean ALWAYS_TRACE
trace_method_names
public static HashSet trace_method_names
MAX_DEPTH
public static int MAX_DEPTH
BY_PACKAGE
public static boolean BY_PACKAGE
toString
public String toString()
visitBasicBlock
public void visitBasicBlock(BasicBlock bb)
- Overrides:
visitBasicBlock
in class StackDepthVisitor
visitACONST
public void visitACONST(Object s)
- Overrides:
visitACONST
in class StackDepthVisitor
visitALOAD
public void visitALOAD(int i)
- Overrides:
visitALOAD
in class StackDepthVisitor
visitISTORE
public void visitISTORE(int i)
- Overrides:
visitISTORE
in class StackDepthVisitor
visitFSTORE
public void visitFSTORE(int i)
- Overrides:
visitFSTORE
in class StackDepthVisitor
visitLSTORE
public void visitLSTORE(int i)
- Overrides:
visitLSTORE
in class StackDepthVisitor
visitDSTORE
public void visitDSTORE(int i)
- Overrides:
visitDSTORE
in class StackDepthVisitor
visitASTORE
public void visitASTORE(int i)
- Overrides:
visitASTORE
in class StackDepthVisitor
visitIALOAD
public void visitIALOAD()
- Overrides:
visitIALOAD
in class StackDepthVisitor
visitFALOAD
public void visitFALOAD()
- Overrides:
visitFALOAD
in class StackDepthVisitor
visitLALOAD
public void visitLALOAD()
- Overrides:
visitLALOAD
in class BytecodeVisitor
visitDALOAD
public void visitDALOAD()
- Overrides:
visitDALOAD
in class BytecodeVisitor
visitAALOAD
public void visitAALOAD()
- Overrides:
visitAALOAD
in class StackDepthVisitor
visitAASTORE
public void visitAASTORE()
- Overrides:
visitAASTORE
in class StackDepthVisitor
visitARETURN
public void visitARETURN()
- Overrides:
visitARETURN
in class StackDepthVisitor
visitAGETSTATIC
public void visitAGETSTATIC(jq_StaticField f)
- Overrides:
visitAGETSTATIC
in class StackDepthVisitor
visitAPUTSTATIC
public void visitAPUTSTATIC(jq_StaticField f)
- Overrides:
visitAPUTSTATIC
in class StackDepthVisitor
visitAGETFIELD
public void visitAGETFIELD(jq_InstanceField f)
- Overrides:
visitAGETFIELD
in class BytecodeVisitor
visitAPUTFIELD
public void visitAPUTFIELD(jq_InstanceField f)
- Overrides:
visitAPUTFIELD
in class StackDepthVisitor
applySummary
public joeq.Compiler.BytecodeAnalysis.TypeAnalysis.SetOfLocations applySummary(joeq.Compiler.BytecodeAnalysis.TypeAnalysis.AnalysisState state,
jq_Method f,
TypeAnalysis.AnalysisSummary summary,
boolean ex)
visitIINVOKE
public void visitIINVOKE(byte op,
jq_Method f)
- Overrides:
visitIINVOKE
in class StackDepthVisitor
visitLINVOKE
public void visitLINVOKE(byte op,
jq_Method f)
- Overrides:
visitLINVOKE
in class StackDepthVisitor
visitFINVOKE
public void visitFINVOKE(byte op,
jq_Method f)
- Overrides:
visitFINVOKE
in class StackDepthVisitor
visitDINVOKE
public void visitDINVOKE(byte op,
jq_Method f)
- Overrides:
visitDINVOKE
in class StackDepthVisitor
visitAINVOKE
public void visitAINVOKE(byte op,
jq_Method f)
- Overrides:
visitAINVOKE
in class StackDepthVisitor
visitVINVOKE
public void visitVINVOKE(byte op,
jq_Method f)
- Overrides:
visitVINVOKE
in class StackDepthVisitor
visitNEW
public void visitNEW(jq_Type f)
- Overrides:
visitNEW
in class StackDepthVisitor
visitNEWARRAY
public void visitNEWARRAY(jq_Array f)
- Overrides:
visitNEWARRAY
in class BytecodeVisitor
visitCHECKCAST
public void visitCHECKCAST(jq_Type f)
- Overrides:
visitCHECKCAST
in class BytecodeVisitor
visitATHROW
public void visitATHROW()
- Overrides:
visitATHROW
in class StackDepthVisitor
visitMONITOR
public void visitMONITOR(byte op)
- Overrides:
visitMONITOR
in class StackDepthVisitor
visitMULTINEWARRAY
public void visitMULTINEWARRAY(jq_Type f,
char dim)
- Overrides:
visitMULTINEWARRAY
in class StackDepthVisitor
visitPOP
public void visitPOP()
- Overrides:
visitPOP
in class StackDepthVisitor
visitPOP2
public void visitPOP2()
- Overrides:
visitPOP2
in class StackDepthVisitor
visitDUP
public void visitDUP()
- Overrides:
visitDUP
in class StackDepthVisitor
visitDUP_x1
public void visitDUP_x1()
- Overrides:
visitDUP_x1
in class StackDepthVisitor
visitDUP_x2
public void visitDUP_x2()
- Overrides:
visitDUP_x2
in class StackDepthVisitor
visitDUP2
public void visitDUP2()
- Overrides:
visitDUP2
in class StackDepthVisitor
visitDUP2_x1
public void visitDUP2_x1()
- Overrides:
visitDUP2_x1
in class StackDepthVisitor
visitDUP2_x2
public void visitDUP2_x2()
- Overrides:
visitDUP2_x2
in class StackDepthVisitor
visitSWAP
public void visitSWAP()
- Overrides:
visitSWAP
in class BytecodeVisitor
visitJSR
public void visitJSR(int target)
- Overrides:
visitJSR
in class StackDepthVisitor
visitRET
public void visitRET(int loc)
- Overrides:
visitRET
in class BytecodeVisitor
Copyright © 2001-2005 John Whaley. All Rights Reserved.