review for 7088955: add C2 IR support to the SA

Tom Rodriguez tom.rodriguez at
Fri Sep 9 17:08:16 PDT 2011

On Sep 9, 2011, at 4:30 PM, Vladimir Kozlov wrote:

> 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.

The post mortem replay stuff uses the SA's support for the CI to build replay but these changes are all just targeted at debugging the compiler.


>>> 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.
> OK.
>>> 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.
> Thanks,
> Vladimir
>> 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