[PATCH] Clean up early inliner
Richard Guenther
rguenther@suse.de
Mon Apr 12 08:59:00 GMT 2010
On Mon, 12 Apr 2010, Jan Hubicka wrote:
> > Well, I expected that the various cost functions honor
> > disregard_inline_limits properly. If they don't we indeed need to fix
> > them.
>
> Well, the idea was that if a function disregards inline limits, we won't even
> call those functions for checking them.
>
> Late inliner was organized as several passes. In the first pass it always
> inlined (without using the cost predicates). Then it decided on the unit size
> (so always inlining is not preventing normal inlining to happen). Then it
> inlined small functions (and did not insert always inlines into heap as you
> observed since they was fully handled earlier) and finally it inlined function
> called once.
>
> Since you removed the first pass you need to somehow compensate about it. If
> you add the always inlines into inline candidates for small function inlining,
> then the inline limit functions should either be skipped or told to be always
> true when we disregard limits.
The latter sounds like what they should do anyways - inline limit
functions disregarding inline limits. What else? ;)
I'll fixup the patch some more then.
Richard.
More information about the Gcc-patches
mailing list