diff graal/GraalCompiler/src/com/sun/c1x/C1XCompiler.java @ 2603:01c5c0443158

new node layout: Phi
author Lukas Stadler <lukas.stadler@jku.at>
date Fri, 06 May 2011 11:18:15 +0200
parents 0c6564c254af
children a57e051b33cd
line wrap: on
line diff
--- a/graal/GraalCompiler/src/com/sun/c1x/C1XCompiler.java	Fri May 06 10:25:37 2011 +0200
+++ b/graal/GraalCompiler/src/com/sun/c1x/C1XCompiler.java	Fri May 06 11:18:15 2011 +0200
@@ -140,30 +140,32 @@
             final String dotPattern = dot;
             addCompilationObserver(new CompilationObserver() {
                 private Graph graph;
+                private int n;
                 public void compilationStarted(CompilationEvent event) {
+                    n = 0;
                 }
                 public void compilationFinished(CompilationEvent event) {
-                    String name = event.getMethod().holder().name();
-                    name = name.substring(1, name.length() - 1).replace('/', '.');
-                    name = name + "." + event.getMethod().name();
-                    if (name.matches(dotPattern)) {
-                        ByteArrayOutputStream out = new ByteArrayOutputStream();
-                        GraphvizPrinter printer = new GraphvizPrinter(out);
-                        printer.begin("Simple test");
-                        printer.print(graph);
-                        printer.end();
-
-                        try {
-                            GraphvizRunner.process(GraphvizRunner.DOT_COMMAND, new ByteArrayInputStream(out.toByteArray()),
-                                            new FileOutputStream(name + ".pdf"), "pdf");
-                        } catch (Exception e) {
-                            e.printStackTrace();
-                        }
-                    }
                 }
                 public void compilationEvent(CompilationEvent event) {
                     if (event.getStartBlock() != null) {
                         graph = event.getStartBlock().graph();
+                        String name = event.getMethod().holder().name();
+                        name = name.substring(1, name.length() - 1).replace('/', '.');
+                        name = name + "." + event.getMethod().name();
+                        if (name.matches(dotPattern)) {
+                            ByteArrayOutputStream out = new ByteArrayOutputStream();
+                            GraphvizPrinter printer = new GraphvizPrinter(out);
+                            printer.begin(name);
+                            printer.print(graph);
+                            printer.end();
+
+                            try {
+                                GraphvizRunner.process(GraphvizRunner.DOT_COMMAND, new ByteArrayInputStream(out.toByteArray()),
+                                                new FileOutputStream(name + "_" + (n++) + event.getLabel() + ".pdf"), "pdf");
+                            } catch (Exception e) {
+                                e.printStackTrace();
+                            }
+                        }
                     }
                 }
             });