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
Tue Jun 15 08:39:42 UTC 2021


On Mon, 14 Jun 2021 09:33:08 GMT, Vladimir Ivanov <vlivanov at openjdk.org> wrote:

> 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).

I'm not sure. I suppose it would require changes to several places and also that some transformations might not trigger or trigger incorrectly. Some of those might be silent (c2 wouldn't crash) but lead to slightly poorer code. So it might prove hard to gain sufficient confidence that a fix is complete. That's why I would rather go with the local fix.

> Introducing the assert makes perfect sense.

I added an assert and reworked the comment.

This will have to be fixed in 17 but I suppose it's easier to finish the review here first.

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

PR: https://git.openjdk.java.net/jdk/pull/4387


More information about the hotspot-compiler-dev mailing list