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