From bc64831d7a5400445e3d7eb0ce2ccd1266cd308f Mon Sep 17 00:00:00 2001 From: jjenista Date: Fri, 27 Jan 2012 01:14:50 +0000 Subject: [PATCH] little twiddles for kmeans investigation --- Robust/src/Analysis/Disjoint/DisjointAnalysis.java | 2 +- Robust/src/Analysis/Disjoint/GraphElementCount.java | 12 ++++++------ Robust/src/Analysis/Disjoint/ReachGraph.java | 12 ++++++++++-- Robust/src/Benchmarks/oooJava/master-makefile | 11 +++++++---- 4 files changed, 24 insertions(+), 13 deletions(-) diff --git a/Robust/src/Analysis/Disjoint/DisjointAnalysis.java b/Robust/src/Analysis/Disjoint/DisjointAnalysis.java index f5f1ead5..88573021 100644 --- a/Robust/src/Analysis/Disjoint/DisjointAnalysis.java +++ b/Robust/src/Analysis/Disjoint/DisjointAnalysis.java @@ -2107,7 +2107,7 @@ public class DisjointAnalysis implements HeapAnalysis { true, // selectively hide intermediate temp vars true, // prune unreachable heap regions false, // hide reachability altogether - true, // hide subset reachability states + false, // hide subset reachability states true, // hide predicates true); // hide edge taints } diff --git a/Robust/src/Analysis/Disjoint/GraphElementCount.java b/Robust/src/Analysis/Disjoint/GraphElementCount.java index bfc6b384..e377ba8a 100644 --- a/Robust/src/Analysis/Disjoint/GraphElementCount.java +++ b/Robust/src/Analysis/Disjoint/GraphElementCount.java @@ -7,12 +7,12 @@ import java.util.*; public class GraphElementCount { - public long numNodes; - public long numEdges; - public long numNodeStates; - public long numEdgeStates; - public long numNodeStateNonzero; - public long numEdgeStateNonzero; + private long numNodes; + private long numEdges; + private long numNodeStates; + private long numEdgeStates; + private long numNodeStateNonzero; + private long numEdgeStateNonzero; public GraphElementCount() { numNodes = 0; diff --git a/Robust/src/Analysis/Disjoint/ReachGraph.java b/Robust/src/Analysis/Disjoint/ReachGraph.java index 6e5522d5..d6c99ce1 100644 --- a/Robust/src/Analysis/Disjoint/ReachGraph.java +++ b/Robust/src/Analysis/Disjoint/ReachGraph.java @@ -2390,8 +2390,8 @@ public class ReachGraph { private static boolean resolveMethodDebugDOTselectTemps = true; private static boolean resolveMethodDebugDOTpruneGarbage = true; private static boolean resolveMethodDebugDOThideReach = false; - private static boolean resolveMethodDebugDOThideSubsetReach = true; - private static boolean resolveMethodDebugDOThidePreds = false; + private static boolean resolveMethodDebugDOThideSubsetReach = false; + private static boolean resolveMethodDebugDOThidePreds = true; private static boolean resolveMethodDebugDOThideEdgeTaints = true; static String debugGraphPrefix; @@ -4567,6 +4567,14 @@ public class ReachGraph { BufferedWriter bw = new BufferedWriter(new FileWriter(graphName+".dot") ); + + if( state.DISJOINT_COUNT_GRAPH_ELEMENTS ) { + GraphElementCount gec = new GraphElementCount(); + countGraphElements( gec ); + bw.write("/* Counting Graph Elements\n"+gec+" */\n"); + } + + bw.write("digraph "+graphName+" {\n"); diff --git a/Robust/src/Benchmarks/oooJava/master-makefile b/Robust/src/Benchmarks/oooJava/master-makefile index e44d26f8..11a610cc 100644 --- a/Robust/src/Benchmarks/oooJava/master-makefile +++ b/Robust/src/Benchmarks/oooJava/master-makefile @@ -61,7 +61,7 @@ DISJOINT= -disjoint -disjoint-k 1 -enable-assertions $(DRELEASEMODE) #-disjoint- # -disjoint-debug-scheduling (use to get messages about WHY a method is rescheduled for analysis) # to use -disjoint-debug-callsite flag, arguments are: -# 1. callee symbol, ex: MainClass.foo() has symbol "foo" +# 1. callee symbol, ex: MainClass.foo() has symbol "MainClass.foo" # 2. caller symbol # 3. numCallSiteVisitsToSkip, the analysis sometimes revisits a call site many, MANY times, but usually use 1 # 4. numCallSiteVisitsToCapture, if you choose a really high number you'll get every visit, could be a lot @@ -81,15 +81,18 @@ DISJOINTDEBUG= -disjoint -disjoint-k 1 -enable-assertions $(DRELEASEMODE) -print -justanalyze \ -disjoint-count-graph-elements # -disjoint-disable-strong-update -# -disjoint-disable-global-sweep +# -disjoint-disable-global-sweep \ + +# -disjoint-write-dots final \ # -disjoint-summarize-per-class # -disjoint-disable-predicates \ # -# -disjoint-write-dots final # -do-definite-reach-analysis \ # -disjoint-debug-scheduling -# -disjoint-debug-callsite Barneshut.Insert Barneshut.run 50 500 true + +# -disjoint-debug-callsite Common.common_findNearestPoint Normal.work 5 500 true \ + # -disjoint-debug-snap-method ArrayIndexedGraph.createNode 1 100 true \ # -disjoint-write-dots final \ # -flatirusermethods \ -- 2.34.1