RFR: 8270307: C2: assert(false) failed: bad AD file after JDK-8267687

Yi Yang yyang at openjdk.java.net
Thu Jul 15 14:42:28 UTC 2021


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.

-------------

Commit messages:
 - crash

Changes: https://git.openjdk.java.net/jdk/pull/4796/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=4796&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8270307
  Stats: 62 lines in 2 files changed: 62 ins; 0 del; 0 mod
  Patch: https://git.openjdk.java.net/jdk/pull/4796.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/4796/head:pull/4796

PR: https://git.openjdk.java.net/jdk/pull/4796


More information about the hotspot-compiler-dev mailing list