RFR: 8143219: AArch64 broken by 8141132: JEP 254: Compact Strings
Tobias Hartmann
tobias.hartmann at oracle.com
Tue Nov 24 10:20:05 UTC 2015
Hi Andrew,
On 24.11.2015 10:35, Andrew Haley wrote:
> Incidentally, why is the range check done in LibraryCallKit? I thought
> we were moving to writing such checks in Java.
I don't think we have a general rule. In this case, I decided to move the range checks into the intrinsics because there are some problems with range checks in the Java code. For example with JDK-8142303, the Java range check is not compiled and C2 compilation crashes because an invalid, constant array index is propagated to the intrinsic (see my description in the RFR [1]). Other problems include JDK-6675699 [2] where we fail because there is no dependency between the range check and the ConvI2L node. And in general, there is always the risk that someone uses an intrinsic without the range-check wrapper, causing runtime exceptions that are hard to debug.
Best,
Tobias
[1] http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2015-November/019834.html
[2] https://bugs.openjdk.java.net/browse/JDK-6675699
More information about the hotspot-dev
mailing list