RFR: 8341407: C2: assert(main_limit == cl->limit() || get_ctrl(main_limit) == new_limit_ctrl) failed: wrong control for added limit [v3]
Christian Hagedorn
chagedorn at openjdk.org
Mon Oct 21 06:58:47 UTC 2024
On Fri, 18 Oct 2024 07:30:54 GMT, Roland Westrelin <roland at openjdk.org> wrote:
>> That assert checks that during RC elimination, we have either:
>>
>> - not updated the limit of the main loop
>>
>> - or that the new limit is at the expected control
>>
>> The assert fires because the limit was updated but is not at the
>> expected control. That happens because `new_limit_ctrl` is updated for
>> a test that it attempts to eliminate before it actually proceeds with
>> the elimination: if the test can't be eliminated, `new_limit_ctrl`
>> gets updated anyway.
>>
>> While the assert could, maybe, be relaxed (it fires in this case but
>> nothing is going wrong), it's better, I think, to simply not uselessly
>> restrict the control of the limit.
>
> Roland Westrelin has updated the pull request incrementally with one additional commit since the last revision:
>
> Update src/hotspot/share/opto/loopTransform.cpp
>
> Co-authored-by: Tobias Hartmann <tobias.hartmann at oracle.com>
Looks good to me, too.
-------------
Marked as reviewed by chagedorn (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/21564#pullrequestreview-2381095686
More information about the hotspot-compiler-dev
mailing list