public class SConstantPropagatorAndFolder extends BodyTransformer
Modifier and Type | Field and Description |
---|---|
protected boolean |
debug |
protected ShimpleBody |
sb |
Constructor and Description |
---|
SConstantPropagatorAndFolder(Singletons.Global g) |
Modifier and Type | Method and Description |
---|---|
protected void |
internalTransform(Body b,
java.lang.String phaseName,
java.util.Map<java.lang.String,java.lang.String> options)
This method is called to perform the transformation itself.
|
protected void |
propagateResults(java.util.Map<Local,Constant> localToConstant)
Propagates constants to the definition and uses of the relevant
locals given a mapping.
|
protected void |
removeStmts(java.util.List<IfStmt> deadStmts)
Removes the given list of fall through IfStmts from the body.
|
protected void |
replaceStmts(java.util.Map<Stmt,GotoStmt> stmtsToReplace)
Replaces conditional branches by unconditional branches as
given by the mapping.
|
static SConstantPropagatorAndFolder |
v() |
transform, transform, transform
protected ShimpleBody sb
protected boolean debug
public SConstantPropagatorAndFolder(Singletons.Global g)
public static SConstantPropagatorAndFolder v()
protected void internalTransform(Body b, java.lang.String phaseName, java.util.Map<java.lang.String,java.lang.String> options)
BodyTransformer
internalTransform
in class BodyTransformer
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.protected void propagateResults(java.util.Map<Local,Constant> localToConstant)
protected void removeStmts(java.util.List<IfStmt> deadStmts)