https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61782

--- Comment #10 from Daniel Santos <daniel.santos at pobox dot com> ---
(In reply to rguent...@suse.de from comment #7)
> Heh - I've been there as well and guess what - I invented 
> __attribute__((flatten)) because of this...
> 
> Note that flatten has the same issues as always_inline with respect
> to indirect function calls (or virtual method calls, which are
> indirect calls).
> 
> > Portions of these functions (often the majority) I expect to be executed by 
> > the
> > compiler and the result emitted, rather than having the whole of the 
> > function
> > emitted as generated code. As the complexity of such functions grows, the 
> > cost
> > of failing to inline by indirection can be the explosion of the function to 
> > 10,
> > 20 times or more of it's size when all inlining happens. (sorry, that's a
> > little off topic).
> 
> Yeah, similar catastrophic things happened in the past with 
> profile-feedback where instrumentation was applied _before_ all 
> inlining... (I changed that as well).

Hah! That makes you my hero then! I haven't learned the internals of gcc yet,
so I still have to rely on others for this fringe stuff.

Thanks again everybody.

Reply via email to