Related articles |
---|
When to do inline expansion jhall@whale.WPI.EDU (1993-09-14) |
Re: When to do inline expansion zstern@adobe.com (1993-09-20) |
Re: When to do inline expansion salomon@silver.cs.umanitoba.ca (1993-09-20) |
Re: When to do inline expansion davidm@questor.rational.com (1993-09-20) |
Re: When to do inline expansion jfc@athena.mit.edu (1993-09-21) |
Re: When to do inline expansion jgmorris+@cs.cmu.edu (1993-09-21) |
Re: When to do inline expansion jdean@bergen.cs.washington.edu (1993-09-21) |
Re: When to do inline expansion salomon@silver.cs.umanitoba.ca (1993-09-22) |
Re: When to do inline expansion preston@dawn.cs.rice.edu (1993-09-22) |
Re: When to do inline expansion cliffc@rice.edu (1993-09-22) |
Re: When to do inline expansion rfg@netcom.com (1993-09-25) |
[1 later articles] |
Newsgroups: | comp.compilers |
From: | jfc@athena.mit.edu (John F Carr) |
Keywords: | optimize |
Organization: | Massachusetts Institute of Technology |
References: | 93-09-063 93-09-069 |
Date: | Tue, 21 Sep 1993 14:31:04 GMT |
zstern@adobe.com (Zalman Stern) writes:
>If it is called precisely once in the program, the function should be
>inlined no matter what.
I disagree. Some cases where inlining may hurt:
. the inlined function is so complex that it needs more registers
than are available at the point of inlining
Are there any commercial compilers which do not allocate a value to the
same register over its entire live range, but instead will save it on
the stack in those blocks where the value is live but not accessed and
it would be benficial to let another value use that register? This would
reduce the number of extra registers needed to inline a function.
. the inlined function is infrequently executed
Some potential costs of inlining an infrequently executed function: more
registers to save and restore; more I-cache and TLB misses in the normal
path; less optimization due to increased code complexity (depending on the
compiler).
--
John Carr (jfc@athena.mit.edu)
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.