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