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.
This commit is contained in:
Andrew MacLeod 2022-08-03 13:55:42 -04:00
parent f0688c82ba
commit 19ffb35d17
1 changed files with 1 additions and 10 deletions

View File

@ -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);