cvs commit: src/sys/kern init_main.c kern_malloc.c md5c.c subr_autoconf.c subr_mbuf.c subr_prf.c tty_subr.c vfs_cluster.c vfs_subr.c

Poul-Henning Kamp phk at phk.freebsd.dk
Tue Jul 22 16:49:13 PDT 2003


In message <20030722233923.GD61493 at athlon.pn.xcllnt.net>, Marcel Moolenaar writ
es:
>On Wed, Jul 23, 2003 at 01:18:07AM +0200, Poul-Henning Kamp wrote:
>> In message <20030722230731.GB61493 at athlon.pn.xcllnt.net>, Marcel Moolenaar writ
>> es:
>> >On Wed, Jul 23, 2003 at 12:56:34AM +0200, Poul-Henning Kamp wrote:
>> >> 
>> >> And the only two criteria I think are trivial to use for proving an
>> >> actual benefit is:
>> >> 	1. less code is generated.
>> >> 	2. it runs faster in tests.
>> >
>> >criterium 1 is the worst possible. Only criterium 2 makes sense.
>> 
>> No, if inlining a functions results in less code overall it also,
>> ipso facto results in faster execution.
>
>Proof it. I can give a counter example to show that I seriously
>doubt this statement:
>
>Inlining a function that has only 1 caller, and the call is on
>a cold path (ie a nested if or else that's almost never executed)

Why on earth would you even think about inlining in that case ?

We are not talking about heuristics for getting the compiler to
mindlessly inline functions here.

We are talking about the burden of proof the programmer must lift,
once he has spotted what he thinks is a promising inline candidate.

-- 
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk at FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.


More information about the cvs-src mailing list