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))
...