RFR: 8173100: AArch64: -XX:-UseOnStackReplacement does not work together with -XX:+TieredCompilation.
Ningsheng Jian
ningsheng.jian at linaro.org
Thu Mar 15 07:42:19 UTC 2018
(Resend of [1])
Hi,
Please help to review this fix.
Bug: https://bugs.openjdk.java.net/browse/JDK-8173100
Webrev: http://cr.openjdk.java.net/~njian/8173100/webrev.01/
JDK-8159620 included a test case
compiler/interpreter/DisableOSRTest.java which exposes the same issue
on AArch64. Basically, if we specify -XX:-UseOnStackReplacement and
-XX:+TieredCompilation (default) options, there are still OSR
compilations found.
The root cause is that, even with -UseOnStackReplacement, interpreter
will still count the backedge and jump to backedge_counter_overflow to
request an OSR compilation.
With correct label passed to increment_mask_and_jump, it will either
jump to OSR or dispatch to next target instruction. This fix also
covers an old fix of [2] and makes the code align with x86 code (On
x86, the increment_mask_and_jump just jumps to the next instruction if
backedge_counter_overflow is not generated, so no such issue then.)
JTreg tests passed.
[1] http://mail.openjdk.java.net/pipermail/aarch64-port-dev/2017-January/004119.html
[2] http://mail.openjdk.java.net/pipermail/aarch64-port-dev/2014-February/000764.html
Thanks,
Ningsheng
More information about the hotspot-compiler-dev
mailing list