From: jjenista Date: Thu, 5 May 2011 22:48:52 +0000 (+0000) Subject: disjoint should work like pointer in that taints for DOJ have whereDefined initialize... X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=766ca5b9f0bd981336d6c9639512ec3e583ee901;p=IRC.git disjoint should work like pointer in that taints for DOJ have whereDefined initialized to null because taints can propagate across a backedge to the stallsite, for example, which can become the non-null whereDefined element of a new taint --- diff --git a/Robust/src/Analysis/Disjoint/ReachGraph.java b/Robust/src/Analysis/Disjoint/ReachGraph.java index 186e58aa..f43df03a 100644 --- a/Robust/src/Analysis/Disjoint/ReachGraph.java +++ b/Robust/src/Analysis/Disjoint/ReachGraph.java @@ -1300,9 +1300,6 @@ public class ReachGraph { // use this where defined flatnode to support RCR/DFJ FlatNode whereDefined = null; - if( state.RCR ) { - whereDefined = sese; - } // in-set var taints should NOT propagate back into callers // so give it FALSE(EMPTY) predicates @@ -1320,9 +1317,6 @@ public class ReachGraph { // use this where defined flatnode to support RCR/DFJ FlatNode whereDefined = null; - if( state.RCR ) { - whereDefined = stallSite; - } // stall site taint should propagate back into callers // so give it TRUE predicates diff --git a/Robust/src/Analysis/OoOJava/OoOJavaAnalysis.java b/Robust/src/Analysis/OoOJava/OoOJavaAnalysis.java index 495b0e4e..709a2120 100644 --- a/Robust/src/Analysis/OoOJava/OoOJavaAnalysis.java +++ b/Robust/src/Analysis/OoOJava/OoOJavaAnalysis.java @@ -7,6 +7,7 @@ import Analysis.*; import Analysis.CallGraph.*; import Analysis.Disjoint.*; import Analysis.Pointer.*; +import Util.*; import IR.*; import IR.Flat.*; @@ -182,12 +183,13 @@ public class OoOJavaAnalysis { disjointAnalysisTaints = new Pointer(state, typeUtil, callGraph, rblockRel, liveness, buildStateMachines); ((Pointer) disjointAnalysisTaints).doAnalysis(); - } else + } else { disjointAnalysisTaints = new DisjointAnalysis(state, typeUtil, callGraph, liveness, arrayReferencees, null, - rblockRel, buildStateMachines, true); // suppress output--this is - // an intermediate pass - + rblockRel, buildStateMachines, + !state.OOODEBUG // only print out in OoOJava debug mode + ); + } State.logEvent("OoOJavaAnalysis 5th pass completed"); // 6th pass, not available analysis FOR VARIABLES! diff --git a/Robust/src/Benchmarks/oooJava/master-makefile b/Robust/src/Benchmarks/oooJava/master-makefile index 37f023d9..b517a763 100644 --- a/Robust/src/Benchmarks/oooJava/master-makefile +++ b/Robust/src/Benchmarks/oooJava/master-makefile @@ -73,9 +73,9 @@ 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= -justanalyze -disjoint -disjoint-k 1 -enable-assertions \ - -disjoint-write-dots final \ - -disjoint-debug-callsite Demand.add Lateral.compute 1 1000 true +DISJOINTDEBUG= -justanalyze -disjoint -disjoint-k 1 -enable-assertions +# -disjoint-write-dots final \ +# -disjoint-debug-callsite Demand.add Lateral.compute 1 1000 true # -disjoint-desire-determinism # -disjoint-debug-snap-method ComputeCenterOfMass 6 2 true # -disjoint-debug-scheduling @@ -108,7 +108,7 @@ ooo-debug: $(SOURCE_FILES) ../master-makefile disjoint-debug: $(SOURCE_FILES) ../master-makefile - $(BUILDSCRIPT) $(BMFLAGS) $(BSFLAGS) $(USECOREPROF) $(USEOOO) $(DISJOINTDEBUG) -o $(PROGRAM)p -builddir par $(SOURCE_FILES) + $(BUILDSCRIPT) $(BMFLAGS) $(BSFLAGS) $(USECOREPROF) $(USEOOO) $(DISJOINTDEBUG) -o $(PROGRAM)p -builddir par $(SOURCE_FILES) rcr: $(SOURCE_FILES) ../master-makefile $(BUILDSCRIPT) $(BMFLAGS) $(BSFLAGS) $(USECOREPROF) $(USERCR) $(DISJOINT) -o $(PROGRAM)r -builddir rcr $(SOURCE_FILES)