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) |
Re: When to do inline expansion ssimmons@convex.com (1993-09-27) |
Newsgroups: | comp.compilers |
From: | salomon@silver.cs.umanitoba.ca (Daniel J. Salomon) |
Keywords: | optimize, registers |
Organization: | Computer Science, University of Manitoba, Winnipeg, Canada |
References: | 93-09-063 93-09-071 |
Date: | Wed, 22 Sep 1993 17:07:58 GMT |
zstern@adobe.com (Zalman Stern) writes:
>If it is called precisely once in the program, the function should be
>inlined no matter what.
davidm@questor.rational.com (David Moore) writes:
> On certain Risc machines (eg Sparc, AM29000), when you call a routine, you
> get a new set of registers by performing a register window push. This push
> is often almost free [2-3 instruction slots] since a limited number of
> pushes will be done entirely in hardware registers.
I am not familiar with the AM29000, but on the SPARC a program can rotate
the register window independently from performing a function call.
Therefore the compiler can free a new set of registers for inline code
with the same cost that they can be freed for a function call.
It is true, however, that if a function is called conditionally special
interactions can occur with virtual memory page boundaries and cache
boundaries that can slow down inline code relative to function calls. A
compiler, however, cannot predict in the general case how frequently a
function will be called, especially if it depends on input data not
supplied with the source code. So the compiler is better off letting the
programmer decide what should be inlined.
--
Daniel J. Salomon -- salomon@cs.UManitoba.CA
Dept. of Computer Science / University of Manitoba
Winnipeg, Manitoba, Canada R3T 2N2 / (204) 474-8687
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.