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


> 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.

Honza
> 
> Richard.


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