From 2ac34735b96c5622e414128ed1fb3d70c16b993f Mon Sep 17 00:00:00 2001 From: jjenista Date: Tue, 9 Sep 2008 20:33:32 +0000 Subject: [PATCH] fix dumb bug in test case, add graphing option --- .../OwnershipAnalysis/OwnershipAnalysis.java | 5 ++- .../OwnershipAnalysis/OwnershipGraph.java | 38 +++++++++++-------- .../OwnershipAnalysisTest/test01/makefile | 6 +-- .../OwnershipAnalysisTest/test01/test01.java | 6 +-- 4 files changed, 31 insertions(+), 24 deletions(-) diff --git a/Robust/src/Analysis/OwnershipAnalysis/OwnershipAnalysis.java b/Robust/src/Analysis/OwnershipAnalysis/OwnershipAnalysis.java index 6078c166..be78a499 100644 --- a/Robust/src/Analysis/OwnershipAnalysis/OwnershipAnalysis.java +++ b/Robust/src/Analysis/OwnershipAnalysis/OwnershipAnalysis.java @@ -636,18 +636,19 @@ public class OwnershipAnalysis { // boolean labelSelect, // boolean pruneGarbage, // boolean writeReferencers + // boolean writeParamMappings if( writeDOTs ) { if( !writeAllDOTs ) { - og.writeGraph(d, true, true, true, false); + og.writeGraph(d, true, true, true, false, false); } else { if( !mapDescriptorToNumUpdates.containsKey(d) ) { mapDescriptorToNumUpdates.put(d, new Integer(0) ); } Integer n = mapDescriptorToNumUpdates.get(d); - og.writeGraph(d, n, true, true, true, false); + og.writeGraph(d, n, true, true, true, false, false); mapDescriptorToNumUpdates.put(d, n + 1); } } diff --git a/Robust/src/Analysis/OwnershipAnalysis/OwnershipGraph.java b/Robust/src/Analysis/OwnershipAnalysis/OwnershipGraph.java index 9f8f3950..1d3c2333 100644 --- a/Robust/src/Analysis/OwnershipAnalysis/OwnershipGraph.java +++ b/Robust/src/Analysis/OwnershipAnalysis/OwnershipGraph.java @@ -2520,7 +2520,8 @@ public class OwnershipGraph { boolean writeLabels, boolean labelSelect, boolean pruneGarbage, - boolean writeReferencers + boolean writeReferencers, + boolean writeParamMappings ) throws java.io.IOException { writeGraph( methodDesc.getSymbol() + @@ -2529,7 +2530,8 @@ public class OwnershipGraph { writeLabels, labelSelect, pruneGarbage, - writeReferencers + writeReferencers, + writeParamMappings ); } @@ -2537,14 +2539,16 @@ public class OwnershipGraph { boolean writeLabels, boolean labelSelect, boolean pruneGarbage, - boolean writeReferencers + boolean writeReferencers, + boolean writeParamMappings ) throws java.io.IOException { writeGraph(methodDesc+"COMPLETE", writeLabels, labelSelect, pruneGarbage, - writeReferencers + writeReferencers, + writeParamMappings ); } @@ -2553,14 +2557,16 @@ public class OwnershipGraph { boolean writeLabels, boolean labelSelect, boolean pruneGarbage, - boolean writeReferencers + boolean writeReferencers, + boolean writeParamMappings ) throws java.io.IOException { writeGraph(methodDesc+"COMPLETE"+String.format("%05d", numUpdate), writeLabels, labelSelect, pruneGarbage, - writeReferencers + writeReferencers, + writeParamMappings ); } @@ -2568,7 +2574,8 @@ public class OwnershipGraph { boolean writeLabels, boolean labelSelect, boolean pruneGarbage, - boolean writeReferencers + boolean writeReferencers, + boolean writeParamMappings ) throws java.io.IOException { // remove all non-word characters from the graph name so @@ -2577,7 +2584,6 @@ public class OwnershipGraph { BufferedWriter bw = new BufferedWriter(new FileWriter(graphName+".dot") ); bw.write("digraph "+graphName+" {\n"); - //bw.write( " size=\"7.5,10\";\n" ); HashSet visited = new HashSet(); @@ -2601,13 +2607,15 @@ public class OwnershipGraph { bw.write(" graphTitle[label=\""+graphName+"\",shape=box];\n"); - Set df = paramIndex2id.entrySet(); - Iterator ih = df.iterator(); - while( ih.hasNext() ) { - Map.Entry meh = (Map.Entry)ih.next(); - Integer pi = (Integer) meh.getKey(); - Integer id = (Integer) meh.getValue(); - bw.write(" pindex"+pi+"[label=\""+pi+" to "+id+"\",shape=box];\n"); + if( writeParamMappings ) { + Set df = paramIndex2id.entrySet(); + Iterator ih = df.iterator(); + while( ih.hasNext() ) { + Map.Entry meh = (Map.Entry)ih.next(); + Integer pi = (Integer) meh.getKey(); + Integer id = (Integer) meh.getValue(); + bw.write(" pindex"+pi+"[label=\""+pi+" to "+id+"\",shape=box];\n"); + } } // then visit every label node, useful for debugging diff --git a/Robust/src/Tests/OwnershipAnalysisTest/test01/makefile b/Robust/src/Tests/OwnershipAnalysisTest/test01/makefile index 6875fa03..84080df4 100644 --- a/Robust/src/Tests/OwnershipAnalysisTest/test01/makefile +++ b/Robust/src/Tests/OwnershipAnalysisTest/test01/makefile @@ -3,7 +3,7 @@ PROGRAM=test01 SOURCE_FILES=$(PROGRAM).java BUILDSCRIPT=~/research/Robust/src/buildscript -BSFLAGS= -recover -flatirtasks -ownership -enable-assertions +BSFLAGS= -recover -ownership -ownaliasfile aliases.txt -ownwritedots final -enable-assertions all: $(PROGRAM).bin @@ -24,6 +24,4 @@ clean: rm -f *~ rm -f *.dot rm -f *.png - rm -f *.ps - rm -f *.eps - rm -f identifiedAliases.txt + rm -f aliases.txt diff --git a/Robust/src/Tests/OwnershipAnalysisTest/test01/test01.java b/Robust/src/Tests/OwnershipAnalysisTest/test01/test01.java index 1c0bd2c9..cf4df16a 100644 --- a/Robust/src/Tests/OwnershipAnalysisTest/test01/test01.java +++ b/Robust/src/Tests/OwnershipAnalysisTest/test01/test01.java @@ -179,9 +179,9 @@ task Startup( StartupObject s{ initialstate } ) { //int a, b, c; - int a; - int b; - int c; + int a = 1; + int b = 2; + int c = 3; b = c; a = b; -- 2.34.1