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