RFR: 8281811: assert(_base == Tuple) failed: Not a Tuple after JDK-8280799
Roland Westrelin
roland at openjdk.java.net
Wed Feb 16 13:35:40 UTC 2022
The crash occurs because a Shenandoah barrier is expanded between the
Start node and its control projection. One of the test cases I added
also shows the same failure with a barrier expansion between a MemBar
and its control projection. The barrier is expanded at the control
that PhaseIdealLoop assigns to it.
This code:
https://github.com/openjdk/jdk/blob/master/src/hotspot/share/opto/loopnode.cpp#L5756
I added back with JDK-8280799 is what's causing the incorrect
placement of the barrier.
The fix I propose is to skip that logic if the loop opts pass is for
barrier expansion as there's no range check elimination then.
-------------
Commit messages:
- test
- fix
Changes: https://git.openjdk.java.net/jdk/pull/7494/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=7494&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8281811
Stats: 88 lines in 3 files changed: 74 ins; 0 del; 14 mod
Patch: https://git.openjdk.java.net/jdk/pull/7494.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/7494/head:pull/7494
PR: https://git.openjdk.java.net/jdk/pull/7494
More information about the hotspot-compiler-dev
mailing list