RFR: 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
Thu Oct 17 14:08:30 UTC 2024
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.
-------------
Commit messages:
- more
- more
- more
Changes: https://git.openjdk.org/jdk/pull/21564/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=21564&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8341407
Stats: 73 lines in 2 files changed: 64 ins; 1 del; 8 mod
Patch: https://git.openjdk.org/jdk/pull/21564.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/21564/head:pull/21564
PR: https://git.openjdk.org/jdk/pull/21564
More information about the hotspot-compiler-dev
mailing list