Package soot.toolkits.scalar
Class LocalPacker
- java.lang.Object
-
- soot.Transformer
-
- soot.BodyTransformer
-
- soot.toolkits.scalar.LocalPacker
-
public class LocalPacker extends BodyTransformer
A BodyTransformer that attempts 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 no further conflicting uses ofiandj. Note: LocalSplitter corresponds to the inverse transformation.- See Also:
BodyTransformer,Body,LocalSplitter
-
-
Constructor Summary
Constructors Constructor Description LocalPacker(Singletons.Global g)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidinternalTransform(Body body, String phaseName, Map<String,String> options)This method is called to perform the transformation itself.static LocalPackerv()-
Methods inherited from class soot.BodyTransformer
transform, transform, transform
-
-
-
-
Constructor Detail
-
LocalPacker
public LocalPacker(Singletons.Global g)
-
-
Method Detail
-
v
public static LocalPacker v()
-
internalTransform
protected void internalTransform(Body body, String phaseName, Map<String,String> options)
Description copied from class:BodyTransformerThis 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.- Specified by:
internalTransformin classBodyTransformer- Parameters:
body- 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.
-
-