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