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.

Jason


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