Hi Richard, I do not have write access to GCC SVN repository, can you commit it for me?
Thanks alot Cheers On Tue, Apr 9, 2013 at 5:04 PM, Richard Biener <richard.guent...@gmail.com> wrote: > > On Tue, Apr 9, 2013 at 5:40 AM, Zhouyi Zhou <zhouzho...@gmail.com> wrote: > > On Mon, Apr 8, 2013 at 5:48 PM, Richard Biener <richard.guent...@gmail.com> > > wrote: > >>Can you trigger this message to show up with -Winline before/after the > >>patch? > >>Can you please add a testcase then? > > Thanks Richard for reviewing, from my point of view about gcc and my > > invoking of gcc, -Winline > > only works on callees that be declared "inline", but if the callee is > > declared > > "inline", it will be AVAIL_AVAILABLE in function can_inline_edge_p, thus > > out of the > > range of my patch. > > Ah, indeed ... > > > So I only add a testcase for fixing the tree dump, are there any thing more > > I can do? > > No. Patch is ok. > > Thanks, > Richard. > > > Regtested/bootstrapped on x86_64-linux > > > > ChangeLog: > > 2013-04-08 Zhouyi Zhou <yizhouz...@ict.ac.cn> > > * cif-code.def (OVERWRITABLE): correct the comment for > > overwritable > > function > > * ipa-inline.c (can_inline_edge_p): let dump mechanism report > > the inline > > fail caused by overwritable functions. > > * gcc.dg/tree-ssa/inline-11.c: New test > > > > Index: gcc/cif-code.def > > =================================================================== > > --- gcc/cif-code.def (revision 197549) > > +++ gcc/cif-code.def (working copy) > > @@ -48,7 +48,7 @@ DEFCIFCODE(REDEFINED_EXTERN_INLINE, > > /* Function is not inlinable. */ > > DEFCIFCODE(FUNCTION_NOT_INLINABLE, N_("function not inlinable")) > > > > -/* Function is not overwritable. */ > > +/* Function is overwritable. */ > > DEFCIFCODE(OVERWRITABLE, N_("function body can be overwritten at link > > time")) > > > > /* Function is not an inlining candidate. */ > > Index: gcc/testsuite/gcc.dg/tree-ssa/inline-11.c > > =================================================================== > > --- gcc/testsuite/gcc.dg/tree-ssa/inline-11.c (revision 0) > > +++ gcc/testsuite/gcc.dg/tree-ssa/inline-11.c (working copy) > > @@ -0,0 +1,13 @@ > > +/* { dg-do compile } */ > > +/* { dg-options "-O2 -fdump-tree-einline" } */ > > +int w; > > +int bar (void) __attribute__ ((weak)); > > +int bar (){ > > + w++; > > +} > > +void foo() > > +{ > > + bar(); > > +} > > +/* { dg-final { scan-tree-dump-times "function body can be overwritten at > > link time" 1 "einline" } } */ > > +/* { dg-final { cleanup-tree-dump "einline" } } */ > > Index: gcc/ipa-inline.c > > =================================================================== > > --- gcc/ipa-inline.c (revision 197549) > > +++ gcc/ipa-inline.c (working copy) > > @@ -266,7 +266,7 @@ can_inline_edge_p (struct cgraph_edge *e > > else if (avail <= AVAIL_OVERWRITABLE) > > { > > e->inline_failed = CIF_OVERWRITABLE; > > - return false; > > + inlinable = false; > > } > > else if (e->call_stmt_cannot_inline_p) > > {