This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/34244] [4.3 Regression] VRP/SCEV miscompiles Firefox
- From: "rakdver at kam dot mff dot cuni dot cz" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 28 Nov 2007 16:05:04 -0000
- Subject: [Bug tree-optimization/34244] [4.3 Regression] VRP/SCEV miscompiles Firefox
- References: <bug-34244-10053@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #7 from rakdver at kam dot mff dot cuni dot cz 2007-11-28 16:05 -------
Subject: Re: [4.3 Regression] VRP/SCEV miscompiles Firefox
> ------- Comment #6 from rguenth at gcc dot gnu dot org 2007-11-28 15:47 -------
> We could clear the SCEV cache for an SSA_NAME we set a new value range
> (in set_value_range and set_value_range_to_varying), but I
> see that SCEV also caches loop->nb_iterations which we probably would need to
> clear unconditionally (for all loops).
yes, the simplest solution is to call scev_reset somewhere (either in
set_value_range, or in adjust_range_with_scev). However, I fear the
compile time impact would be too large (# of iterations analysis is
fairly time consuming, and not caching the results used to cause
us to spend 10% or more in it).
More feasible solution seems to be to determine the number of iterations
for all loops before the start of VRP, and to remember the values.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34244