RFR(M) 8058744: Crash in C1 OSRed method w/ Unsafe usage

David Chase david.r.chase at oracle.com
Mon Sep 22 14:50:36 UTC 2014

Since you have code that checks for integer multiply instead of shifting, does it make
sense to also attempt some tests that would use an integer multiply?  I assume we might
be pretty well assured that constant multiplies by four will get filtered out, but it seems
like a good case for belt-and-suspenders — such code might be activated by some future
change in the compiler.

Otherwise, it looked okay to me (not a Reviewer).

On 2014-09-19, at 11:22 PM, Igor Veresov <igor.veresov at oracle.com> wrote:

> C1 tries to pattern-match argument computation for UnsafeRawOp nodes in order to fold it into an address expression. The original problem is that it had a bug that made it match any shift, instead of only a left shift. But many aspects of this optimization was not entirely correct for 64-bit. It had a bunch of point-fixes in the LIR emitter, but I found a bunch of other problems. I also refactored it a bit, to make it more easier to reason about. 
> Webrev: http://cr.openjdk.java.net/~iveresov/8058744/webrev.00/
> JBS: https://bugs.openjdk.java.net/browse/JDK-8058744
> Thanks,
> igor

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20140922/60b19ef1/signature.asc>

More information about the hotspot-compiler-dev mailing list