1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/src/share/tools/IdealGraphVisualizer/README Tue Jun 24 16:00:14 2008 -0700 1.3 @@ -0,0 +1,45 @@ 1.4 +The Ideal Graph Visualizer is a tool developed to help examine the 1.5 +intermediate representation of C2 which is commonly referred to as the 1.6 +"ideal graph". It was developed in collaboration with the University 1.7 +of Linz in Austria and has been included as part of hotspot since that 1.8 +was the primary target of the tool. The tool itself is fairly general 1.9 +with only a few modules that contain C2 specific elements. 1.10 + 1.11 +The tool is built on top of the NetBeans 6.0 rich client 1.12 +infrastructure and so requires NetBeans to build. It currently 1.13 +requires Java 6 to run as it needs support for JavaScript for its 1.14 +filtering mechanism and assumes it's built into the platform. It 1.15 +should build out of the box whit NetBeans 6 and Java 6 or later. It's 1.16 +possible to run it on 1.5 by including Rhino on the classpath though 1.17 +that currently isn't working correctly. Support for exporting graphs 1.18 +as SVG can be enabled by adding batik to the classpath which isn't 1.19 +included by default. 1.20 + 1.21 +It can be built on top of NetBeans 6.1 if you change the required 1.22 +modules to be platform8 instead of platform7. The tool could run on 1.23 +JDK 1.5 with some reworking of the how the JavaScript support is 1.24 +enabled but currently it requires some tweaking of the setup. This 1.25 +will be fixed in a later setup. 1.26 + 1.27 +The JVM support is controlled by the flag -XX:PrintIdealGraphLevel=# 1.28 +where # is: 1.29 + 1.30 + 0: no output, the default 1.31 + 1: dumps graph after parsing, before matching, and final code. 1.32 + also dumps graph for failed compiles, if available 1.33 + 2: more detail, including after loop opts 1.34 + 3: even more detail 1.35 + 4: prints graph after parsing every bytecode (very slow) 1.36 + 1.37 +By default the JVM expects that it will connect to a visualizer on the 1.38 +local host on port 4444. This can be configured using the options 1.39 +-XX:PrintIdealGraphAddress= and -XX:PrintIdealGraphPort=. 1.40 +PrintIdealGraphAddress can actually be a hostname. 1.41 + 1.42 +Alternatively the output can be sent to a file using 1.43 +-XX:PrintIdealGraphFile=filename. Each compiler thread will get it's 1.44 +own file with unique names being generated by adding a number onto the 1.45 +provided file name. 1.46 + 1.47 +More information about the tool is available at 1.48 +http://wikis.sun.com/display/HotSpotInternals/IdealGraphVisualizer.