https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109695
Mikael Morin <mikael at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mikael at gcc dot gnu.org --- Comment #8 from Mikael Morin <mikael at gcc dot gnu.org> --- (In reply to Andrew Macleod from comment #7) > > diff --git a/gcc/gimple-range.cc b/gcc/gimple-range.cc > index 49e9d6b4de6..74afaaf2989 100644 > --- a/gcc/gimple-range.cc > +++ b/gcc/gimple-range.cc > @@ -394,7 +394,9 @@ gimple_ranger::prefill_stmt_dependencies (tree ssa) > Value_Range tmp (TREE_TYPE (name)); > m_cache.get_global_range (tmp, name); > r.intersect (tmp); > - m_cache.set_global_range (name, r); > + // Only update the global range if it changes. > + if (r != tmp) > + m_cache.set_global_range (name, r); > } > continue; > } Maybe the result of intersect could be used to check for changes? if (tmp.intersect(r)) ...