internalTransform
protected void internalTransform(Body b,
java.lang.String phaseName,
java.util.Map<java.lang.String,java.lang.String> opts)
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 BodyTransformer
- Parameters:
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.