Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Compil3r.BytecodeAnalysis
Class LiveRefAnalysis.SecondPassVisitor  view LiveRefAnalysis.SecondPassVisitor download LiveRefAnalysis.SecondPassVisitor.java

java.lang.Object
  extended byCompil3r.BytecodeAnalysis.BytecodeVisitor
      extended byCompil3r.BytecodeAnalysis.LiveRefAnalysis.SecondPassVisitor
All Implemented Interfaces:
Clazz.jq_ClassFileConstants
Enclosing class:
LiveRefAnalysis

public class LiveRefAnalysis.SecondPassVisitor
extends BytecodeVisitor


Field Summary
private  Util.BitString bytecode_start
           
private  BasicBlock current_bb
           
private  LiveRefAnalysis.ExactState current_state
           
(package private)  boolean go_again
           
 
Fields inherited from class Compil3r.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, TRACE, UNOP_NEG, unopnames
 
Fields inherited from interface Clazz.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_PREPARING, STATE_SFINITIALIZED, STATE_SFINITIALIZING, STATE_UNLOADED, STATE_VERIFIED, 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
 
Constructor Summary
(package private) LiveRefAnalysis.SecondPassVisitor(Clazz.jq_Method method, Util.BitString bytecode_start)
           
 
Method Summary
private  boolean mergeStateWith(BasicBlock bb2)
           
 java.lang.String toString()
          Convert this Object to a human-readable String.
 void traverseBB(BasicBlock bb)
           
 void visitALOAD(int i)
           
 void visitASTORE(int i)
           
 void visitDLOAD(int i)
           
 void visitDSTORE(int i)
           
 void visitFLOAD(int i)
           
 void visitFSTORE(int i)
           
 void visitILOAD(int i)
           
 void visitISTORE(int i)
           
 void visitLLOAD(int i)
           
 void visitLSTORE(int i)
           
 void visitPEI()
           
 
Methods inherited from class Compil3r.BytecodeAnalysis.BytecodeVisitor
forwardTraversal, resolve, resolve, resolve, resolve, resolve, updateCPIndex, updateMemberReference, visitAALOAD, visitAASTORE, visitACONST, visitAGETFIELD, visitAGETSTATIC, visitAINVOKE, visitAPUTFIELD, visitAPUTSTATIC, visitARETURN, visitARRAYLENGTH, visitATHROW, visitBALOAD, visitBASTORE, visitBGETFIELD, visitBGETSTATIC, visitBPUTFIELD, visitBPUTSTATIC, visitBytecode, visitCALOAD, visitCASTORE, visitCGETFIELD, visitCGETSTATIC, visitCHECKCAST, visitCPUTFIELD, visitCPUTSTATIC, visitD2F, visitD2I, visitD2L, visitDALOAD, visitDASTORE, visitDBINOP, visitDCMP2, visitDCONST, visitDGETFIELD, visitDGETSTATIC, visitDINVOKE, visitDPUTFIELD, visitDPUTSTATIC, visitDRETURN, visitDUNOP, visitDUP_x1, visitDUP_x2, visitDUP, visitDUP2_x1, visitDUP2_x2, visitDUP2, visitF2D, visitF2I, visitF2L, visitFALOAD, visitFASTORE, visitFBINOP, visitFCMP2, visitFCONST, visitFGETFIELD, visitFGETSTATIC, visitFINVOKE, visitFPUTFIELD, visitFPUTSTATIC, visitFRETURN, visitFUNOP, visitGOTO, visitI2B, visitI2C, visitI2D, visitI2F, visitI2L, visitI2S, visitIALOAD, visitIASTORE, visitIBINOP, visitICONST, visitIF, visitIFCMP, visitIFREF, visitIFREFCMP, visitIGETFIELD, visitIGETSTATIC, visitIINC, visitIINVOKE, visitINSTANCEOF, visitIPUTFIELD, visitIPUTSTATIC, visitIRETURN, visitISHIFT, visitIUNOP, visitJSR, visitL2D, visitL2F, visitL2I, visitLALOAD, visitLASTORE, visitLBINOP, visitLCMP2, visitLCONST, visitLGETFIELD, visitLGETSTATIC, visitLINVOKE, visitLOOKUPSWITCH, visitLPUTFIELD, visitLPUTSTATIC, visitLRETURN, visitLSHIFT, visitLUNOP, visitMONITOR, visitMULTINEWARRAY, visitNEW, visitNEWARRAY, visitNOP, visitPOP, visitPOP2, visitRET, visitSALOAD, visitSASTORE, visitSGETFIELD, visitSGETSTATIC, visitSPUTFIELD, visitSPUTSTATIC, visitSWAP, visitTABLESWITCH, visitVINVOKE, visitVRETURN, visitZGETFIELD, visitZGETSTATIC, visitZPUTFIELD, visitZPUTSTATIC
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

bytecode_start

private Util.BitString bytecode_start

current_bb

private BasicBlock current_bb

current_state

private LiveRefAnalysis.ExactState current_state

go_again

boolean go_again
Constructor Detail

LiveRefAnalysis.SecondPassVisitor

LiveRefAnalysis.SecondPassVisitor(Clazz.jq_Method method,
                                  Util.BitString bytecode_start)
Method Detail

toString

public java.lang.String toString()
Description copied from class: java.lang.Object
Convert this Object to a human-readable String. There are no limits placed on how long this String should be or what it should contain. We suggest you make it as intuitive as possible to be able to place it into System.out.println() 55 and such.

It is typical, but not required, to ensure that this method never completes abruptly with a java.lang.RuntimeException.

This method will be called when performing string concatenation with this object. If the result is null, string concatenation will instead use "null".

The default implementation returns getClass().getName() + "@" + Integer.toHexString(hashCode()).


traverseBB

public void traverseBB(BasicBlock bb)

mergeStateWith

private boolean mergeStateWith(BasicBlock bb2)

visitPEI

public void visitPEI()
Overrides:
visitPEI in class BytecodeVisitor

visitILOAD

public void visitILOAD(int i)
Overrides:
visitILOAD in class BytecodeVisitor

visitLLOAD

public void visitLLOAD(int i)
Overrides:
visitLLOAD in class BytecodeVisitor

visitFLOAD

public void visitFLOAD(int i)
Overrides:
visitFLOAD in class BytecodeVisitor

visitDLOAD

public void visitDLOAD(int i)
Overrides:
visitDLOAD in class BytecodeVisitor

visitALOAD

public void visitALOAD(int i)
Overrides:
visitALOAD in class BytecodeVisitor

visitISTORE

public void visitISTORE(int i)
Overrides:
visitISTORE in class BytecodeVisitor

visitLSTORE

public void visitLSTORE(int i)
Overrides:
visitLSTORE in class BytecodeVisitor

visitFSTORE

public void visitFSTORE(int i)
Overrides:
visitFSTORE in class BytecodeVisitor

visitDSTORE

public void visitDSTORE(int i)
Overrides:
visitDSTORE in class BytecodeVisitor

visitASTORE

public void visitASTORE(int i)
Overrides:
visitASTORE in class BytecodeVisitor