https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99862

--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #7)
> (In reply to Zhendong Su from comment #2)
> > [659] % gcctk -O1 -S -o O1.s small.c
> > [660] % gcctk -O3 -S -o O3.s small.c
> > [661] % 
> > [661] % wc O1.s O3.s
> >   40   86  599 O1.s
> >   68  138 1047 O3.s
> >  108  224 1646 total
> > [662] % 
> > [662] % grep foo O1.s
> > [663] % grep foo O3.s
> >         call    foo
> > [664] % 
> > [664] % cat small.c
> > extern void foo(void);
> > int a, b, *c;
> > static void d(int f) {
> >   if (f)
> >     foo();
> > }
> > static int e(int f) {
> >   int g[] = {2, 8, 2, 8, 2, 8, 2, 8, 2, 8, 2};
> >   int h[60];
> >   h[0] = g != c;
> >   if (b)
> >     while (a) {
> >       int *i[1] = {&h[6]};
> >     }
> >   return f;
> > }
> > static int *j(int *p) { return 0; }
> > int main () {
> >   int m = e(0);
> >   d(m);
> >   int l[8];
> >   if (j(l))
> >     while (1)
> >       ;
> >   return 0;
> > }
> 
> This is a case similar to PR99991, we create a IPA CP clone and fail to
> inline
> that at -O3 while we are happy to IPA inline e() at -O1.

I filed PR99993 for it.

For the future please open separate bugs for separate testcases.

Reply via email to