| 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. |