From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1011) id 7DFB03858297; Wed, 3 Aug 2022 19:37:32 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7DFB03858297 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Andrew Macleod To: gcc-cvs@gcc.gnu.org Subject: [gcc r13-1952] Do not walk equivalence set in path_oracle::killing_def. X-Act-Checkin: gcc X-Git-Author: Andrew MacLeod X-Git-Refname: refs/heads/master X-Git-Oldrev: f0688c82ba8206a3d8960eb1d4821dc6a5f2a9f4 X-Git-Newrev: 19ffb35d17474bb4dd3eb78963c28d10b5362321 Message-Id: <20220803193732.7DFB03858297@sourceware.org> Date: Wed, 3 Aug 2022 19:37:32 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Aug 2022 19:37:32 -0000 https://gcc.gnu.org/g:19ffb35d17474bb4dd3eb78963c28d10b5362321 commit r13-1952-g19ffb35d17474bb4dd3eb78963c28d10b5362321 Author: Andrew MacLeod Date: Wed Aug 3 13:55:42 2022 -0400 Do not walk equivalence set in path_oracle::killing_def. When killing a def in the path ranger, there is no need to walk the set of existing equivalences clearing bits. An equivalence match requires that both ssa-names have to be in each others set. As killing_def creates a new empty set contianing only the current def, it already ensures false equivaelnces won't happen. PR tree-optimization/106514 * value-relation.cc (path_oracle::killing_def) Do not walk the equivalence set clearing bits. Diff: --- gcc/value-relation.cc | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/gcc/value-relation.cc b/gcc/value-relation.cc index a447021214f..3f0957ccdd6 100644 --- a/gcc/value-relation.cc +++ b/gcc/value-relation.cc @@ -1400,16 +1400,7 @@ path_oracle::killing_def (tree ssa) unsigned v = SSA_NAME_VERSION (ssa); bitmap_set_bit (m_killed_defs, v); - - // Walk the equivalency list and remove SSA from any equivalencies. - if (bitmap_bit_p (m_equiv.m_names, v)) - { - for (equiv_chain *ptr = m_equiv.m_next; ptr; ptr = ptr->m_next) - if (bitmap_bit_p (ptr->m_names, v)) - bitmap_clear_bit (ptr->m_names, v); - } - else - bitmap_set_bit (m_equiv.m_names, v); + bitmap_set_bit (m_equiv.m_names, v); // Now add an equivalency with itself so we don't look to the root oracle. bitmap b = BITMAP_ALLOC (&m_bitmaps);