diff options
author | Andrew MacLeod <amacleod@redhat.com> | 2022-10-17 19:00:49 -0400 |
---|---|---|
committer | Andrew MacLeod <amacleod@redhat.com> | 2022-10-17 20:58:00 -0400 |
commit | 0205fbb91be022055c632973caa95e398b33db39 (patch) | |
tree | 322df26899bc722507c163697f4e3e59b2799f2e /gcc/value-relation.cc | |
parent | 6237663c17c90bc56bda0e994da835fa0a8d85f8 (diff) | |
download | gcc-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.cc | 2 |
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; |