get set up for experiment: test impact of disabling components
authorjjenista <jjenista>
Tue, 17 Jan 2012 19:48:51 +0000 (19:48 +0000)
committerjjenista <jjenista>
Tue, 17 Jan 2012 19:48:51 +0000 (19:48 +0000)
Robust/src/Analysis/Disjoint/DisjointAnalysis.java
Robust/src/Analysis/Disjoint/ReachGraph.java
Robust/src/Benchmarks/oooJava/master-makefile
Robust/src/IR/State.java
Robust/src/Main/Main.java
Robust/src/buildscript

index 335a35340ab59170c940fe9fe90b3012c9590597..1e88751b831e091c75e9b0a0caa7ff49c6a72017 100644 (file)
@@ -416,6 +416,8 @@ public class DisjointAnalysis implements HeapAnalysis {
   protected boolean doDefiniteReachAnalysis = false;
   protected DefiniteReachAnalysis definiteReachAnalysis;
 
+  protected boolean summarizePerClass = false;
+
 
   // data structure for public interface
   private Hashtable< Descriptor, HashSet<AllocSite> >
@@ -855,6 +857,22 @@ public class DisjointAnalysis implements HeapAnalysis {
       definiteReachAnalysis = new DefiniteReachAnalysis( pm );
     }
 
+    if( !state.DISJOINT_USE_GLOBAL_SWEEP ) {
+      ReachGraph.DISABLE_GLOBAL_SWEEP = true;
+    }
+
+    if( !state.DISJOINT_USE_STRONG_UPDATE ) {
+      ReachGraph.DISABLE_STRONG_UPDATES = true;
+    }
+
+    if( !state.DISJOINT_USE_PREDICATES ) {
+      ReachGraph.DISABLE_PREDICATES = true;
+    }
+
+    if( state.DISJOINT_SUMMARIZE_PER_CLASS ) {
+      summarizePerClass = true;
+    }
+
 
     if( suppressOutput ) {
       System.out.println("* Running disjoint reachability analysis with output suppressed! *");
index 7a4522d701ace718b0894472e3fabfd2cbd4aac2..c077b438e45449a7c87c05f5ae2d91a0087e7121 100644 (file)
@@ -9,8 +9,9 @@ import java.io.*;
 public class ReachGraph {
 
   // use to disable improvements for comparison
-  protected static final boolean DISABLE_STRONG_UPDATES = false;
-  protected static final boolean DISABLE_GLOBAL_SWEEP   = false;
+  protected static boolean DISABLE_STRONG_UPDATES = false;
+  protected static boolean DISABLE_GLOBAL_SWEEP   = false;
+  protected static boolean DISABLE_PREDICATES     = false;
 
   // a special out-of-scope temps
   protected static TempDescriptor tdReturn;
index 30f711a0486cd5adc3ab3a47bcfd8b490825505c..669f7a1b43c470830cf81bbc95ae076ca5ddc9e3 100644 (file)
@@ -32,6 +32,7 @@ USECOREPROF= #-coreprof $(COREPROFOVERFLOW) \
        -coreprof-enable cpe_taskstallmem
 
 
+
 USEOOO= -ooojava $(NUM_OOO_WORKERS) 2      -squeue #-ooodebug-disable-task-mem-pool
 USERCR= -ooojava $(NUM_RCR_WORKERS) 2 -rcr -squeue -ooodebug
 OOODEBUG= -ooodebug -printlinenum
@@ -77,6 +78,11 @@ DISJOINT= -disjoint -disjoint-k 1 -enable-assertions $(DRELEASEMODE) #-disjoint-
 # -disjoint-debug-snap-method Remove 10 3 true
 
 DISJOINTDEBUG= -disjoint -disjoint-k 1 -enable-assertions $(DRELEASEMODE) \
+       -do-definite-reach-analysis \
+       -disjoint-disable-global-sweep \
+       -disjoint-disable-strong-update \
+       -disjoint-disable-predicates \
+       -disjoint-summarize-per-class \
        -disjoint-write-dots final
 #      -disjoint-debug-scheduling
 #      -disjoint-debug-callsite Barneshut.Insert Barneshut.run 50 500 true
index f9b7be76169f3a930a0187a480501002266300f1..d2099705d21516074cb3e718a0f5eb203a2903fb 100644 (file)
@@ -123,16 +123,17 @@ public class State {
   public int DISJOINTSNAPVISITTOSTART=0;
   public int DISJOINTSNAPNUMVISITS=0;
   public boolean DISJOINTSNAPSTOPAFTER=false;
-
   public boolean DISJOINTDEBUGSCHEDULING=false;
-
   public boolean DISJOINT_WRITE_ALL_NODE_FINAL_GRAPHS=false;
+  public boolean DISJOINT_COUNT_VISITS=false;
 
   public boolean POINTSTO_CHECK_V_RUNTIME=false;
 
   public boolean DO_DEFINITE_REACH_ANALYSIS=false;
-
-  public boolean DISJOINT_COUNT_VISITS=false;
+  public boolean DISJOINT_USE_GLOBAL_SWEEP=true;
+  public boolean DISJOINT_USE_STRONG_UPDATE=true;
+  public boolean DISJOINT_USE_PREDICATES=true;
+  public boolean DISJOINT_SUMMARIZE_PER_CLASS=false;
 
 
   public boolean OOOJAVA=false;
index 1277bafacd79f0528c14524338dbd81af4c33d02..e0520b1966ac66f232447840f3ab5117a61b8852 100644 (file)
@@ -295,6 +295,19 @@ public class Main {
         state.DO_DEFINITE_REACH_ANALYSIS = true;
 
 
+      } else if( option.equals("-disjoint-disable-global-sweep") ) {
+        state.DISJOINT_USE_GLOBAL_SWEEP = false;
+
+      } else if( option.equals("-disjoint-disable-strong-update") ) {
+        state.DISJOINT_USE_STRONG_UPDATE = false;
+
+      } else if( option.equals("-disjoint-disable-predicates") ) {
+        state.DISJOINT_USE_PREDICATES = false;
+
+      } else if( option.equals("-disjoint-summarize-per-class") ) {
+        state.DISJOINT_SUMMARIZE_PER_CLASS = true;
+
+
       } else if( option.equals("-count-visits") ) {
         state.DISJOINT_COUNT_VISITS = true;
 
index b797433aeb4c6273c11c158c00fd693f48904e20..e22558840f2abbaff3690939f6868e52dc2defb4 100755 (executable)
@@ -50,9 +50,15 @@ echo -disjoint-dvisit-stack-callees-on-top alternate stack strat
 echo -disjoint-dvisit-pqueue use prio. q strat to visit descriptors
 echo -disjoint-desire-determinism set above interproc for determinism
 echo -disjoint-debug-scheduling debug when methods are scheduled for analysis
-echo -do-definite-reach-analysis enable improved precision for disjoint reachability analysis
 echo -count-visits for counting visits in the fixed point algorithm to evaluate convergence behavior
 echo
+echo -do-definite-reach-analysis enable improved precision for disjoint reachability analysis
+echo -disjoint-disable-global-sweep
+echo -disjoint-disable-strong-update
+echo -disjoint-disable-predicates
+echo -disjoint-summarize-per-class
+echo
+echo
 echo -pointsto-check-v-runtime check allocation site of pointer targets at runtime to help verify heap analysis results
 echo 
 echo "-mlp <num cores> <max sese age> build mlp code"