Mercurial > hg > graal-compiler
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(); + } + } } } });