From: jjenista Date: Tue, 17 Jan 2012 19:48:51 +0000 (+0000) Subject: get set up for experiment: test impact of disabling components X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=60c04b20b11efebe18313ca23dde9300fa4713e1;p=IRC.git get set up for experiment: test impact of disabling components --- diff --git a/Robust/src/Analysis/Disjoint/DisjointAnalysis.java b/Robust/src/Analysis/Disjoint/DisjointAnalysis.java index 335a3534..1e88751b 100644 --- a/Robust/src/Analysis/Disjoint/DisjointAnalysis.java +++ b/Robust/src/Analysis/Disjoint/DisjointAnalysis.java @@ -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 > @@ -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! *"); diff --git a/Robust/src/Analysis/Disjoint/ReachGraph.java b/Robust/src/Analysis/Disjoint/ReachGraph.java index 7a4522d7..c077b438 100644 --- a/Robust/src/Analysis/Disjoint/ReachGraph.java +++ b/Robust/src/Analysis/Disjoint/ReachGraph.java @@ -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; diff --git a/Robust/src/Benchmarks/oooJava/master-makefile b/Robust/src/Benchmarks/oooJava/master-makefile index 30f711a0..669f7a1b 100644 --- a/Robust/src/Benchmarks/oooJava/master-makefile +++ b/Robust/src/Benchmarks/oooJava/master-makefile @@ -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 diff --git a/Robust/src/IR/State.java b/Robust/src/IR/State.java index f9b7be76..d2099705 100644 --- a/Robust/src/IR/State.java +++ b/Robust/src/IR/State.java @@ -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; diff --git a/Robust/src/Main/Main.java b/Robust/src/Main/Main.java index 1277bafa..e0520b19 100644 --- a/Robust/src/Main/Main.java +++ b/Robust/src/Main/Main.java @@ -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; diff --git a/Robust/src/buildscript b/Robust/src/buildscript index b797433a..e2255884 100755 --- a/Robust/src/buildscript +++ b/Robust/src/buildscript @@ -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 build mlp code"