RFR(M) 8058744: Crash in C1 OSRed method w/ Unsafe usage
David Chase
david.r.chase at oracle.com
Tue Sep 23 02:21:27 UTC 2014
Looks good to me.
On 2014-09-22, at 5:19 PM, Igor Veresov <igor.veresov at oracle.com> wrote:
> Vladimir, Dave,
>
> Thanks for the reviews. I’ve added tests for multiplication of the index. And extended the comment that Vladimir suggested.
> Webrev: http://cr.openjdk.java.net/~iveresov/8058744/webrev.01/
>
> igor
>
> On Sep 22, 2014, at 12:27 PM, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:
>
>> c1_LIRGenerator.cpp
>>
>> Can you extend next comment explaining why you need such difference?:
>>
>> // Index is a long register or a int constant
>>
>> Otherwise changes are good.
>>
>> Thanks,
>> Vladimir
>>
>> On 9/19/14 8:22 PM, Igor Veresov 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/e4bcb8a5/signature-0001.asc>
More information about the hotspot-compiler-dev
mailing list