RFR: 8270307: C2: assert(false) failed: bad AD file after JDK-8267687
Tobias Hartmann
thartmann at openjdk.java.net
Fri Jul 16 13:03:50 UTC 2021
On Thu, 15 Jul 2021 14:33:07 GMT, Yi Yang <yyang at openjdk.org> wrote:
> One input of ConvI2L becomes Top, which causes all nodes in the chain becoming Top, but this CMoveLNode does not change, only its input becomes Top.
>
>
> Pop 2146 CMoveL === _ 351 1 2149 [[ 2182 2187 ]] Type:long !orig=810,696,[439],288 !jvms: Test::vMeth @ bci:78 (line 8)
> BreakAtNode: _idx=2461 _debug_idx=102702461 orig._idx=2146 orig._debug_idx=92502146
> < < 2146 CMoveL === _ _ 1 _ [[]] Type:long !orig=810,696,[439],288 !jvms: Test::vMeth @ bci:78 (line 8)
>> long 2461 CMoveL === _ 2458 2149 1 [[ 2187 2182 ]] Type:long !orig=2146,810,696,[439],288 !jvms: Test::vMeth @ bci:78 (line 8)
>
>
> This CMoveLNode(CMove Binary(.. ..) (Binary .. Con#Top)) can not match any rules in instruction selection phase and finally hits the assert.
Since this is targeted for JDK 17, the PR needs to be opened on the JDK 17 repo. Also, you need to request approval https://openjdk.java.net/jeps/3#Fix-Request-Process
-------------
PR: https://git.openjdk.java.net/jdk/pull/4796
More information about the hotspot-compiler-dev
mailing list