Integrated: 8315377: C2: assert(u->find_out_with(Op_AddP) == nullptr) failed: more than 2 chained AddP nodes?

Roland Westrelin roland at openjdk.org
Wed Sep 6 07:28:52 UTC 2023


On Mon, 4 Sep 2023 15:51:34 GMT, Roland Westrelin <roland at openjdk.org> wrote:

> `PhaseIdealLoop::try_sink_out_of_loop()` has special logic to handle
> `AddP` nodes so, after it has been processed, all nodes in the chain
> of `AddP` nodes still have the same base input. That logic assumes a
> chain is only composed of at most 2 nodes. That's not true because
> `PhaseIdealLoop::remix_address_expressions()` can cause longer chains
> to exist. There's actually no clear upper bound on the number of nodes
> in such a chain. The fix I propose here is simply to extend the logic
> in `PhaseIdealLoop::try_sink_out_of_loop()` to handle arbitrary
> chains.

This pull request has now been integrated.

Changeset: ba1a4639
Author:    Roland Westrelin <roland at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/ba1a46392f0b9c77c64278f82513aaf51f5c9b1b
Stats:     106 lines in 3 files changed: 94 ins; 6 del; 6 mod

8315377: C2: assert(u->find_out_with(Op_AddP) == nullptr) failed: more than 2 chained AddP nodes?

Reviewed-by: chagedorn, kvn, thartmann

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

PR: https://git.openjdk.org/jdk/pull/15562


More information about the hotspot-compiler-dev mailing list