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