RFR: 8256385: C2: fatal error: modified node is not on IGVN._worklist
Tobias Hartmann
thartmann at openjdk.java.net
Tue Nov 17 08:54:19 UTC 2020
`PhaseIdealLoop::find_safepoint` creates a temporary MergeMemNode that is not removed if we bail out from the optimization early (see `return NULL` statements). The fix is to simply add the MergeMem to the worklist to make sure it is always reclaimed by IGVN.
Interestingly this code path was not triggered by any of our tests but only with a test case generated by the Java Fuzzer. I've added a simplified version of that test case.
Thanks,
Tobias
-------------
Commit messages:
- 8256385: C2: fatal error: modified node is not on IGVN._worklist
Changes: https://git.openjdk.java.net/jdk/pull/1252/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=1252&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8256385
Stats: 55 lines in 2 files changed: 55 ins; 0 del; 0 mod
Patch: https://git.openjdk.java.net/jdk/pull/1252.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/1252/head:pull/1252
PR: https://git.openjdk.java.net/jdk/pull/1252
More information about the hotspot-compiler-dev
mailing list