Public Methods | |
CFG (method_info m) | |
boolean | jimplify (cp_info constant_pool[], int this_class, JimpleBody listBody) |
Instruction | reconstructInstructions () |
Private Methods | |
void | adjustExceptionTable () |
void | arrangeclonedBBinorder () |
void | buildCFG () |
void | buildJsrRetPairs () |
Type | byteCodeTypeOf (Type type) |
BasicBlock | cloneJsrTargetBB (BasicBlock lowestBB, BasicBlock highestBB) throws java.lang.CloneNotSupportedException |
void | confirmRefType (Type actualType) |
void | confirmType (Type actualType, Type requiredType) |
void | fixupJsrRets () |
void | fixupTargets () |
void | generateJimple (Instruction ins, TypeStack typeStack, TypeStack postTypeStack, cp_info constant_pool[], List statements, BasicBlock basicBlock) |
void | generateJimpleForCPEntry (cp_info constant_pool[], int i, TypeStack typeStack, TypeStack postTypeStack, SootMethod jmethod, List statements) |
String | getClassName (cp_info[] constant_pool, int index) |
BasicBlock | getEndOfBBList () |
Type | jimpleReturnTypeOfInterfaceMethodRef (SootClassManager cm, cp_info[] constant_pool, int index) |
Type | jimpleReturnTypeOfMethodRef (SootClassManager cm, cp_info[] constant_pool, int index) |
void | jimpleTargetFixup () |
Type | jimpleTypeOfAtype (int atype) |
Type | jimpleTypeOfFieldInFieldRef (SootClassManager cm, cp_info[] constant_pool, int index) |
void | jimplify (cp_info constant_pool[], int this_class) |
void | JsrEliminate () |
TypeStack | popSafe (TypeStack typeStack, Type requiredType) |
TypeStack | popSafeArrayType (TypeStack typeStack) |
TypeStack | popSafeRefType (TypeStack typeStack) |
void | prepareForGC () |
OutFlow | processCPEntry (cp_info constant_pool[], int i, TypeStack typeStack, SootMethod jmethod) |
OutFlow | processFlow (Instruction ins, TypeStack typeStack, cp_info[] constant_pool) |
void | processTargetFixup (BBQ bbq) |
void | setHighestBlock (BasicBlock highestBB) throws java.lang.CloneNotSupportedException |
TypeStack | smartPush (TypeStack typeStack, Type type) |
int | typeSize (Type type) |
Static Private Methods | |
Instruction | buildBasicBlock (Instruction head) |
Private Attributes | |
method_info | method |
BasicBlock | cfg |
java util Hashtable | h |
int | bbcount |
StmtList | stmtList |
JimpleBody | listBody |
Map | instructionToFirstStmt |
Map | instructionToLastStmt |
SootMethod | jmethod |
SootClassManager | cm |
Map | instructionToNext |
Instruction | firstInstruction |
short | wide |
HashMap | JsrToNext = new HashMap() |
HashMap | RetToJsr = new HashMap() |
HashMap | RetToJsrBB = new HashMap() |
HashMap | RetToOrigJsr = new HashMap() |
HashMap | RetToOrigJsrBB = new HashMap() |
HashMap | RetToOrigRetBB = new HashMap() |
HashMap | RetToRetBB = new HashMap() |
HashMap | RetToJsrSucc = new HashMap() |
HashMap | RetToOrigJsrSucc = new HashMap() |
BasicBlock | endofBBList |
BasicBlock | highestBlock |
HashMap | clonedstmtsHT = new HashMap() |
Map | clonedHT = new HashMap() |
BasicBlock | orighighestBlock |
HashMap | replacedinstructionHT = new HashMap(6, 0.7f) |
Definition at line 160 of file CFG.java.
|
Constructs a new control flow graph for the given method.
|
|
After the initial jimple construction, a second pass is made to fix up missing Stmt targets for
Definition at line 2988 of file CFG.java. Referenced by jimplify().
|
|
Main entry point for converting list of Instructions to Jimple statements; performs flow analysis, constructs Jimple statements, and fixes jumps.
|
|
Main entry point for converting list of Instructions to Jimple statements; performs flow analysis, constructs Jimple statements, and fixes jumps.
Definition at line 3088 of file CFG.java. Referenced by jimplify().
|
|
Runs through the given bbq contents performing the target fix-up pass; Requires all reachable blocks to have their done flags set to true, and this resets them all back to false;
Definition at line 4925 of file CFG.java. Referenced by jimpleTargetFixup().
|
|
Reconstructs the instruction stream by appending the Instruction lists associated with each basic block. Note that this joins up the basic block Instruction lists, and so they will no longer end with null after this.
|
|
Ordered list of BasicBlocks comprising the code of this CFG.
|
|
For associating Instruction leaders with basic blocks. |
|
Method for which this is a control flow graph.
|