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]
Roland Westrelin
roland at openjdk.java.net
Fri Jun 11 11:50:51 UTC 2021
On Thu, 10 Jun 2021 14:50:05 GMT, Vladimir Ivanov <vlivanov at openjdk.org> wrote:
> A more general question: does it make sense to migrate away from pointer equality (`in(AddPNode::Base) == in(AddPNode::Address)->in(AddPNode::Base)`) to `Node::eqv_uncast()` (`in(AddPNode::Base)->eqv_uncast(in(AddPNode::Address)->in(AddPNode::Base))`) when checking the shape of address computation? If it is doable, it would avoid the whole class of related bugs.
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))?
-------------
PR: https://git.openjdk.java.net/jdk/pull/4387
More information about the hotspot-compiler-dev
mailing list