RFR: 8255746: Make PrintCompilation available on a per method level

Xin Liu xliu at openjdk.org
Wed Oct 12 16:11:14 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.

test/lib-test/jdk/test/whitebox/vm_flags/BooleanTest.java line 71:

> 69:     }
> 70: 
> 71:     private static void testFunctional(boolean value) throws Exception {

Since this test has been there, why don't you adapt it to test your per-method PrintCompilation?

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

PR: https://git.openjdk.org/jdk/pull/10668


More information about the hotspot-compiler-dev mailing list