[jdk17] RFR: 8269746: C2: assert(!in->is_CFG()) failed: CFG Node with no controlling input?
Roland Westrelin
roland at openjdk.java.net
Wed Jul 7 07:45:00 UTC 2021
The backedge and the exit test of an inner strip mined loop are
removed. A safepoint is right above the inner loop exit test when that
happens. The outer strip mined loop safepoint is then processed by
igvn which finds the other safepoint. This causes the outer loop
safepoint to be replaced by the safepoint that was in the inner
loop. Then the outer loop back edge is removed by igvn. This is done
by replacing the loop exit by the control of the outer loop
safepoint. Given the outer loop safepoint was replaced by a dominating
safepoint, that logic replaces the oiter loop exit with the dominating
safepoint control input. That must be harmless most of the time, but
in this particular case a Store was between the 2 safepoints. That
Store is still reachable in the graph but its control is not.
-------------
Commit messages:
- fix
Changes: https://git.openjdk.java.net/jdk17/pull/222/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk17&pr=222&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8269746
Stats: 8 lines in 1 file changed: 6 ins; 0 del; 2 mod
Patch: https://git.openjdk.java.net/jdk17/pull/222.diff
Fetch: git fetch https://git.openjdk.java.net/jdk17 pull/222/head:pull/222
PR: https://git.openjdk.java.net/jdk17/pull/222
More information about the hotspot-compiler-dev
mailing list