soot.toolkits.scalar
Class LocalPacker
java.lang.Object
|
+--soot.Transformer
|
+--soot.BodyTransformer
|
+--soot.toolkits.scalar.LocalPacker
- public class LocalPacker
- extends BodyTransformer
A BodyTransformer that attemps to minimize the number of local variables used in
Body by 'reusing' them when possible. Implemented as a singleton.
For example the code:
for(int i; i < k; i++);
for(int j; j < k; j++);
would be transformed into:
for(int i; i < k; i++);
for(int i; i < k; i++);
assuming to further conflicting uses of i and j.
Note: LocalSplitter is corresponds to the inverse transformation.
- See Also:
BodyTransformer
,
Body
,
LocalSplitter
Method Summary |
protected void |
internalTransform(Body body,
java.lang.String phaseName,
java.util.Map options)
This method is called to perform the transformation itself. |
static LocalPacker |
v()
|
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
LocalPacker
public LocalPacker(Singletons.Global g)
v
public static LocalPacker v()
internalTransform
protected void internalTransform(Body body,
java.lang.String phaseName,
java.util.Map options)
- Description copied from class: BodyTransformer
- This method is called to perform the transformation itself. It is declared
abstract; subclasses must implement this method by making it the entry point
to their actual Body transformation.
- Overrides:
- internalTransform in class BodyTransformer
- Tags copied from class: BodyTransformer
- Parameters:
b
- the body on which to apply the transformationphaseName
- the phasename for this transform; not typically used by implementations.options
- the actual computed options; a combination of default options and Scene specified options.