RFR (M): 7177003 C1: LogCompilation support

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Fri Sep 28 05:08:30 PDT 2012


Chris,

Nice code cleanup!
How about that? [1]

Best regards,
Vladimir Ivanov

[1] http://cr.openjdk.java.net/~vlivanov/7177003/webrev.02

On 09/28/12 02:15, Christian Thalinger wrote:
> 
> On Sep 26, 2012, at 8:13 AM, Vladimir Ivanov <vladimir.x.ivanov at oracle.com> wrote:
> 
>> Thank you, Vladimir and Chris.
>>
>> Here are updated changes [1]:
>> 	- merged with the latest changes in hotspot-comp
>> 	- removed intx->int conversion as you suggested
>> 	- removed "receiver is statically known" message from PrintInlining
>> output, but left in it the log
> 
> Looking at this code:
> 
>  void GraphBuilder::print_inlining(ciMethod* callee, const char* msg, bool success) {
> 
> +  CompileLog* log = compilation()->log();
> +  if (log != NULL) {
> +    if (success) {
> +      if (strcmp(msg,"") != 0)
> +        log->inline_success(msg);
> +      else
> +        log->inline_success("receiver is statically known");
> +    } else {
> +      log->inline_fail(msg);
> +    }
> +  }
> +
> 
>    if (!PrintInlining)  return;
>    assert(msg != NULL, "must be");
>    CompileTask::print_inlining(callee, scope()->level(), bci(), msg);
>    if (success && CIPrintMethodCodes) {
>      callee->print_codes();
> 
> I noticed that we now can pass in NULL as msg since CompileTask::print_inlining takes care of that (the code before I moved it to CompileTask probably didn't and that's why the assert is there).
> 
> I suggest to remove the above assert, default GraphBuilder::print_inlining's msg argument to NULL and change:
> 
> -    print_inlining(callee, "");
> +    print_inlining(callee);
> 
> Then we can get rid of the strcmp as well.
> 
> -- Chris
> 
>>
>> Best regards,
>> Vladimir Ivanov
>>
>> [1] http://cr.openjdk.java.net/~vlivanov/7177003/webrev.01/
>>
>> On 09/26/12 02:47, Vladimir Kozlov wrote:
>>> Good changes!
>>>
>>> Small thing: in method.cpp and deoptimization.cpp remove (int) cast from
>>> os::current_thread_id() if you want tou use UINTX format (it reads 64bit
>>> in 64b VM).
>>>
>>> Thanks,
>>> Vladimir
>>>
>>> Vladimir Ivanov wrote:
>>>> 7177003: C1: LogCompilation support
>>>> http://cr.openjdk.java.net/~vlivanov/7177003/
>>>>
>>>> LogCompilation support in C1 - both client [1] and tiered [2] modes.
>>>>
>>>> These changes are only for Hotspot. LogCompilation tool changes will
>>>> be sent separately.
>>>>
>>>> Also:
>>>>    - print code cache state (after each nmethod installation)
>>>>      Example:
>>>>     <code_cache
>>>>        total_blobs='258'
>>>>        nmethods='50'
>>>>        adapters='133'
>>>>        free_code_cache='98839808'
>>>>        largest_free_block='98832512'/>
>>>>
>>>>    - consistent nmethod numbering between ordinary and OSR compilations
>>>>    - correct printing of thread id's
>>>>    - added missed tty locks where necessary
>>>>
>>>> Thanks!
>>>>
>>>> Best regards,
>>>> Vladimir Ivanov
>>>>
>>>> PS: actually, if it simplifies review, I can send cleanup/small
>>>> enhancements as a separate change.  
>>>> PPS: phew! Finally deciphered how deoptimization in C1 works =)
>>>>
>>>> [1]
>>>> http://cr.openjdk.java.net/~vlivanov/7177003/webrev.00/compilation.client.log
>>>>
>>>> [2]
>>>> http://cr.openjdk.java.net/~vlivanov/7177003/webrev.00/compilation.tiered.log
>>>>
> 


More information about the hotspot-compiler-dev mailing list