review for 7088955: add C2 IR support to the SA
tom.rodriguez at oracle.com
Fri Sep 9 16:24:46 PDT 2011
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?
> I don't see next fields in Node.java (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.
> Tom Rodriguez wrote:
>> 21066 lines changed: 7246 ins; 13673 del; 147 mod; 29134 unchg
>> 7088955: add C2 IR support to the SA
>> 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
>> 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