RFR: 8267988: C2: assert(!addp->is_AddP() || addp->in(AddPNode::Base)->is_top() || addp->in(AddPNode::Base) == n->in(AddPNode::Base)) failed: Base pointers must match (addp 1301) [v3]
Vladimir Ivanov
vlivanov at openjdk.java.net
Mon Jun 14 09:35:51 UTC 2021
On Fri, 11 Jun 2021 11:48:00 GMT, Roland Westrelin <roland at openjdk.org> wrote:
> My understanding is that this shouldn't happen. So an assert like: assert(in(AddPNode::Base) == in(AddPNode::Address)->in(AddPNode::Base) || !in(AddPNode::Base)->eqv_uncast(in(AddPNode::Address)->in(AddPNode::Base))?
Yes, that's the invariant currently in place. And you are fixing a bug which breaks it.
My question was about would it take to remove the requirement that bases are the same and replace it with a more relaxed varaint for bases to be equivalent modulo cast nodes (in `Node::eqv_uncast()` sense).
Introducing the assert makes perfect sense.
-------------
PR: https://git.openjdk.java.net/jdk/pull/4387
More information about the hotspot-compiler-dev
mailing list