aboutsummaryrefslogtreecommitdiff
path: root/gcc/value-relation.cc
diff options
context:
space:
mode:
authorAndrew MacLeod <amacleod@redhat.com>2022-10-17 19:00:49 -0400
committerAndrew MacLeod <amacleod@redhat.com>2022-10-17 20:58:00 -0400
commit0205fbb91be022055c632973caa95e398b33db39 (patch)
tree322df26899bc722507c163697f4e3e59b2799f2e /gcc/value-relation.cc
parent6237663c17c90bc56bda0e994da835fa0a8d85f8 (diff)
downloadgcc-0205fbb91be022055c632973caa95e398b33db39.zip
gcc-0205fbb91be022055c632973caa95e398b33db39.tar.gz
gcc-0205fbb91be022055c632973caa95e398b33db39.tar.bz2
Merge partial relation precisions properly
When merging 2 groups of PE's, one group was simply being set to the other instead of properly merging them. PR tree-optimization/107273 gcc/ * value-relation.cc (equiv_oracle::add_partial_equiv): Merge instead of copying precison of each member. gcc/testsuite/ * gcc.dg/tree-ssa/pr107273-1.c: New. * gcc.dg/tree-ssa/pr107273-2.c: New.
Diffstat (limited to 'gcc/value-relation.cc')
-rw-r--r--gcc/value-relation.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/value-relation.cc b/gcc/value-relation.cc
index fed8a78..178a245 100644
--- a/gcc/value-relation.cc
+++ b/gcc/value-relation.cc
@@ -380,7 +380,7 @@ equiv_oracle::add_partial_equiv (relation_kind r, tree op1, tree op2)
EXECUTE_IF_SET_IN_BITMAP (pe1.members, 0, x, bi)
{
m_partial[x].ssa_base = op2;
- m_partial[x].code = pe2.code;
+ m_partial[x].code = pe_min (m_partial[x].code, pe2.code);
}
bitmap_set_bit (pe1.members, v2);
return;