soot.jimple.toolkits.scalar
Class CopyPropagator

java.lang.Object
  |
  +--soot.Transformer
        |
        +--soot.BodyTransformer
              |
              +--soot.jimple.toolkits.scalar.CopyPropagator

public class CopyPropagator
extends BodyTransformer


Method Summary
 java.lang.String getDeclaredOptions()
           
protected  void internalTransform(Body b, java.lang.String phaseName, java.util.Map options)
          Cascaded copy propagator.
static CopyPropagator v()
           
 
Methods inherited from class soot.BodyTransformer
getDefaultOptions, transform, transform, transform
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

v

public static CopyPropagator v()

getDeclaredOptions

public java.lang.String getDeclaredOptions()
Overrides:
getDeclaredOptions in class BodyTransformer

internalTransform

protected void internalTransform(Body b,
                                 java.lang.String phaseName,
                                 java.util.Map options)
Cascaded copy propagator. If it encounters situations of the form: A: a = ...; B: ... x = a; C:... use (x); where a has only one definition, and x has only one definition (B), then it can propagate immediately without checking between B and C for redefinitions of a (namely) A because they cannot occur. In this case the propagator is global. Otherwise, if a has multiple definitions then it only checks for redefinitions of Propagates constants and copies in extended basic blocks. Does not propagate stack locals when the "only-regular-locals" option is true.
Overrides:
internalTransform in class BodyTransformer
Following copied from class: soot.BodyTransformer
Parameters:
b - the body on which to apply the transformation
phaseName - the phasename for this transform; not typically used by implementations.
options - the actual computed options; a combination of default options and Scene specified options.