RFR: 8307084: C2: Vectorized drain loop is not executed for some small trip counts [v4]
Emanuel Peter
epeter at openjdk.org
Wed Jan 21 10:52:48 UTC 2026
On Tue, 20 Jan 2026 17:04:27 GMT, Fei Gao <fgao at openjdk.org> wrote:
>> Thanks for the explanations! They sound reasonable to me. Though eventually it would be good if @chhagedorn or @rwestrel looked at this, they are more familiar with this code.
>>
>> One more question here: could it be that one node that you now conservatively pin further down actually already has a use in a predicate further up, and now we'd create a `bad graph` cycle?
>
>> One more question here: could it be that one node that you now conservatively pin further down actually already has a use in a predicate further up, and now we'd create a `bad graph` cycle?
>
> If a node has a `use` that is attached to a predicate further up, then that `use` would also be pinned down to the loop `entry control`. Since we also fix the control of the `use`, which is itself a cloned node, I would expect that we wouldn’t end up creating a bad control-flow cycle. Does that make sense?
But what if such a predicate uses the node as an input? Then the node is pinned below its use.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/22629#discussion_r2712018943
More information about the hotspot-compiler-dev
mailing list