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