|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--soot.shimple.Shimple
Contains the constructors for the components of the Shimple (SSA Jimple) grammar. Methods are available to construct Shimple from Jimple/Shimple, create Phi nodes, and converting back from Shimple to Jimple.
This should normally be used in conjunction with the constructor methods from soot.jimple.Jimple.
Miscellaneous utility functions are also available in this class.
Jimple
,
Efficiently
Computing Static Single Assignment Form and the Control Dependence
GraphField Summary | |
static java.lang.String |
PHASE
|
static java.lang.String |
PHI
|
Constructor Summary | |
Shimple(Singletons.Global g)
|
Method Summary | |
static Local |
getLhsLocal(Unit unit)
Misc utility function. |
static PhiExpr |
getPhiExpr(Unit unit)
Misc utility function. |
static boolean |
isPhiNode(Unit unit)
Misc utility function. |
ShimpleBody |
newBody(Body b)
Returns a ShimpleBody constructed from b, using default phase options. |
ShimpleBody |
newBody(Body b,
java.util.Map options)
Returns a ShimpleBody constructed from b, using provided option Map. |
ShimpleBody |
newBody(SootMethod m)
Returns an empty ShimpleBody associated with method m, using default phase options. |
ShimpleBody |
newBody(SootMethod m,
java.util.Map options)
Returns an empty ShimpleBody associated with method m, using provided option map. |
JimpleBody |
newJimpleBody(ShimpleBody body)
Constructs a JimpleBody from a ShimpleBody. |
PhiExpr |
newPhiExpr(java.util.List args,
java.util.List preds)
Create a PhiExpr with the provided list of Values (Locals or Constants) and the corresponding control flow predecessor Blocks. |
PhiExpr |
newPhiExpr(Local leftLocal,
java.util.List preds)
Create a trivial PhiExpr, where preds are an ordered list of the control predecessor Blocks of the Phi expression. |
static void |
redirectPointers(Unit oldLocation,
Unit newLocation)
Redirects PhiExpr pointers to the given Unit to the new Unit. |
static void |
redirectToPreds(Chain units,
Unit remove)
If you are removing a Unit from a Unit chain which contains PhiExpr's, you might want to call this utility function in order to update any PhiExpr pointers to the Unit to point to the Unit's predecessor(s). |
static Shimple |
v()
|
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
Field Detail |
public static final java.lang.String PHI
public static final java.lang.String PHASE
Constructor Detail |
public Shimple(Singletons.Global g)
Method Detail |
public static Shimple v()
public ShimpleBody newBody(SootMethod m)
public ShimpleBody newBody(SootMethod m, java.util.Map options)
public ShimpleBody newBody(Body b)
public ShimpleBody newBody(Body b, java.util.Map options)
public PhiExpr newPhiExpr(Local leftLocal, java.util.List preds)
public PhiExpr newPhiExpr(java.util.List args, java.util.List preds)
public JimpleBody newJimpleBody(ShimpleBody body)
ShimpleOptions
public static boolean isPhiNode(Unit unit)
public static PhiExpr getPhiExpr(Unit unit)
public static Local getLhsLocal(Unit unit)
public static void redirectToPreds(Chain units, Unit remove)
Normally you should not have to call this function directly, since patching is taken care of Shimple's internal implementation of PatchingChain.
public static void redirectPointers(Unit oldLocation, Unit newLocation)
Normally you should not have to call this function directly, since patching is taken care of Shimple's internal implementation of PatchingChain.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |