RFR: 8361608: C2: assert(opaq->outcnt() == 1 && opaq->in(1) == limit) failed [v2]
Marc Chevalier
mchevalier at openjdk.org
Mon Oct 6 14:35:42 UTC 2025
On Mon, 6 Oct 2025 13:07:49 GMT, Christian Hagedorn <chagedorn at openjdk.org> wrote:
> We hit this assert in the past due to bugs ([link](https://bugs.openjdk.org/issues/?jql=text%20~%20%22%5C%22opaq-%3Eoutcnt()%20%3D%3D%201%5C%22%22)).
I might misunderstand, but some of these issues (for instance [JDK-8298353](https://bugs.openjdk.org/browse/JDK-8298353) and backport, duplicate...) seems purely to be hitting the assert, and I don't always see another problem. I wonder if it has been years we are trying to make the assert truer while it doesn't really need to hold (and indeed, it has no reason to hold in general).
Actually, the part `opaq->outcnt() == 1` is fine in this PR, but the other half `opaq->in(1) == limit` is what makes the assert fail here, and in quite some other issues. This is also the half that is the least useful. The first part of the assert is the one that I see used as an argument that what we do is reasonable.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/27586#issuecomment-3372008684
More information about the hotspot-compiler-dev
mailing list