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:
parent
f0688c82ba
commit
19ffb35d17
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue