small changes
authorbdemsky <bdemsky>
Thu, 18 Jun 2009 18:43:20 +0000 (18:43 +0000)
committerbdemsky <bdemsky>
Thu, 18 Jun 2009 18:43:20 +0000 (18:43 +0000)
Robust/src/Analysis/Locality/DelayComputation.java
Robust/src/IR/Flat/BuildCode.java

index e91fa3cf907c0d8db4b45c1954529c622b464e1c..3708e6f9ce187b82384de5e8fee80086a9023460 100644 (file)
@@ -17,12 +17,15 @@ public class DelayComputation {
   GlobalFieldType gft;
   DiscoverConflicts dcopts;
 
-  public DelayComputation(LocalityAnalysis locality, State state, TypeAnalysis typeanalysis, GlobalFieldType gft, DiscoverConflicts dcopts) {
+  public DelayComputation(LocalityAnalysis locality, State state, TypeAnalysis typeanalysis, GlobalFieldType gft) {
     this.locality=locality;
     this.state=state;
     this.typeanalysis=typeanalysis;
     this.gft=gft;
-    this.dcopts=dcopts;
+  }
+
+  public DiscoverConflicts getConflicts() {
+    return dcopts;
   }
 
   public void doAnalysis() {
@@ -283,6 +286,8 @@ public class DelayComputation {
     //II. You read a field or element and both (A) you are not in the
     //cannot delay set and (B) you do a transactional access to object
 
+    dcopts=new DiscoverConflicts(locality, state, typeanalysis);
+
     MethodDescriptor md=lb.getMethod();
     FlatMethod fm=state.getMethodFlat(md);
     Hashtable<FlatNode, Integer> atomictable=locality.getAtomic(lb);
index fee4d32db752f389efc87251b77fdf5f9a23e938..bf7c372f298e94972ff5f91529fc20f79aaae9f2 100644 (file)
@@ -107,12 +107,14 @@ public class BuildCode {
       TypeAnalysis typeanalysis=new TypeAnalysis(locality, st, typeutil,callgraph);
       this.dc=new DiscoverConflicts(locality, st, typeanalysis);
       dc.doAnalysis();
-      if (state.SINGLETM&&state.DELAYCOMP) {
-       //TypeAnalysis typeanalysis=new TypeAnalysis(locality, st, typeutil,callgraph);
-       GlobalFieldType gft=new GlobalFieldType(callgraph, st, typeutil.getMain());
-       delaycomp=new DelayComputation(locality, st, typeanalysis, gft, dc);
-       delaycomp.doAnalysis();
-      }
+    }
+    if (state.SINGLETM&&state.DELAYCOMP) {
+      //TypeAnalysis typeanalysis=new TypeAnalysis(locality, st, typeutil,callgraph);
+      TypeAnalysis typeanalysis=new TypeAnalysis(locality, st, typeutil,callgraph);
+      GlobalFieldType gft=new GlobalFieldType(callgraph, st, typeutil.getMain());
+      delaycomp=new DelayComputation(locality, st, typeanalysis, gft);
+      delaycomp.doAnalysis();
+      dc=delaycomp.getConflicts();
     }
 
     if(state.MLP) {