This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]