public class CopyPropagator
- extends BodyTransformer
|Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
public CopyPropagator(Singletons.Global g)
public static CopyPropagator v()
protected void internalTransform(Body b,
- 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.
- Specified by:
internalTransform in class
b - the body on which to apply the transformation
phaseName - the phasename for this transform; not typically used by implementations.
opts - the actual computed options; a combination of default options and Scene specified options.