review for 7088955: add C2 IR support to the SA

Vladimir Kozlov vladimir.kozlov at
Fri Sep 9 16:30:52 PDT 2011

Tom Rodriguez wrote:
> On Sep 9, 2011, at 4:16 PM, Vladimir Kozlov wrote:
>> Push it :)
>> What criteria you used to map only some C2 node classes?
> I mapped the ones that seemed important and didn't require extensive work.  We can always add more.  Any in particular you want?

No, for initial push I think it is enough. Do I understand correctly that we 
don't need them for Replay? It is only for debugging compiler threads.

>> I don't see next fields in (may be not needed)
>>  jushort _class_id;
>>  jushort _flags;
> The information in the class_id should match the inheritance so it didn't seem that necessary.  I can at least add the declaration to vmStructs.cpp.


>> and no C2 types.
> Do you mean type.hpp?  I just ran out of stream at that point I think.

Yes, and it is fine to not have it now.


> tom
>> Thanks,
>> Vladimir
>> Tom Rodriguez wrote:
>>> 21066 lines changed: 7246 ins; 13673 del; 147 mod; 29134 unchg
>>> 7088955: add C2 IR support to the SA
>>> Reviewed-by:
>>> 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.

More information about the hotspot-compiler-dev mailing list