RFR (M): 7177003 C1: LogCompilation support
Christian Thalinger
christian.thalinger at oracle.com
Thu Sep 27 15:15:08 PDT 2012
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