RFR 8209626: [JVMCI] Use implicit exception table for dispatch and printing
Vladimir Kozlov
vladimir.kozlov at oracle.com
Wed Dec 12 22:29:05 UTC 2018
On 12/12/18 1:06 PM, Tom Rodriguez wrote:
> They all look like preexisting failures to me. The CheckGraalIntrinsics one you mentioned in chat and
yes
> compiler/aot/DeoptimizationTest.java which seems to have been failing at least intermittently for a while. What do you
> think?
SIGFPE is new. And I think your changes in sharedRuntime.cpp may affected execution of AOT methods because they are
marked as compiled by Graal (compiler_jvmci):
http://hg.openjdk.java.net/jdk/jdk/file/9e28eff3d40f/src/hotspot/share/aot/aotCompiledMethod.hpp#l131
Vladimir
>
> 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