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