public class StrongLocalMustAliasAnalysis extends LocalMustAliasAnalysis
LocalMustAliasAnalysis#UNKNOWN. E.g.
assume the following example:
while(..) {
c = foo(); //(1)
c.doSomething(); //(2)
}
While it is certainly true that c at (2) must-alias c at (1) (they have the same value number), it is also true that in a
second iteration, c at (2) may not alias the previous c at (2).FlowAnalysis.Flow| Modifier and Type | Field and Description |
|---|---|
protected Set<Integer> |
invalidInstanceKeys |
container, localsAndFieldRefs, mergePointToValueToNumber, nextNumber, rhsToNumberfilterUnitToAfterFlow, unitToAfterFlowfilterUnitToBeforeFlow, graph, unitToBeforeFlow| Constructor and Description |
|---|
StrongLocalMustAliasAnalysis(UnitGraph g) |
| Modifier and Type | Method and Description |
|---|---|
String |
instanceKeyString(Local l,
Stmt s)
Returns a string (natural number) representation of the instance key associated with l at statement s or
null if there is no such key associated. |
boolean |
mustAlias(Local l1,
Stmt s1,
Local l2,
Stmt s2) |
copy, entryInitialFlow, flowThrough, hasInfoOn, merge, merge, newInitialFlow, parameterRefNumber, thisRefNumberdoAnalysis, isForwardgetFlow, getFlowAfter, getFlowBefore, omissiblemergeInto, treatTrapHandlersAsEntriespublic StrongLocalMustAliasAnalysis(UnitGraph g)
public boolean mustAlias(Local l1, Stmt s1, Local l2, Stmt s2)
mustAlias in class LocalMustAliasAnalysispublic String instanceKeyString(Local l, Stmt s)
null if there is no such key associated.instanceKeyString in class LocalMustAliasAnalysisl - any local of the associated methods - the statement at which to checkCopyright © 2020 Soot OSS. All rights reserved.