review for 7088955: add C2 IR support to the SA
Christian Thalinger
christian.thalinger at oracle.com
Mon Sep 12 02:34:42 PDT 2011
I get these two lines printed by vmStructs.cpp when running a debug VM:
type "jushort" not found
type "jushort" not found
Seems like it's coming from:
c2_nonstatic_field(Node, _class_id, jushort) \
c2_nonstatic_field(Node, _flags, jushort) \
-- Christian
On Sep 10, 2011, at 2:10 AM, Vladimir Kozlov wrote:
> Than you, Tom.
>
> This looks good.
>
> Vladimir
>
> Tom Rodriguez wrote:
>> 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.
>> tom
>>>>> 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.
>>> 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:
>>>>>> http://cr.openjdk.java.net/~never/7088955
>>>>>> 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