RFR 8209626: [JVMCI] Use implicit exception table for dispatch and printing
Vladimir Kozlov
vladimir.kozlov at oracle.com
Wed Dec 12 19:12:10 UTC 2018
Tom,
Some tests failed.
Thanks,
Vladimir
On 12/12/18 10:42 AM, Tom Rodriguez wrote:
> http://cr.openjdk.java.net/~never/8209626/webrev
> https://bugs.openjdk.java.net/browse/JDK-8209626
>
> Graal handles implicit exceptions by deoptimizing and that's currently done in a way that's hard to understand from the
> PrintNMethods output. Basically there's just an extra PcDesc at the implicit check location and the runtime assumes that
> a fault with a PcDesc underneath it an implicit check. This changes JVMCI to use the implicit exception table to mark
> these locations specially which simplifies the dispatching and printing. The new print output looks like this:
>
> 0x0000000120f053a0: mov DWORD PTR [rsp-0x14000],eax
> 0x0000000120f053a7: sub rsp,0x18
> 0x0000000120f053ab: mov QWORD PTR [rsp+0x10],rbp ;*aload_0 {reexecute=1 rethrow=0 return_oop=0}
> ; - java.lang.StringLatin1::equals at 0 (line 94)
>
> 0x0000000120f053b0: mov eax,DWORD PTR [rsi+0xc] ; implicit exception: deoptimizes
> ; ImmutableOopMap{rdx=Oop rsi=Oop }
> ;*aload_0 {reexecute=1 rethrow=0 return_oop=0}
> ; - java.lang.StringLatin1::equals at 0 (line 94)
>
> 0x0000000120f053b3: mov r10d,DWORD PTR [rdx+0xc] ; implicit exception: deoptimizes
> ; ImmutableOopMap{rdx=Oop rsi=Oop }
>
> The scope information is still printed in the normal original location. This has been in use with JVMCI 8 for several
> months.
>
> tom
More information about the hotspot-compiler-dev
mailing list