This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [RFC] PR 12389
> On Mon, 20 Oct 2003 18:02:11 +0200, Jan Hubicka <hubicka@ucw.cz> wrote:
>
> >> > How this is different with -O3? Then we can inline even functions not
> >> > declared inline (this actually happens even for functions called once at
> >> > -O2) so perhaps we need abstract instances for all functions just for
> >> > sure as we don't know what happens in the other unit?
> >>
> >> No, that seems like overkill. Debugging at -O3 is already pretty dodgy.
> >
> > OK, we also inilne static functions called once as -O2, but I guess these does
> > not happen for shared headers either, so I would say that ignoring this
> > is fine in the case it won't do something really bad (like producing
> > undefined symbols when accessing the abstract die from other unit or so)
>
> Nope, should be fine. If the header info isn't identical, we keep both
> copies.
>
> > I don't think -feliminate_dwarf2_dups is making this too much
> > complicated, so we still can keep it.
> >
> > The problem is that outline_function is called too often. Function can
> > be DECL_INLINE and !DECL_DECLARED_INLINE at -O3, but still
> > !cgraph_possibly_inlined_p as with -funit-at-a-time we work out that the
> > function has never been inlined, so we end up aborting when doing
> > abstract DIE for function not declared inline and not inline.
> >
> > changing the interface to outline_function so the dwarf2out.c (and other
> > debug formats) decide on whether they need to output abstract DIE at all
> > or not is relatively easy.
> > But the function probably need new name, something like notice_function.
>
> I think we want to introduce a dwarf2out_outline_function which decides
> whether or not to call dwarf2out_abstract_function; I don't think the hook
> needs a new name.
OK, I will make outline_function hook called unconditionally
from toplev.c + move the decision into individual debug output drivers
without.
Thanks,
Honza
>
> Jason