We miss comparing base/clique so restrict vs. non-restrict refs
appear the same.
Bootstrapped and tested on x86_64-unknown-linux-gnu, stumbled over
when working on PRs 128637 and friends, no actual testcase.
Will push after givin Sashiko a chance to review.
* tree-ssa-sccvn.cc (vn_reference_eq): When lexically comparing
also compare base and clique.
---
gcc/tree-ssa-sccvn.cc | 2 ++
1 file changed, 2 insertions(+)
diff --git a/gcc/tree-ssa-sccvn.cc b/gcc/tree-ssa-sccvn.cc
index 82262c11c71..8dd1c92c44b 100644
--- a/gcc/tree-ssa-sccvn.cc
+++ b/gcc/tree-ssa-sccvn.cc
@@ -936,6 +936,8 @@ vn_reference_eq (const_vn_reference_t const vr1,
const_vn_reference_t const vr2,
|| ! TYPE_SIZE (vro2->type)
|| ! operand_equal_p (TYPE_SIZE (vro1->type),
TYPE_SIZE (vro2->type))))
+ || vro1->clique != vro2->clique
+ || vro1->base != vro2->base
|| (get_deref_alias_set (vro1->opcode == MEM_REF
? TREE_TYPE (vro1->op0)
: TREE_TYPE (vro1->op2))
--
2.51.0