This is the mail archive of the gcc@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: 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
ICE:

/home/rguenth/ix86/pooma/tat-serial-gcc34/pooma/linux/src/Evaluator/InlineEvaluator.h:102:
internal compiler error: in gen_subprogram_die, at dwarf2out.c:10607
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> 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.

--
Richard Guenther <richard dot guenther at uni-tuebingen dot de>
WWW: http://www.tat.physik.uni-tuebingen.de/~rguenth/

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]