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

Vladimir Kozlov kvn at openjdk.org
Wed Oct 12 17:20:09 UTC 2022


On Wed, 12 Oct 2022 16:08:48 GMT, Xin Liu <xliu 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?

I agree. We should test new functionality.

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

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


More information about the hotspot-compiler-dev mailing list