------- Comment #5 from sebastian dot pop at cri dot ensmp dot fr 2005-10-12
16:53 -------
Subject: Re: [4.1 Regression] ICE: verify_ssa failed with -O -msse2
-ftree-vectorize
Sebastian Pop wrote:
>
> if (!expr_invariant_in_loop_p (loop, CHREC_LEFT (chrec)))
> then give up with this case,
>
> would solve this bug.
We already do this! By the way, why do we need the "init == expr"
check? The following (not tested yet) patch solves this bug. Anybody
remembers about why we have the extra check?
*** tree-data-ref.c.~2.44.~ 2005-09-24 21:12:03.000000000 +0200
--- tree-data-ref.c 2005-10-12 18:54:38.000000000 +0200
***************
*** 1124,1130 ****
return false;
init = initial_condition_in_loop_num (access_fn, loop->num);
! if (init == expr && !expr_invariant_in_loop_p (loop, init))
/* Not enough information: may be not loop invariant.
E.g., for a[b[i]], we get a[D], where D=b[i]. EXPR is D, its
initial_condition is D, but it depends on i - loop's induction
--- 1124,1130 ----
return false;
init = initial_condition_in_loop_num (access_fn, loop->num);
! if (!expr_invariant_in_loop_p (loop, init))
/* Not enough information: may be not loop invariant.
E.g., for a[b[i]], we get a[D], where D=b[i]. EXPR is D, its
initial_condition is D, but it depends on i - loop's induction
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24262