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

Igor Veresov igor.veresov at oracle.com
Mon Sep 22 22:14:44 UTC 2014


Thanks, Vladimir!

igor

On Sep 22, 2014, at 2:39 PM, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:

> Good.
> 
> Vladimir
> 
> On 9/22/14 2:19 PM, Igor Veresov 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
>>>> 
>> 



More information about the hotspot-compiler-dev mailing list