Package soot.jimple.toolkits.thread.mhp
Class SynchObliviousMhpAnalysis
- java.lang.Object
-
- soot.jimple.toolkits.thread.mhp.SynchObliviousMhpAnalysis
-
- Direct Known Subclasses:
UnsynchronizedMhpAnalysis
public class SynchObliviousMhpAnalysis extends Object implements MhpTester, Runnable
UnsynchronizedMhpAnalysis written by Richard L. Halpert 2006-12-09 Calculates May-Happen-in-Parallel (MHP) information as if in the absence of synchronization. Any synchronization statements (synchronized, wait, notify, etc.) are ignored. If the program has no synchronization, then this actually generates correct MHP. This is useful if you are trying to generate (replacement) synchronization. It is also useful if an approximation is acceptable, because it runs much faster than a synch-aware MHP analysis. This analysis uses may-alias information to determine the types of threads launched and the call graph to determine which methods they may call. This analysis uses a run-once/run-one-at-a-time/run-many classification to determine if a thread may be run in parallel with itself.
-
-
Constructor Summary
Constructors Constructor Description SynchObliviousMhpAnalysis()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidbuildThreadList()List<SootClass>getThreadClassList()List<AbstractRuntimeThread>getThreads()booleanmayHappenInParallel(SootMethod m1, SootMethod m2)booleanmayHappenInParallel(SootMethod m1, Unit u1, SootMethod m2, Unit u2)voidprintMhpSummary()voidrun()
-
-
-
Method Detail
-
buildThreadList
protected void buildThreadList()
-
mayHappenInParallel
public boolean mayHappenInParallel(SootMethod m1, Unit u1, SootMethod m2, Unit u2)
- Specified by:
mayHappenInParallelin interfaceMhpTester
-
mayHappenInParallel
public boolean mayHappenInParallel(SootMethod m1, SootMethod m2)
- Specified by:
mayHappenInParallelin interfaceMhpTester
-
printMhpSummary
public void printMhpSummary()
- Specified by:
printMhpSummaryin interfaceMhpTester
-
getThreads
public List<AbstractRuntimeThread> getThreads()
- Specified by:
getThreadsin interfaceMhpTester
-
-