United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: 7088955 add C2 IR support to the SA
7088955 : add C2 IR support to the SA

Details
Type:
Enhancement
Submit Date:
2011-09-09
Status:
Closed
Updated Date:
2012-12-12
Project Name:
JDK
Resolved Date:
2011-09-30
Component:
hotspot
OS:
solaris_10
Sub-Component:
compiler
CPU:
x86
Priority:
P4
Resolution:
Fixed
Affected Versions:
hs22
Fixed Versions:
hs22

Related Reports
Backport:
Backport:
Relates:
Relates:

Sub Tasks

Description
We should include the C2 related SA improvements developed as part of the replay work.

                                    

Comments
EVALUATION

See main CR
                                     
2011-09-24
EVALUATION

http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/f6f3bb0ee072
                                     
2011-09-12
EVALUATION

7088955: add C2 IR support to the SA
Reviewed-by: kvn

These are bunch of SA improvements I collected as part of the replay
support.  It includes support for C2 types and dumping of the graph,
the PhaseCFG, the InlineTree and MDOs.  There are a bunch of new
classes to support this but for the most part they are simple mirrors
for their corresponding C++ classes and could be generated directly
from the vmStructs declarations.  About half of the new lines are
copyright notices and Java boilerplate.

The C++ changes consist only of friend declarations and moving
nmethodBucket to the header so it can be described by vmStructs.

This also includes support in the SA for augmenting the type database
of a JVM during reading of a core file and dumping the type database
with a new vmstructdump command.  -Dsun.jvm.hotspot.typedb=<file> will
read <file> after parsing the vmStructs from the child and add any new
definitions to the type database.  The saenv scripts recognize the
environment variable SA_TYPEDB and pass the value in the property to
the invoked VM.  I also augmented the type database logic so that it
can create const and pointer variants of types on the fly so they no
longer need to be declared in vmStructs.cpp.  Additionally I added
support for GrowableArray templating to support reading various data
structures.

I also deleted the win32 and dbx debugger backends since those were
supplanted by the windbg and proc backends.

The webrev itself is quite large but most of the newly added classes
were generated from the vmStructs.cpp declarations or by simple
transliteration of C++ code.  The meaningful bits are all at the
beginning of the webrev.

The replay stuff will be laid on top of these changes.

Tested with sajdi tests.
                                     
2011-09-12



Hardware and Software, Engineered to Work Together