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