RFR: 8257630: C2: ReplacedNodes doesn't handle non-CFG multi nodes
Vladimir Ivanov
vlivanov at openjdk.java.net
Fri Dec 4 07:38:56 UTC 2020
On Fri, 4 Dec 2020 07:24:34 GMT, Tobias Hartmann <thartmann at openjdk.org> wrote:
>> When looking up an immediate CFG node, ReplacedNodes assumes that control input is always a CFG node.
>> It's not always the case: for example, a projection on a non-CFG multi node (`SCMemProj` and `LoadStore` respectively).
>>
>> Proposed fix is to skip projection nodes first before checking for CFG.
>>
>> Testing:
>> - [x] hs-tier1-6 w/ -XX:+AlwaysIncrementalInlining
>
> src/hotspot/share/opto/replacednodes.cpp line 157:
>
>> 155: if (n->is_Proj()) {
>> 156: n = n->in(0);
>> 157: }
>
> I would suggest to merge this with the if below and adjust the comment to something like:
> `// Skip non-CFG nodes. Also skip projections, since some of the multi nodes aren't CFG (e.g., LoadStore and SCMemProj).`
I considered that, but it would turn it into a while loop. Do you think it is worth it?
-------------
PR: https://git.openjdk.java.net/jdk/pull/1580
More information about the hotspot-compiler-dev
mailing list