RFR: 8308103: Massive (up to ~30x) increase in C2 compilation time since JDK 17

Vladimir Kozlov kvn at openjdk.org
Tue Jul 11 16:07:56 UTC 2023


On Tue, 11 Jul 2023 14:18:09 GMT, Roland Westrelin <roland at openjdk.org> wrote:

>> src/hotspot/share/opto/loopopts.cpp line 1704:
>> 
>>> 1702:                   cast = prev;
>>> 1703:                 } else {
>>> 1704:                   register_new_node(cast, x_ctrl);
>> 
>> Can you move creation of `cast` here so you don't need to destroy it in case of previous cast existance?
>> Or it is possible that `ConstraintCastNode::make_cast_for_type() can return `null`?
>
> Thanks for looking at this, Vladimir.
> I'm not sure I understand what you're suggesting. Is it to not allocate a new node so it doesn't have to be destroyed if an identical node exist? But without a node it's not possible to rely on IGVN hashing?

You are right. Using hash to look for existing node is smart.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/14732#discussion_r1259956220


More information about the hotspot-compiler-dev mailing list