This is the mail archive of the
mailing list for the GCC project.
Re: [RFA] attribute((inline_everything)) (was Re: [RFA] Kill artificialinlining limit)
- From: Richard Guenther <rguenth at tat dot physik dot uni-tuebingen dot de>
- To: Michael Matz <matz at suse dot de>
- Cc: Phil Edwards <phil at jaj dot com>, Steven Bosscher <s dot bosscher at student dot tudelft dot nl>, <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 13 May 2003 21:18:35 +0200 (CEST)
- Subject: Re: [RFA] attribute((inline_everything)) (was Re: [RFA] Kill artificialinlining limit)
On Tue, 13 May 2003, Michael Matz wrote:
> On Tue, 13 May 2003, Phil Edwards wrote:
> > > Which part actually? noinline marks the function as not supposed to be
> > > inlined, inline_everything marks the function to inline all its function
> > > calls.
> > That's not the /most/ unintuitive interface I've ever encountered, but it's
> > very very close.
> Call it proof-of-concept. _I_ can see the use in such an attribute.
> Certainly Richard indeed _has_ a use for it. That the interface is
> slightly funny is fixable most probably. Richard gave an explanation for
> that crumpy interface.
Yup. I think such an attribute is orthogonal to the always_inline and
noinline attributes and is quite useful for me and maybe for others, too.
> Richard: Indeed the interface is ugly. If anything, the existance of the
> flatten_all_calls attribute (I think thats a better though not optimal
> name) should implicitely set the noinline attribute. Reasoning is like
Yes, that sounds better. Unfortunately I cannot get it work as I thought -
with the right combination of attribute((always_inline)) and the removal
of the min-inline-insns cut-off, I previously could get everything inlined
inside my loops. Now with a slightly extended inline_everything attribute
code, I always hit the "function body available" and "langhooks" test in
tree-inline.c:inlinable_function_p(). Though I cannot find code to handle
the always_inline attribute somehow special during f.i. function deferral.