soot.jimple.toolkits.scalar
Class CommonSubexpressionEliminator
java.lang.Object
soot.Transformer
soot.BodyTransformer
soot.jimple.toolkits.scalar.CommonSubexpressionEliminator
public class CommonSubexpressionEliminator
- extends BodyTransformer
Runs an available expressions analysis on a body, then
eliminates common subexpressions.
This implementation is especially slow, as it does not
run on basic blocks. A better implementation (which wouldn't
catch every single cse, but would get most) would use
basic blocks instead.
It is also slow because the flow universe is explicitly created; it
need not be. A better implementation would implicitly compute the
kill sets at every node.
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
CommonSubexpressionEliminator
public CommonSubexpressionEliminator(Singletons.Global g)
v
public static CommonSubexpressionEliminator v()
internalTransform
protected void internalTransform(Body b,
String phaseName,
Map options)
- Common subexpression eliminator.
- Specified by:
internalTransform
in 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.