------- Comment #6 from rguenther at suse dot de  2009-04-26 18:44 -------
Subject: Re:  [4.3/4.4/4.5 Regression] LIM
 inserts loads from uninitialized local memory

On Sun, 26 Apr 2009, rakdver at gcc dot gnu dot org wrote:

> ------- Comment #5 from rakdver at gcc dot gnu dot org  2009-04-26 18:37 
> -------
> (In reply to comment #4)
> > void foo(int *);
> > void f2(int dst[3], int R)
> > {
> >  int i, inter[2];
> > 
> >  for (i = 1; i < R; i++) {
> >   inter[0] = 1;
> >   inter[1] = 1;
> >  }
> > 
> >  foo(inter);
> > }
> > 
> > Warns at -Os or also at -O2 if you disable loop header copying.
> 
> Right. The initial value of inter may reach the call to foo (when R <= 1), so
> we must issue (and keep) the loads if we want to perform lsm without loop
> header copying.  While I recognize that adding the loads from (possibly)
> uninitialized memory is somewhat annoying, limiting lsm only to loops where we
> can prove that this does not happen does not make much sense, either.

Ok.  I guess setting TREE_NO_WARNING on the inserted loads could avoid
the uninitialized warning in 4.4.

Richard.


-- 


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

Reply via email to