-
Enhancement
-
Resolution: Fixed
-
P4
-
24
-
b08
The long-standing behavior of the `exclude` CompileCommand is to also apply to inlined versions of a method. On the other hand, the `compileonly` CompileCommand only affects top-level compilations of a method and not its inlining behavior.
The rational behind this decision is that `exclude` is intended to be used in production to workaround compiler crashes or bad compilations for certain methods and in these scenarios it usually doesn't matter if a "bad" method is getting compiled on the top level or if it gets inlined into another compilation unit.
The "inconsistent inlining behavior with CompileOnly" thread on hotspot-compiler-dev discusses this behavior (see [1]). The answer [2] specifically describes this long-standing behavior.
I think it would be good to document this behavior in the output of `-XX_CompileCommand=help`
[1] https://mail.openjdk.org/pipermail/hotspot-compiler-dev/2016-June/thread.html#23575
[2] https://mail.openjdk.org/pipermail/hotspot-compiler-dev/2016-June/023583.html
The rational behind this decision is that `exclude` is intended to be used in production to workaround compiler crashes or bad compilations for certain methods and in these scenarios it usually doesn't matter if a "bad" method is getting compiled on the top level or if it gets inlined into another compilation unit.
The "inconsistent inlining behavior with CompileOnly" thread on hotspot-compiler-dev discusses this behavior (see [1]). The answer [2] specifically describes this long-standing behavior.
I think it would be good to document this behavior in the output of `-XX_CompileCommand=help`
[1] https://mail.openjdk.org/pipermail/hotspot-compiler-dev/2016-June/thread.html#23575
[2] https://mail.openjdk.org/pipermail/hotspot-compiler-dev/2016-June/023583.html
- relates to
-
JDK-8071652 -XX:CompileOnly does not behave as documented
- Resolved
-
JDK-8160548 Inconsistent inlining behavior with CompileOnly
- Resolved
- links to
-
Commit(master) openjdk/jdk/84bc4767
-
Review(master) openjdk/jdk/20142