Tue, 24 Jun 2008 16:00:14 -0700
6718676: putback for 6604014 is incomplete
Reviewed-by: kvn, jrose
never@657 | 1 | The Ideal Graph Visualizer is a tool developed to help examine the |
never@657 | 2 | intermediate representation of C2 which is commonly referred to as the |
never@657 | 3 | "ideal graph". It was developed in collaboration with the University |
never@657 | 4 | of Linz in Austria and has been included as part of hotspot since that |
never@657 | 5 | was the primary target of the tool. The tool itself is fairly general |
never@657 | 6 | with only a few modules that contain C2 specific elements. |
never@657 | 7 | |
never@657 | 8 | The tool is built on top of the NetBeans 6.0 rich client |
never@657 | 9 | infrastructure and so requires NetBeans to build. It currently |
never@657 | 10 | requires Java 6 to run as it needs support for JavaScript for its |
never@657 | 11 | filtering mechanism and assumes it's built into the platform. It |
never@657 | 12 | should build out of the box whit NetBeans 6 and Java 6 or later. It's |
never@657 | 13 | possible to run it on 1.5 by including Rhino on the classpath though |
never@657 | 14 | that currently isn't working correctly. Support for exporting graphs |
never@657 | 15 | as SVG can be enabled by adding batik to the classpath which isn't |
never@657 | 16 | included by default. |
never@657 | 17 | |
never@657 | 18 | It can be built on top of NetBeans 6.1 if you change the required |
never@657 | 19 | modules to be platform8 instead of platform7. The tool could run on |
never@657 | 20 | JDK 1.5 with some reworking of the how the JavaScript support is |
never@657 | 21 | enabled but currently it requires some tweaking of the setup. This |
never@657 | 22 | will be fixed in a later setup. |
never@657 | 23 | |
never@657 | 24 | The JVM support is controlled by the flag -XX:PrintIdealGraphLevel=# |
never@657 | 25 | where # is: |
never@657 | 26 | |
never@657 | 27 | 0: no output, the default |
never@657 | 28 | 1: dumps graph after parsing, before matching, and final code. |
never@657 | 29 | also dumps graph for failed compiles, if available |
never@657 | 30 | 2: more detail, including after loop opts |
never@657 | 31 | 3: even more detail |
never@657 | 32 | 4: prints graph after parsing every bytecode (very slow) |
never@657 | 33 | |
never@657 | 34 | By default the JVM expects that it will connect to a visualizer on the |
never@657 | 35 | local host on port 4444. This can be configured using the options |
never@657 | 36 | -XX:PrintIdealGraphAddress= and -XX:PrintIdealGraphPort=. |
never@657 | 37 | PrintIdealGraphAddress can actually be a hostname. |
never@657 | 38 | |
never@657 | 39 | Alternatively the output can be sent to a file using |
never@657 | 40 | -XX:PrintIdealGraphFile=filename. Each compiler thread will get it's |
never@657 | 41 | own file with unique names being generated by adding a number onto the |
never@657 | 42 | provided file name. |
never@657 | 43 | |
never@657 | 44 | More information about the tool is available at |
never@657 | 45 | http://wikis.sun.com/display/HotSpotInternals/IdealGraphVisualizer. |