| The Ideal Graph Visualizer is a tool developed to help examine the |
| intermediate representation of C2 which is commonly referred to as the |
| "ideal graph". It was developed in collaboration with the University |
| of Linz in Austria and has been included as part of hotspot since that |
| was the primary target of the tool. The tool itself is fairly general |
| with only a few modules that contain C2 specific elements. |
| |
| The tool is built on top of the NetBeans 6.1 rich client |
| infrastructure and so requires NetBeans to build. It currently |
| requires Java 6 to run as it needs support for JavaScript for its |
| filtering mechanism and assumes it's built into the platform. It |
| should build out of the box with NetBeans 6.1 and Java 6 or later. |
| It's possible to run it on 1.5 by including Rhino on the classpath |
| though that currently isn't working correctly. Support for exporting |
| graphs as SVG can be enabled by adding batik to the classpath which |
| isn't included by default. It can be built on top of NetBeans 6.0 if |
| you change the required modules to be platform7 instead of platform8. |
| |
| The JVM support is controlled by the flag -XX:PrintIdealGraphLevel=# |
| where # is: |
| |
| 0: no output, the default |
| 1: dumps graph after parsing, before matching, and final code. |
| also dumps graph for failed compiles, if available |
| 2: more detail, including after loop opts |
| 3: even more detail |
| 4: prints graph after parsing every bytecode (very slow) |
| |
| By default the JVM expects that it will connect to a visualizer on the |
| local host on port 4444. This can be configured using the options |
| -XX:PrintIdealGraphAddress= and -XX:PrintIdealGraphPort=. |
| PrintIdealGraphAddress can actually be a hostname. |
| |
| Alternatively the output can be sent to a file using |
| -XX:PrintIdealGraphFile=filename. Each compiler thread will get it's |
| own file with unique names being generated by adding a number onto the |
| provided file name. |
| |
| More information about the tool is available at |
| http://wikis.sun.com/display/HotSpotInternals/IdealGraphVisualizer. |