[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