annotate src/share/tools/IdealGraphVisualizer/README @ 1673:6709c14587c2 jdk7-b105

Added tag jdk7-b104 for changeset b4acf10eb134
author cl
date Fri, 06 Aug 2010 12:51:54 -0700
parents f4fe12e429a4
children 2fd52cd64156
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
222
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
1 The Ideal Graph Visualizer is a tool developed to help examine the
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
2 intermediate representation of C2 which is commonly referred to as the
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
3 "ideal graph". It was developed in collaboration with the University
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
4 of Linz in Austria and has been included as part of hotspot since that
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
5 was the primary target of the tool. The tool itself is fairly general
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
6 with only a few modules that contain C2 specific elements.
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
7
417
f4fe12e429a4 6764622: IdealGraphVisualizer fixes
never
parents: 222
diff changeset
8 The tool is built on top of the NetBeans 6.1 rich client
222
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
9 infrastructure and so requires NetBeans to build. It currently
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
10 requires Java 6 to run as it needs support for JavaScript for its
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
11 filtering mechanism and assumes it's built into the platform. It
417
f4fe12e429a4 6764622: IdealGraphVisualizer fixes
never
parents: 222
diff changeset
12 should build out of the box with NetBeans 6.1 and Java 6 or later.
f4fe12e429a4 6764622: IdealGraphVisualizer fixes
never
parents: 222
diff changeset
13 It's possible to run it on 1.5 by including Rhino on the classpath
f4fe12e429a4 6764622: IdealGraphVisualizer fixes
never
parents: 222
diff changeset
14 though that currently isn't working correctly. Support for exporting
f4fe12e429a4 6764622: IdealGraphVisualizer fixes
never
parents: 222
diff changeset
15 graphs as SVG can be enabled by adding batik to the classpath which
f4fe12e429a4 6764622: IdealGraphVisualizer fixes
never
parents: 222
diff changeset
16 isn't included by default. It can be built on top of NetBeans 6.0 if
f4fe12e429a4 6764622: IdealGraphVisualizer fixes
never
parents: 222
diff changeset
17 you change the required modules to be platform7 instead of platform8.
222
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
18
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
19 The JVM support is controlled by the flag -XX:PrintIdealGraphLevel=#
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
20 where # is:
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
21
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
22 0: no output, the default
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
23 1: dumps graph after parsing, before matching, and final code.
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
24 also dumps graph for failed compiles, if available
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
25 2: more detail, including after loop opts
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
26 3: even more detail
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
27 4: prints graph after parsing every bytecode (very slow)
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
28
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
29 By default the JVM expects that it will connect to a visualizer on the
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
30 local host on port 4444. This can be configured using the options
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
31 -XX:PrintIdealGraphAddress= and -XX:PrintIdealGraphPort=.
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
32 PrintIdealGraphAddress can actually be a hostname.
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
33
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
34 Alternatively the output can be sent to a file using
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
35 -XX:PrintIdealGraphFile=filename. Each compiler thread will get it's
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
36 own file with unique names being generated by adding a number onto the
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
37 provided file name.
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
38
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
39 More information about the tool is available at
2a1a77d3458f 6718676: putback for 6604014 is incomplete
never
parents:
diff changeset
40 http://wikis.sun.com/display/HotSpotInternals/IdealGraphVisualizer.