RFR: 8281811: assert(_base == Tuple) failed: Not a Tuple after JDK-8280799 [v3]
Tobias Hartmann
thartmann at openjdk.java.net
Tue Mar 1 14:01:05 UTC 2022
On Mon, 28 Feb 2022 12:42:28 GMT, Roland Westrelin <roland at openjdk.org> wrote:
>> 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.
>
> Roland Westrelin has updated the pull request incrementally with one additional commit since the last revision:
>
> merge error
Okay, thanks for the explanation. Looks good to me.
-------------
Marked as reviewed by thartmann (Reviewer).
PR: https://git.openjdk.java.net/jdk/pull/7494
More information about the hotspot-compiler-dev
mailing list