RFR: 8288303: C1: Miscompilation due to broken Class.getModifiers intrinsic [v2]
Dean Long
dlong at openjdk.java.net
Tue Jun 14 06:57:42 UTC 2022
On Mon, 13 Jun 2022 17:14:19 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:
>> Looks like another instance when compilicated control flow in C1 LIR intrinsic confuses the C1 regalloc into miscompiling. Reliably reproduces on selected JFR tests in selected configurations, and I was unable to reproduce it in smaller test.
>>
>> Additional testing:
>> - [x] JFR reproducers now pass
>> - [x] Linux x86_64 fastdebug `tier1`
>> - [x] Linux x86_32 fastdebug `tier1`
>> - [x] Linux x86_64 fastdebug `tier2`
>> - [x] Linux x86_32 fastdebug `tier2`
>
> Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision:
>
> Add test
The change looks OK. However, it does seem useful for an intrinsic to be able to use "local" labels that won't confuse the register allocator. That seems better than using a less-efficient cmove or having to write the intrinsic at the LIRAssembler level.
-------------
Marked as reviewed by dlong (Reviewer).
PR: https://git.openjdk.org/jdk19/pull/8
More information about the hotspot-compiler-dev
mailing list