RFR: 8257848: -XX:CompileCommand=blackhole, * should be diagnostic [v3]

Vladimir Ivanov vlivanov at openjdk.java.net
Mon Dec 7 19:33:37 UTC 2020


On Mon, 7 Dec 2020 19:30:20 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

>> This follows up on retroactive CSR review comments (JDK-8257827). As the result of discussion, it is decided to demote the "blackhole" compile command to diagnostic. Examples:
>> 
>> $ build/linux-x86_64-server-release/images/jdk/bin/java -Xcomp -XX:CompileCommand=quiet -XX:CompileCommand=blackhole,java/lang/Object.toString
>> OpenJDK 64-Bit Server VM warning: Blackhole compile option is diagnostic and must be enabled via -XX:+UnlockDiagnosticVMOptions
>> 
>> $ build/linux-x86_64-server-release/images/jdk/bin/java -Xcomp -XX:+UnlockDiagnosticVMOptions -XX:CompileCommand=quiet -XX:CompileCommand=blackhole,java/lang/Object.toString
>> OpenJDK 64-Bit Server VM warning: Blackhole compile option only works for methods with void type: java.lang.Object.toString()Ljava/lang/String;
>> 
>> New test verifies the locking/unlocking of the command.
>> 
>> Testing:
>>  - [x] ad-hoc `compiler/blackhole` test
>>  - [x] validation runs with JMH
>>  - [ ] runs in `tier1` (needs #1654 to be merged)
>
> Aleksey Shipilev has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains three additional commits since the last revision:
> 
>  - Merge branch 'master' into JDK-8257848-bh-diagnostic
>  - Revert to check_predicate to match other should_* methods
>  - 8257848: -XX:+CompilerCommand=blackhole,* should be diagnostic

Changes requested by vlivanov (Reviewer).

src/hotspot/share/compiler/compilerOracle.cpp line 416:

> 414:     return false;
> 415:   }
> 416:   if (!UnlockDiagnosticVMOptions) {

The check happens too late (during compilation when JIT encounters marked method).

IMO it should happen during command-line parsing at startup: `CompilerOracle::parse_from_line()` or `register_command()` look suitable.

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

PR: https://git.openjdk.java.net/jdk/pull/1674


More information about the hotspot-compiler-dev mailing list