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