just a little change to keep genreach debug node from getting wiped out during optimi...
authorjjenista <jjenista>
Mon, 10 Jan 2011 23:31:49 +0000 (23:31 +0000)
committerjjenista <jjenista>
Mon, 10 Jan 2011 23:31:49 +0000 (23:31 +0000)
Robust/src/Analysis/Disjoint/DisjointAnalysis.java
Robust/src/Analysis/Loops/DeadCode.java
Robust/src/Analysis/OoOJava/OoOJavaAnalysis.java

index c2139b221663b7b4c4ab8ee3bcd03d10906a9f6c..d0a32ebd9f007ce17c841b11c4bb92ecc2402ee4 100644 (file)
@@ -1111,8 +1111,10 @@ public class DisjointAnalysis {
     switch( fn.kind() ) {
 
     case FKind.FlatGenReachNode: {
+      FlatGenReachNode fgrn = (FlatGenReachNode) fn;
+      
       System.out.println( "Generating a reach graph!" );
-      rg.writeGraph( "genReach"+d,
+      rg.writeGraph( "genReach"+fgrn.getGraphName(),
                      true,    // write labels (variables)                
                      true,    // selectively hide intermediate temp vars 
                      true,    // prune unreachable heap regions          
@@ -1606,14 +1608,18 @@ public class DisjointAnalysis {
       // callee analysis, finish this transformation
       rg = rgMergeOfPossibleCallers;
 
+
+      // jjenista: what is this?  It breaks compilation
+      // of programs with no tasks/SESEs/rblocks...
       //XXXXXXXXXXXXXXXXXXXXXXXXX
       //need to consider more
       FlatNode nextFN=fmCallee.getNext(0);
-      assert nextFN instanceof FlatSESEEnterNode;
-      FlatSESEEnterNode calleeSESE=(FlatSESEEnterNode)nextFN;
-      if(!calleeSESE.getIsLeafSESE()){
-        rg.makeInaccessible( liveness.getLiveInTemps( fmContaining, fn ) );
-      }      
+      if( nextFN instanceof FlatSESEEnterNode ) {
+        FlatSESEEnterNode calleeSESE=(FlatSESEEnterNode)nextFN;
+        if(!calleeSESE.getIsLeafSESE()){
+          rg.makeInaccessible( liveness.getLiveInTemps( fmContaining, fn ) );
+        }      
+      }
       
     } break;
       
index d624fdd44862b87ecc6c09e90c8ed21d2b1aa4c3..eea7adbbf8772d511017e7a7d076cbfa4a822167 100644 (file)
@@ -37,6 +37,7 @@ public class DeadCode {
        case FKind.FlatPrefetchNode:
        case FKind.FlatSESEEnterNode:
        case FKind.FlatSESEExitNode:
+        case FKind.FlatGenReachNode:
          if (!useful.contains(fn)) {
            useful.add(fn);
            changed=true;
index f0fd9518df10846a6c1f3f3abc2a9c27cea38532..b54714b6cad585f4a0382dd2bda16f30f73e0b75 100644 (file)
@@ -229,8 +229,7 @@ public class OoOJavaAnalysis {
       // 9th pass, ask disjoint analysis to compute reachability
       // for objects that may cause heap conflicts so the most
       // efficient method to deal with conflict can be computed
-      // later
-      
+      // later      
       disjointAnalysisReach =
         new DisjointAnalysis(state, typeUtil, callGraph, liveness, arrayReferencees, sitesToFlag,
                             null, // don't do effects analysis again!