RFR: 8255746: Make PrintCompilation available on a per method level
Christian Hagedorn
chagedorn at openjdk.org
Wed Oct 12 07:30:47 UTC 2022
On Wed, 12 Oct 2022 01:31:45 GMT, Joshua Cao <duke at openjdk.org> wrote:
> Example:
>
>
> [~/jdk/jdk]$ build/linux-x86_64-server-fastdebug/jdk/bin/java -XX:CompileCommand=PrintCompilation,java.lang.String::length Hello
> CompileCommand: PrintCompilation java/lang/String.length bool PrintCompilation = true
> 223 12 3 java.lang.String::length (11 bytes)
> 405 307 4 java.lang.String::length (11 bytes)
> hello world
>
>
> Running `java -XX:+PrintCompilation` still prints every method. This change also moves the declaration of `elapsedTimer`, but it should have insignificant impact on actual elapsed time.
>
> ---
>
> Additionally, I make a change to `test/lib-test/jdk/test/whitebox/vm_flags/BooleanTest.java` so that it does not depend on PrintCompilation. The test was failing because it updates global `PrintCompilation` during the middle of the run, but this does not change the value of `PrintCompilationOption` for individual CompileTask directives.
>
> I modified the test so that it is similar to other [WhiteBox vm_flag test](https://github.com/openjdk/jdk/tree/master/test/lib-test/jdk/test/whitebox/vm_flags). It still tests `VmFlagTest.WHITE_BOX::get/setBooleanVMFlag`, without having to depend on the behavior on the specific flag.
That's a nice improvement which will also be beneficial for the IR framework. At the moment, the IR framework just prints all methods with `PrintCompilation`. Fine-tuning the VM to only print the methods on which we IR match on would improve the performance.
src/hotspot/share/compiler/compileBroker.cpp line 2138:
> 2136: task->print_tty();
> 2137: }
> 2138: elapsedTimer time;
Shouldn't this timer start at the very top of the method? Printing needs time but it kinda adds to the compilation time, so it's probably not wrong to count that time as well when explicitly using print flags.
-------------
PR: https://git.openjdk.org/jdk/pull/10668
More information about the hotspot-compiler-dev
mailing list