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

Vladimir Kozlov vladimir.kozlov at oracle.com
Mon Sep 22 19:27:09 UTC 2014


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