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

Joshua Cao duke at openjdk.org
Wed Oct 12 01:38:59 UTC 2022


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.

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

Commit messages:
 - BooleanTest does not rely on PrintCompilation
 - 8255746: Make PrintCompilation available on a per method level

Changes: https://git.openjdk.org/jdk/pull/10668/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=10668&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8255746
  Stats: 53 lines in 4 files changed: 8 ins; 41 del; 4 mod
  Patch: https://git.openjdk.org/jdk/pull/10668.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/10668/head:pull/10668

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


More information about the hotspot-compiler-dev mailing list