diff -r 4722e25bfd6d -r b32fcc177417 hotspot/src/share/tools/IdealGraphVisualizer/README.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hotspot/src/share/tools/IdealGraphVisualizer/README.md Tue May 05 13:06:10 2015 +0200 @@ -0,0 +1,50 @@ +# Overview + +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 7 rich client infrastructure and so +requires NetBeans to build. It currently requires at least 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 7.0 and Java 6 +or later. + +# Building and Running + +The build system used for IGV is ant. To download all required libraries and +build IGV, issue `ant build`. To run IGV, use the `igv.sh` command; it will put +all log messages generated by the run to the file `.igv.log`. To see all log +messages generated during an IGV run, use `ant run`. + +# Usage + +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 + graphs for failed compilations, 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. + +It is advisable to run the JVM with background compilation disabled (-Xbatch). +Compilations going on in the background may be cancelled when the VM terminates, +which can lead to incomplete dumps being sent to IGV. + +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 +https://wikis.oracle.com/display/HotSpotInternals/IdealGraphVisualizer.