Class LValueAssignmentAndAliasCondenser
java.lang.Object
org.benf.cfr.reader.bytecode.analysis.parse.utils.LValueAssignmentAndAliasCondenser
- All Implemented Interfaces:
LValueAssignmentCollector<Statement>
,LValueRewriter<Statement>
public class LValueAssignmentAndAliasCondenser
extends Object
implements LValueRewriter<Statement>, LValueAssignmentCollector<Statement>
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionclass
private static class
private static class
class
class
private static final class
Nested classes/interfaces inherited from interface org.benf.cfr.reader.bytecode.analysis.parse.utils.LValueRewriter
LValueRewriter.Util
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Map<StackSSALabel,
Expression> private final Set<StackSSALabel>
private final Map<Expression,
Expression> private final Map<LValueAssignmentAndAliasCondenser.VersionedLValue,
LValueAssignmentAndAliasCondenser.ExpressionStatementPair> -
Constructor Summary
ConstructorsConstructorDescriptionLValueAssignmentAndAliasCondenser
(LValueAssignmentAndAliasCondenser other, Set<LValue> keepConstant) -
Method Summary
Modifier and TypeMethodDescriptionvoid
checkPostConditions
(LValue lValue, Expression rValue) void
collect
(StackSSALabel lValue, StatementContainer<Statement> statementContainer, Expression value) void
collectLocalVariableAssignment
(LocalVariable localVariable, StatementContainer<Statement> statementContainer, Expression value) void
collectMultiUse
(StackSSALabel lValue, StatementContainer<Statement> statementContainer, Expression value) void
collectMutatedLValue
(LValue lValue, StatementContainer<Statement> statementContainer, Expression value) boolean
explicitlyReplaceThisLValue
(LValue lValue) getLValueReplacement
(LValue lValue, SSAIdentifiers<LValue> ssaIdentifiers, StatementContainer<Statement> lvSc) getWithFixed
(Set<SSAIdent> fixed) private boolean
isSimple
(Expression res) private boolean
jumpsMethods
(Op03SimpleStatement lvSc, Op03SimpleStatement statementContainer) keepConstant
(Collection<LValue> usedLValues) boolean
needLR()
void
reset()
-
Field Details
-
found
-
blacklisted
-
keepConstant
-
aliasReplacements
-
multiFound
private final Map<StackSSALabel,LValueAssignmentAndAliasCondenser.ExpressionStatementPair> multiFound -
mutableFound
private final Map<LValueAssignmentAndAliasCondenser.VersionedLValue,LValueAssignmentAndAliasCondenser.ExpressionStatementPair> mutableFound -
cache
-
emptyFixed
-
-
Constructor Details
-
LValueAssignmentAndAliasCondenser
public LValueAssignmentAndAliasCondenser() -
LValueAssignmentAndAliasCondenser
public LValueAssignmentAndAliasCondenser(LValueAssignmentAndAliasCondenser other, Set<LValue> keepConstant)
-
-
Method Details
-
collect
public void collect(StackSSALabel lValue, StatementContainer<Statement> statementContainer, Expression value) - Specified by:
collect
in interfaceLValueAssignmentCollector<Statement>
-
collectMultiUse
public void collectMultiUse(StackSSALabel lValue, StatementContainer<Statement> statementContainer, Expression value) - Specified by:
collectMultiUse
in interfaceLValueAssignmentCollector<Statement>
-
collectMutatedLValue
public void collectMutatedLValue(LValue lValue, StatementContainer<Statement> statementContainer, Expression value) - Specified by:
collectMutatedLValue
in interfaceLValueAssignmentCollector<Statement>
-
collectLocalVariableAssignment
public void collectLocalVariableAssignment(LocalVariable localVariable, StatementContainer<Statement> statementContainer, Expression value) - Specified by:
collectLocalVariableAssignment
in interfaceLValueAssignmentCollector<Statement>
-
findAssignees
-
getWithFixed
- Specified by:
getWithFixed
in interfaceLValueRewriter<Statement>
-
keepConstant
- Specified by:
keepConstant
in interfaceLValueRewriter<Statement>
-
reset
public void reset() -
needLR
public boolean needLR()- Specified by:
needLR
in interfaceLValueRewriter<Statement>
-
getLValueReplacement
public Expression getLValueReplacement(LValue lValue, SSAIdentifiers<LValue> ssaIdentifiers, StatementContainer<Statement> lvSc) - Specified by:
getLValueReplacement
in interfaceLValueRewriter<Statement>
-
isSimple
-
jumpsMethods
-
explicitlyReplaceThisLValue
- Specified by:
explicitlyReplaceThisLValue
in interfaceLValueRewriter<Statement>
-
checkPostConditions
- Specified by:
checkPostConditions
in interfaceLValueRewriter<Statement>
-
getAliasRewriter
-
getMutationRewriterFirstPass
-