RFR: 8313672: C2: PhaseCCP does not correctly track analysis dependencies involving shift, convert, and mask [v19]

Daniel Lundén duke at openjdk.org
Tue Nov 14 12:57:36 UTC 2023


On Tue, 14 Nov 2023 12:42:26 GMT, Roberto Castañeda Lozano <rcastanedalo at openjdk.org> wrote:

>> src/hotspot/share/opto/node.hpp line 1648:
>> 
>>> 1646:   for (DUIterator_Fast kmax, k = fast_outs(kmax); k < kmax; k++) {
>>> 1647:     Node* out = fast_out(k);
>>> 1648:     if (!visited.test_set(out->_idx)) { worklist.push(out); }
>> 
>> Suggestion:
>> 
>>     visited.set(out->_idx);
>>     worklist.push(out);
>
> Please disregard this suggestion, I see now that you want to handle duplicate direct uses here.

Yes, I moved the visited check from the beginning of the while-loop to where we push to the worklist (suggestion by Emanuel). So now, every node is added at most once to the worklist.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/16429#discussion_r1392544078


More information about the hotspot-compiler-dev mailing list