This is the mail archive of the gcc-patches@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: [PATCH] Clean up early inliner


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]