Mercurial > hg > truffle
diff graal/GraalCompiler/src/com/sun/c1x/debug/GraphvizPrinterObserver.java @ 2799:e1dad0edd57a
first part of loop reworking
author | Lukas Stadler <lukas.stadler@jku.at> |
---|---|
date | Fri, 27 May 2011 17:48:28 +0200 |
parents | 79590d6b4a7c |
children | b003ea36fa12 |
line wrap: on
line diff
--- a/graal/GraalCompiler/src/com/sun/c1x/debug/GraphvizPrinterObserver.java Fri May 27 14:20:30 2011 +0200 +++ b/graal/GraalCompiler/src/com/sun/c1x/debug/GraphvizPrinterObserver.java Fri May 27 17:48:28 2011 +0200 @@ -28,6 +28,7 @@ import com.oracle.graal.graph.*; import com.oracle.graal.graph.vis.*; import com.sun.c1x.*; +import com.sun.c1x.ir.*; import com.sun.c1x.observer.*; import com.sun.c1x.value.*; @@ -70,26 +71,14 @@ try { if (pdf) { ByteArrayOutputStream buffer = new ByteArrayOutputStream(); - GraphvizPrinter printer = new GraphvizPrinter(buffer); - if (C1XOptions.OmitDOTFrameStates) { - printer.addOmittedClass(FrameState.class); - } - printer.begin(name); - printer.print(graph, true); - printer.end(); + printGraph(graph, name, buffer); out = new FileOutputStream(filename + ".pdf"); GraphvizRunner.process(GraphvizRunner.DOT_LAYOUT, new ByteArrayInputStream(buffer.toByteArray()), out, "pdf"); } else { out = new FileOutputStream(filename + ".gv"); - GraphvizPrinter printer = new GraphvizPrinter(out); - if (C1XOptions.OmitDOTFrameStates) { - printer.addOmittedClass(FrameState.class); - } - printer.begin(name); - printer.print(graph, true); - printer.end(); + printGraph(graph, name, out); } } catch (IOException e) { e.printStackTrace(); @@ -103,4 +92,20 @@ } } } + + private static void printGraph(Graph graph, String name, OutputStream buffer) { + GraphvizPrinter printer = new GraphvizPrinter(buffer); + if (C1XOptions.OmitDOTFrameStates) { + printer.addOmittedClass(FrameState.class); + } + printer.addClassColor(StartNode.class, "snow3"); + printer.addClassColor(EndNode.class, "snow3"); + printer.addClassColor(LoopBegin.class, "skyblue"); + printer.addClassColor(LoopEnd.class, "skyblue3"); + printer.addClassColor(Unwind.class, "red"); + printer.addClassColor(Return.class, "indianred1"); + printer.begin(name); + printer.print(graph, true); + printer.end(); + } }