RFR: 8303279: C2 Compiler crash (triggered by Kotlin 1.8.10)
Roland Westrelin
roland at openjdk.org
Tue Jun 27 14:48:33 UTC 2023
The crash occurs because at split if during IGVN, a `SubTypeCheck` is
created with null as input. That happens because the control path the
`SubTypeCheck` is cloned for is dead. To fix that I propose delaying
split if until dead paths are collapsed.
I added an assert to check a nullable first input to `SubTypeCheck`
nodes (which should be impossible because it should be null
checked). When I ran testing, a number of cases showed up with known
non null values non properly marked as non null. I fixed them.
-------------
Commit messages:
- fix & test
Changes: https://git.openjdk.org/jdk/pull/14678/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=14678&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8303279
Stats: 103 lines in 6 files changed: 89 ins; 1 del; 13 mod
Patch: https://git.openjdk.org/jdk/pull/14678.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/14678/head:pull/14678
PR: https://git.openjdk.org/jdk/pull/14678
More information about the hotspot-compiler-dev
mailing list