RFR: 8354282: C2: more crashes in compiled code because of dependency on removed range check CastIIs [v8]
Roland Westrelin
roland at openjdk.org
Fri Dec 5 14:05:10 UTC 2025
On Tue, 2 Dec 2025 17:41:37 GMT, Quan Anh Mai <qamai at openjdk.org> wrote:
>> Ok, I now read the PR from the top, and not just recent changes. If one were to start reading from the top, it would be clear without my suggestions here. But I think it could still be good to apply something about letting the Cast float to where we would hoist the RC.
>
> Naming is hard, but it is worth pointing out in the comment that floating here refers to `depends_only_on_test`. In other words, a cast is considered floating if it is legal to change the control input of a cast from an `IfTrue` or `IfFalse` to an `IfTrue` and `IfFalse` that dominates the current control input, and the corresponding conditions of the `If`s are the same. In contrast, we cannot do that for a pinned cast, and if the control is folded away, the control input of the pinned cast is changed to the control predecessor of the folded node.
>
> It is also worth noting that we have `Node::pinned` which means the node is pinned AT the control input while pinned here means that it is pinned UNDER the control input. Very confusing!
I added a mention of `depends_only_on_test`. Is that good enough?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/24575#discussion_r2592784214
More information about the shenandoah-dev
mailing list