public class BackwardsInterproceduralCFG extends java.lang.Object implements BiDiInterproceduralCFG<Unit,SootMethod>
JimpleBasedInterproceduralCFG but based on inverted unit graphs.
This should be used for backward analyses.| Modifier and Type | Field and Description |
|---|---|
protected BiDiInterproceduralCFG<Unit,SootMethod> |
delegate |
| Constructor and Description |
|---|
BackwardsInterproceduralCFG(BiDiInterproceduralCFG<Unit,SootMethod> fwICFG) |
| Modifier and Type | Method and Description |
|---|---|
java.util.Set<Unit> |
allNonCallEndNodes() |
java.util.Set<Unit> |
allNonCallStartNodes() |
java.util.Collection<SootMethod> |
getCalleesOfCallAt(Unit n) |
java.util.Collection<Unit> |
getCallersOf(SootMethod m) |
java.util.Set<Unit> |
getCallsFromWithin(SootMethod m) |
java.util.Collection<Unit> |
getEndPointsOf(SootMethod m) |
SootMethod |
getMethodOf(Unit n) |
DirectedGraph<Unit> |
getOrCreateUnitGraph(SootMethod m) |
java.util.List<Value> |
getParameterRefs(SootMethod m) |
java.util.List<Unit> |
getPredsOf(Unit u) |
java.util.List<Unit> |
getPredsOfCallAt(Unit u) |
java.util.List<Unit> |
getReturnSitesOfCallAt(Unit n) |
java.util.Collection<Unit> |
getStartPointsOf(SootMethod m) |
java.util.List<Unit> |
getSuccsOf(Unit n) |
boolean |
isBranchTarget(Unit stmt,
Unit succ) |
boolean |
isCallStmt(Unit stmt) |
boolean |
isExitStmt(Unit stmt) |
boolean |
isFallThroughSuccessor(Unit stmt,
Unit succ) |
boolean |
isReturnSite(Unit n)
Gets whether the given statement is a return site of at least one call
|
boolean |
isStartPoint(Unit stmt) |
protected final BiDiInterproceduralCFG<Unit,SootMethod> delegate
public BackwardsInterproceduralCFG(BiDiInterproceduralCFG<Unit,SootMethod> fwICFG)
public java.util.List<Unit> getSuccsOf(Unit n)
getSuccsOf in interface heros.InterproceduralCFG<Unit,SootMethod>public java.util.Collection<Unit> getStartPointsOf(SootMethod m)
getStartPointsOf in interface heros.InterproceduralCFG<Unit,SootMethod>public java.util.List<Unit> getReturnSitesOfCallAt(Unit n)
getReturnSitesOfCallAt in interface heros.InterproceduralCFG<Unit,SootMethod>public boolean isExitStmt(Unit stmt)
isExitStmt in interface heros.InterproceduralCFG<Unit,SootMethod>public boolean isStartPoint(Unit stmt)
isStartPoint in interface heros.InterproceduralCFG<Unit,SootMethod>public java.util.Set<Unit> allNonCallStartNodes()
allNonCallStartNodes in interface heros.InterproceduralCFG<Unit,SootMethod>public java.util.List<Unit> getPredsOf(Unit u)
getPredsOf in interface heros.InterproceduralCFG<Unit,SootMethod>getPredsOf in interface BiDiInterproceduralCFG<Unit,SootMethod>public java.util.Collection<Unit> getEndPointsOf(SootMethod m)
getEndPointsOf in interface BiDiInterproceduralCFG<Unit,SootMethod>public java.util.List<Unit> getPredsOfCallAt(Unit u)
getPredsOfCallAt in interface BiDiInterproceduralCFG<Unit,SootMethod>public java.util.Set<Unit> allNonCallEndNodes()
allNonCallEndNodes in interface BiDiInterproceduralCFG<Unit,SootMethod>public SootMethod getMethodOf(Unit n)
getMethodOf in interface heros.InterproceduralCFG<Unit,SootMethod>public java.util.Collection<SootMethod> getCalleesOfCallAt(Unit n)
getCalleesOfCallAt in interface heros.InterproceduralCFG<Unit,SootMethod>public java.util.Collection<Unit> getCallersOf(SootMethod m)
getCallersOf in interface heros.InterproceduralCFG<Unit,SootMethod>public java.util.Set<Unit> getCallsFromWithin(SootMethod m)
getCallsFromWithin in interface heros.InterproceduralCFG<Unit,SootMethod>public boolean isCallStmt(Unit stmt)
isCallStmt in interface heros.InterproceduralCFG<Unit,SootMethod>public DirectedGraph<Unit> getOrCreateUnitGraph(SootMethod m)
getOrCreateUnitGraph in interface BiDiInterproceduralCFG<Unit,SootMethod>public java.util.List<Value> getParameterRefs(SootMethod m)
getParameterRefs in interface BiDiInterproceduralCFG<Unit,SootMethod>public boolean isFallThroughSuccessor(Unit stmt, Unit succ)
isFallThroughSuccessor in interface heros.InterproceduralCFG<Unit,SootMethod>public boolean isBranchTarget(Unit stmt, Unit succ)
isBranchTarget in interface heros.InterproceduralCFG<Unit,SootMethod>public boolean isReturnSite(Unit n)
BiDiInterproceduralCFGisReturnSite in interface BiDiInterproceduralCFG<Unit,SootMethod>n - The statement to check