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

Reply via email to