This is the mail archive of the gcc@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: inlining inefficiencies


Hi Dan, Andreas,

On Thu, May 30, 2002 at 07:18:48AM +0200, Andreas Jaeger wrote:
> Can you have a look at Kurt Garloff's patches which have been
> discussed here some weeks agao?  A current version is at
> http://www.garloff.de/kurt/freesoft/gcc/

The patch v4 is the thing to look at.

If you're looking at the patrch v4 vs. the CVS head (3.2) version, it's
mostly a clean-up, adding extra parameters for the case where we inline
functions by -finline-functions (as compared to the ones that are declared
inline) and setting them all to some multiples with -finline-limit=N

The patch v4 against 3.1 incorporates the smoother inlining cut-off that 
has been accepted into 3.2.

If you are going deeper into it:

I think the whole inlining heuristics could be improved a lot by adding
some framework to collect information of whether we are in a loop or not 
and how deep in there we are (and maybe even some estimate of whether the
number of iteration is small or large).
We would give the inliner a bonus for the call tree invoked from within a
loop and could subsequently use smaller limits for the rest.
This should result in both smaller executables, better compilation times 
with equal or maybe even slightly improved runtime performance.

I would be more than happy to contribute ideas to this, but I'm not sure
I'll find the time to code myself.

Obviously, this is only important for programs where inlining is important.
This is the case for most templated C++ codes.

Regards,
-- 
Kurt Garloff                   <kurt@garloff.de>         [Eindhoven, NL]
Physics: Plasma simulations    <K.Garloff@TUE.NL>     [TU Eindhoven, NL]
Linux: SCSI, Security          <garloff@suse.de>    [SuSE Nuernberg, DE]
 (See mail header or public key servers for PGP2 and GPG public keys.)

Attachment: msg02840/pgp00000.pgp
Description: PGP signature


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