[Bug tree-optimization/26304] [4.2 Regression] 25_algorithms/prev_permutation/1.cc on powerpc{64,}-linux and powerpc-darwin

dberlin at dberlin dot org gcc-bugzilla@gcc.gnu.org
Mon Apr 24 01:10:00 GMT 2006



------- Comment #19 from dberlin at gcc dot gnu dot org  2006-04-24 01:10 -------
Subject: Re:  [4.2 Regression]
        25_algorithms/prev_permutation/1.cc on powerpc{64,}-linux and
powerpc-darwin

On Sun, 2006-04-23 at 23:14 +0000, pinskia at gcc dot gnu dot org wrote:
> 
> ------- Comment #17 from pinskia at gcc dot gnu dot org  2006-04-23 23:14 -------
> Rewritting that loop like:
> [kudzu:local/trunk/gcc] pinskia% svn diff tree-ssa-loop-niter.c
> Index: tree-ssa-loop-niter.c
> ===================================================================
> --- tree-ssa-loop-niter.c       (revision 113199)
> +++ tree-ssa-loop-niter.c       (working copy)
> @@ -1939,6 +1939,7 @@ scev_probably_wraps_p (tree type, tree b
>    tree unsigned_type, valid_niter;
>    tree base_plus_step, bpsps;
>    int cps, cpsps;
> +  bool known_not_to_wrap;
> 
>    /* FIXME: The following code will not be used anymore once
>       http://gcc.gnu.org/ml/gcc-patches/2005-06/msg02025.html is
> @@ -2077,8 +2078,10 @@ scev_probably_wraps_p (tree type, tree b
> 
>    estimate_numbers_of_iterations_loop (loop);
>    for (bound = loop->bounds; bound; bound = bound->next)
> -    if (proved_non_wrapping_p (at_stmt, bound, type, valid_niter))
> -      return false;
> +    if (!proved_non_wrapping_p (at_stmt, bound, type, valid_niter))
> +      known_not_to_wrap = false;
> +  if (known_not_to_wrap)
> +   return false;
> 
>    /* At this point we still don't have a proof that the iv does not
>       overflow: give up.  */
> 

known_to_wrap may be uninitialized at the if statement here.
You need to init it to true.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26304



More information about the Gcc-bugs mailing list