RFR 8209626: [JVMCI] Use implicit exception table for dispatch and printing

Tom Rodriguez tom.rodriguez at oracle.com
Wed Dec 12 21:06:28 UTC 2018


They all look like preexisting failures to me.  The CheckGraalIntrinsics 
one you mentioned in chat and compiler/aot/DeoptimizationTest.java which 
seems to have been failing at least intermittently for a while.  What do 
you think?

It does make me wonder if AOT needs any extra support to use the 
implicit exception table.  I would assume we'd be seeing problems if 
that was the case but don't really know.

tom

Vladimir Kozlov wrote on 12/12/18 11:12 AM:
> 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