review for 7088955: add C2 IR support to the SA

Tom Rodriguez tom.rodriguez at oracle.com
Mon Sep 12 12:56:32 PDT 2011


That should have caused the JVM to abort, but the changes I gave to Coleen as part of the Symbol changes broke the assertion checking.  I filed 7089709.

tom

On Sep 12, 2011, at 2:34 AM, Christian Thalinger wrote:

> 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