public class LValueAssignmentAndAliasCondenser.MutationRewriterSecondPass extends java.lang.Object implements LValueRewriter<Statement>
LValueRewriter.Util
Modifier and Type | Field and Description |
---|---|
private java.util.Set<SSAIdent> |
fixed |
private java.util.Map<LValueAssignmentAndAliasCondenser.VersionedLValue,StatementContainer> |
mutableReplacable |
Modifier | Constructor and Description |
---|---|
private |
MutationRewriterSecondPass(java.util.Map<LValueAssignmentAndAliasCondenser.VersionedLValue,StatementContainer> mutableReplacable) |
private |
MutationRewriterSecondPass(java.util.Map<LValueAssignmentAndAliasCondenser.VersionedLValue,StatementContainer> mutableReplacable,
java.util.Set<SSAIdent> fixed) |
Modifier and Type | Method and Description |
---|---|
void |
checkPostConditions(LValue lValue,
Expression rValue) |
boolean |
explicitlyReplaceThisLValue(LValue lValue) |
Expression |
getLValueReplacement(LValue lValue,
SSAIdentifiers<LValue> ssaIdentifiers,
StatementContainer<Statement> statementContainer) |
LValueRewriter |
getWithFixed(java.util.Set<SSAIdent> fixed) |
LValueRewriter<Statement> |
keepConstant(java.util.Collection<LValue> usedLValues) |
boolean |
needLR() |
private final java.util.Set<SSAIdent> fixed
private final java.util.Map<LValueAssignmentAndAliasCondenser.VersionedLValue,StatementContainer> mutableReplacable
private MutationRewriterSecondPass(java.util.Map<LValueAssignmentAndAliasCondenser.VersionedLValue,StatementContainer> mutableReplacable)
private MutationRewriterSecondPass(java.util.Map<LValueAssignmentAndAliasCondenser.VersionedLValue,StatementContainer> mutableReplacable, java.util.Set<SSAIdent> fixed)
public boolean needLR()
needLR
in interface LValueRewriter<Statement>
public LValueRewriter<Statement> keepConstant(java.util.Collection<LValue> usedLValues)
keepConstant
in interface LValueRewriter<Statement>
public Expression getLValueReplacement(LValue lValue, SSAIdentifiers<LValue> ssaIdentifiers, StatementContainer<Statement> statementContainer)
getLValueReplacement
in interface LValueRewriter<Statement>
public LValueRewriter getWithFixed(java.util.Set<SSAIdent> fixed)
getWithFixed
in interface LValueRewriter<Statement>
public boolean explicitlyReplaceThisLValue(LValue lValue)
explicitlyReplaceThisLValue
in interface LValueRewriter<Statement>
public void checkPostConditions(LValue lValue, Expression rValue)
checkPostConditions
in interface LValueRewriter<Statement>