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