Integrated: 8341407: C2: assert(main_limit == cl->limit() || get_ctrl(main_limit) == new_limit_ctrl) failed: wrong control for added limit

Roland Westrelin roland at openjdk.org
Mon Oct 21 07:39:51 UTC 2024


On Thu, 17 Oct 2024 14:03:44 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.

This pull request has now been integrated.

Changeset: 8f2b23bb
Author:    Roland Westrelin <roland at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/8f2b23bb53e81e3f9d8d84720719d129aea82a78
Stats:     72 lines in 2 files changed: 64 ins; 0 del; 8 mod

8341407: C2: assert(main_limit == cl->limit() || get_ctrl(main_limit) == new_limit_ctrl) failed: wrong control for added limit

Reviewed-by: chagedorn, thartmann

-------------

PR: https://git.openjdk.org/jdk/pull/21564


More information about the hotspot-compiler-dev mailing list