This is the mail archive of the 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: attribute((leafify)) for 3.4

On Thu, 30 Oct 2003, Richard Guenther wrote:

> Well, I wouldnt need to have it in official 3.4, I just use a locally
> patched gcc for my work. Btw. I tried the above (but obviously missed some
> parts, as it doesnt work), see attached patch. I somehow circumvented most
> of the problems you mention above, but it seems the functions are not
> considered for inlining though cgraph_inline_p is modified to honour
> the case of a callee of a leafify function (you didnt mean
> cgraph_inline_p by inline_call_p?).

I missed to mark the cgraph edges created after inlining, with this chunk
added I get leafify behavior as wanted.  But I still see these artificial
libstdc++ functions not inlined - they seem to be triggered by temporary
objects created inside the loop and never optimized away (as 3.3 did).
I'll try to dig further and come up with a testcase.

(Final) patch is attached. It breaks debugging (-g3) with the following

internal compiler error: in gen_subprogram_die, at dwarf2out.c:10607
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:> for instructions.
make: *** [tramp3d.o] Error 1

It seems that unnecessary (inlined) function bodies are emit and
debugging is confused by this. But I really dont know how to prevent
this. Linking is fine. Any idea?


Richard Guenther <richard dot guenther at uni-tuebingen dot de>

Attachment: leafify-3.4-8
Description: leafify patch

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