public class LValueAssignmentAndAliasCondenser.AliasRewriter extends java.lang.Object implements LValueRewriter<Statement>
LValueRewriter.Util| Modifier and Type | Field and Description |
|---|---|
private java.util.Map<StackSSALabel,java.util.List<LValueAssignmentAndAliasCondenser.LValueStatementContainer>> |
possibleAliases |
private java.util.Map<StackSSALabel,java.util.List<StatementContainer<Statement>>> |
usages |
| Constructor and Description |
|---|
AliasRewriter() |
| Modifier and Type | Method and Description |
|---|---|
void |
checkPostConditions(LValue lValue,
Expression rValue) |
boolean |
explicitlyReplaceThisLValue(LValue lValue) |
private LValue |
getAlias(StackSSALabel stackSSALabel,
LValueAssignmentAndAliasCondenser.ExpressionStatementPair target) |
Expression |
getLValueReplacement(LValue lValue,
SSAIdentifiers<LValue> ssaIdentifiers,
StatementContainer<Statement> statementContainer) |
LValueRewriter |
getWithFixed(java.util.Set<SSAIdent> fixed) |
void |
inferAliases() |
LValueRewriter<Statement> |
keepConstant(java.util.Collection<LValue> usedLValues) |
boolean |
needLR() |
private final java.util.Map<StackSSALabel,java.util.List<StatementContainer<Statement>>> usages
private final java.util.Map<StackSSALabel,java.util.List<LValueAssignmentAndAliasCondenser.LValueStatementContainer>> possibleAliases
public LValueRewriter getWithFixed(java.util.Set<SSAIdent> fixed)
getWithFixed in interface LValueRewriter<Statement>public LValueRewriter<Statement> keepConstant(java.util.Collection<LValue> usedLValues)
keepConstant in interface LValueRewriter<Statement>public boolean needLR()
needLR in interface LValueRewriter<Statement>public Expression getLValueReplacement(LValue lValue, SSAIdentifiers<LValue> ssaIdentifiers, StatementContainer<Statement> statementContainer)
getLValueReplacement in interface LValueRewriter<Statement>private LValue getAlias(StackSSALabel stackSSALabel, LValueAssignmentAndAliasCondenser.ExpressionStatementPair target)
public void inferAliases()
public boolean explicitlyReplaceThisLValue(LValue lValue)
explicitlyReplaceThisLValue in interface LValueRewriter<Statement>public void checkPostConditions(LValue lValue, Expression rValue)
checkPostConditions in interface LValueRewriter<Statement>