RFR: 8351938: C2: Print compilation bailouts with PrintCompilation compile command

Christian Hagedorn chagedorn at openjdk.org
Fri Mar 14 09:40:55 UTC 2025


On Thu, 13 Mar 2025 18:15:39 GMT, Galder Zamarreño <galder at openjdk.org> wrote:

>> We currently only print a compilation bailout with `-XX:+PrintCompilation`:
>> 
>> 7782 90 b 4 Test::main (19 bytes)
>> 7792 90 b 4 Test::main (19 bytes) COMPILE SKIPPED: StressBailout
>> 
>> But not when using `-XX:CompileCommand=printcompilation,*::*`. This patch enables this.
>> 
>> Thanks,
>> Christian
>
> src/hotspot/share/compiler/compileBroker.cpp line 2377:
> 
>> 2375:       CompilationLog::log()->log_failure(thread, task, failure_reason, retry_message);
>> 2376:     }
>> 2377:     if (PrintCompilation || task->directive()->PrintCompilationOption) {
> 
> Sounds like a good idea, but is this the only place where we want to do something when either `-XX:+PrintCompilation` or `-XX:CompileCommand=printcompilation,*::*` is set? IOW, shouldn't other checks for `PrintCompilation` also take `-XX:CompileCommand=printcompilation,*::*` into account?
> 
> E.g. line 2182 above does:
> 
> 
>   if (directive->PrintCompilationOption) {
>     ResourceMark rm;
>     task->print_tty();
>   }
> 
> 
> Shouldn't that be:
> 
> 
> if (PrintCompilation || directive->PrintCompilationOption) {
>    ...
> }

I totally agree that there are other places where we have this mismatch - there are actually quite a few. This might require some more effort. I suggest to move forward with this small patch and file a separate RFE for revisiting other uses. What you do you think?

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/24031#discussion_r1995237381


More information about the hotspot-compiler-dev mailing list