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 TypeClassDescriptionclassprivate static classprivate static classclassclassprivate static final classNested classes/interfaces inherited from interface 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 TypeMethodDescriptionvoidcheckPostConditions(LValue lValue, Expression rValue) voidcollect(StackSSALabel lValue, StatementContainer<Statement> statementContainer, Expression value) voidcollectLocalVariableAssignment(LocalVariable localVariable, StatementContainer<Statement> statementContainer, Expression value) voidcollectMultiUse(StackSSALabel lValue, StatementContainer<Statement> statementContainer, Expression value) voidcollectMutatedLValue(LValue lValue, StatementContainer<Statement> statementContainer, Expression value) booleanexplicitlyReplaceThisLValue(LValue lValue) getLValueReplacement(LValue lValue, SSAIdentifiers<LValue> ssaIdentifiers, StatementContainer<Statement> lvSc) getWithFixed(Set<SSAIdent> fixed) private booleanisSimple(Expression res) private booleanjumpsMethods(Op03SimpleStatement lvSc, Op03SimpleStatement statementContainer) keepConstant(Collection<LValue> usedLValues) booleanneedLR()voidreset()
-
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:
collectin interfaceLValueAssignmentCollector<Statement>
-
collectMultiUse
public void collectMultiUse(StackSSALabel lValue, StatementContainer<Statement> statementContainer, Expression value) - Specified by:
collectMultiUsein interfaceLValueAssignmentCollector<Statement>
-
collectMutatedLValue
public void collectMutatedLValue(LValue lValue, StatementContainer<Statement> statementContainer, Expression value) - Specified by:
collectMutatedLValuein interfaceLValueAssignmentCollector<Statement>
-
collectLocalVariableAssignment
public void collectLocalVariableAssignment(LocalVariable localVariable, StatementContainer<Statement> statementContainer, Expression value) - Specified by:
collectLocalVariableAssignmentin interfaceLValueAssignmentCollector<Statement>
-
findAssignees
-
getWithFixed
- Specified by:
getWithFixedin interfaceLValueRewriter<Statement>
-
keepConstant
- Specified by:
keepConstantin interfaceLValueRewriter<Statement>
-
reset
public void reset() -
needLR
public boolean needLR()- Specified by:
needLRin interfaceLValueRewriter<Statement>
-
getLValueReplacement
public Expression getLValueReplacement(LValue lValue, SSAIdentifiers<LValue> ssaIdentifiers, StatementContainer<Statement> lvSc) - Specified by:
getLValueReplacementin interfaceLValueRewriter<Statement>
-
isSimple
-
jumpsMethods
-
explicitlyReplaceThisLValue
- Specified by:
explicitlyReplaceThisLValuein interfaceLValueRewriter<Statement>
-
checkPostConditions
- Specified by:
checkPostConditionsin interfaceLValueRewriter<Statement>
-
getAliasRewriter
-
getMutationRewriterFirstPass
-