soot.jimple.toolkits.thread.synchronization
Class LockAllocator

java.lang.Object
  extended by soot.Transformer
      extended by soot.SceneTransformer
          extended by soot.jimple.toolkits.thread.synchronization.LockAllocator

public class LockAllocator
extends SceneTransformer


Constructor Summary
LockAllocator(Singletons.Global g)
           
 
Method Summary
 void assignNamesToTransactions(List<soot.jimple.toolkits.thread.synchronization.CriticalSection> AllTransactions)
           
protected  void findLockableReferences(List<soot.jimple.toolkits.thread.synchronization.CriticalSection> AllTransactions, PointsToAnalysis pta, CriticalSectionAwareSideEffectAnalysis tasea, Map<Value,Integer> lockToLockNum, List<PointsToSetInternal> lockPTSets)
           
 List<soot.jimple.toolkits.thread.synchronization.CriticalSection> getCriticalSections()
           
 DirectedGraph getDeadlockGraph()
           
 CriticalSectionInterferenceGraph getInterferenceGraph()
           
protected  void internalTransform(String phaseName, Map options)
          Performs the transformation on the Scene, under the given phaseName and with the given Options.
static String locksetToLockNumString(List<EquivalentValue> lockset, Map<Value,Integer> lockToLockNum)
           
 void printGraph(Collection<soot.jimple.toolkits.thread.synchronization.CriticalSection> AllTransactions, CriticalSectionInterferenceGraph ig, Map<Value,Integer> lockToLockNum)
           
 void printGroups(Collection<soot.jimple.toolkits.thread.synchronization.CriticalSection> AllTransactions, CriticalSectionInterferenceGraph ig)
           
 void printTable(Collection<soot.jimple.toolkits.thread.synchronization.CriticalSection> AllTransactions, MhpTester mhp)
           
 void setFlagsForDynamicAllocations(CriticalSectionInterferenceGraph ig)
           
 void setFlagsForStaticAllocations(CriticalSectionInterferenceGraph ig)
           
static LockAllocator v()
           
 
Methods inherited from class soot.SceneTransformer
transform, transform, transform
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LockAllocator

public LockAllocator(Singletons.Global g)
Method Detail

v

public static LockAllocator v()

internalTransform

protected void internalTransform(String phaseName,
                                 Map options)
Description copied from class: SceneTransformer
Performs the transformation on the Scene, under the given phaseName and with the given Options.

Specified by:
internalTransform in class SceneTransformer

findLockableReferences

protected void findLockableReferences(List<soot.jimple.toolkits.thread.synchronization.CriticalSection> AllTransactions,
                                      PointsToAnalysis pta,
                                      CriticalSectionAwareSideEffectAnalysis tasea,
                                      Map<Value,Integer> lockToLockNum,
                                      List<PointsToSetInternal> lockPTSets)

setFlagsForDynamicAllocations

public void setFlagsForDynamicAllocations(CriticalSectionInterferenceGraph ig)

setFlagsForStaticAllocations

public void setFlagsForStaticAllocations(CriticalSectionInterferenceGraph ig)

locksetToLockNumString

public static String locksetToLockNumString(List<EquivalentValue> lockset,
                                            Map<Value,Integer> lockToLockNum)

assignNamesToTransactions

public void assignNamesToTransactions(List<soot.jimple.toolkits.thread.synchronization.CriticalSection> AllTransactions)

printGraph

public void printGraph(Collection<soot.jimple.toolkits.thread.synchronization.CriticalSection> AllTransactions,
                       CriticalSectionInterferenceGraph ig,
                       Map<Value,Integer> lockToLockNum)

printTable

public void printTable(Collection<soot.jimple.toolkits.thread.synchronization.CriticalSection> AllTransactions,
                       MhpTester mhp)

printGroups

public void printGroups(Collection<soot.jimple.toolkits.thread.synchronization.CriticalSection> AllTransactions,
                        CriticalSectionInterferenceGraph ig)

getInterferenceGraph

public CriticalSectionInterferenceGraph getInterferenceGraph()

getDeadlockGraph

public DirectedGraph getDeadlockGraph()

getCriticalSections

public List<soot.jimple.toolkits.thread.synchronization.CriticalSection> getCriticalSections()