predicates are not feasible to flip on and off. The entire splicing mechanism for...
authorjjenista <jjenista>
Tue, 17 Jan 2012 23:24:05 +0000 (23:24 +0000)
committerjjenista <jjenista>
Tue, 17 Jan 2012 23:24:05 +0000 (23:24 +0000)
Robust/src/Analysis/Disjoint/DisjointAnalysis.java
Robust/src/Analysis/Disjoint/ExistPredSet.java
Robust/src/Analysis/Disjoint/ReachGraph.java
Robust/src/Benchmarks/oooJava/master-makefile

index baa21e2e7198895348678332689d082e4fa2f765..0913d4fbaee0229a50020a699085bba498afd164 100644 (file)
@@ -876,7 +876,8 @@ public class DisjointAnalysis implements HeapAnalysis {
     }
 
     if( !state.DISJOINT_USE_PREDICATES ) {
-      ReachGraph.DISABLE_PREDICATES = true;
+      ReachGraph.DISABLE_PREDICATES   = true;
+      ExistPredSet.DISABLE_PREDICATES = true;
     }
 
     if( state.DISJOINT_SUMMARIZE_PER_CLASS ) {
index 76cb5182f1095f4ca6adbd785ef97553bbc2c976..c45535a9df99e286eca38f245fdb29999add7f50 100644 (file)
@@ -29,6 +29,8 @@ import java.io.*;
 
 public class ExistPredSet extends Canonical {
 
+  protected static boolean DISABLE_PREDICATES = false;
+
   protected Set<ExistPred> preds;
 
   public static boolean debug = false;
@@ -63,6 +65,19 @@ public class ExistPredSet extends Canonical {
                                     Set<Integer> calleeReachableNodes,
                                     Set<RefSrcNode> callerSrcMatches
                                     ) {
+    // jjenista 1/17/2012
+    //
+    // this does not work to disable predicates, in fact the whole
+    // interprocedural context mapping system is built on predicates
+    // because edges and nodes that get renamed in the callee context
+    // have to be spliced back into the caller context, and the
+    // elements that cross the boundry are fused by matching
+    // predicates of callee elements to caller elements.
+    //
+    //if( DISABLE_PREDICATES ) {
+    //  return ReachGraph.predsTrue;
+    //}
+
     ExistPredSet predsOut = null;
 
     Iterator<ExistPred> predItr = preds.iterator();
index c077b438e45449a7c87c05f5ae2d91a0087e7121..9a327eebecafe7d07d48746a554b09437ecf369d 100644 (file)
@@ -2757,7 +2757,7 @@ public class ReachGraph {
 
       AllocSite as = hrnCallee.getAllocSite();
       allocSites.add(as);
-
+      
       Integer hrnIDshadow = as.getShadowIDfromID(hrnCallee.getID() );
 
       HeapRegionNode hrnCaller = id2hrn.get(hrnIDshadow);
index 85f3d0893e66b4034a4ef9a25470606ccc126498..54e60989b6ce97ebce94a6e90163471b6516d748 100644 (file)
@@ -77,13 +77,13 @@ DISJOINT= -disjoint -disjoint-k 1 -enable-assertions $(DRELEASEMODE) #-disjoint-
 # EX: (skip first 10 visits, capture the next 3, then halt)
 # -disjoint-debug-snap-method Remove 10 3 true
 
-DISJOINTDEBUG= -disjoint -disjoint-k 1 -enable-assertions $(DRELEASEMODE) \
-       -disjoint-summarize-per-class
+DISJOINTDEBUG= -disjoint -disjoint-k 1 -enable-assertions $(DRELEASEMODE)
+#      -disjoint-disable-predicates \
+#      -disjoint-summarize-per-class
 #      -disjoint-write-dots final
 #      -do-definite-reach-analysis \
 #      -disjoint-disable-global-sweep \
 #      -disjoint-disable-strong-update \
-#      -disjoint-disable-predicates \
 #      -disjoint-debug-scheduling
 #      -disjoint-debug-callsite Barneshut.Insert Barneshut.run 50 500 true
 #      -disjoint-debug-snap-method ArrayIndexedGraph.createNode 1 100 true \