Re: pre-patch-2.1.37-3 comment / compile fixes

Colin Plumb (colin@nyx.net)
Mon, 5 May 97 00:13:22 MDT


Our fearless leader wrote:
> Note to performance people: I used to think that using local labels was
> a great idea, but I'm not all that certain any more. The problem is
> that gcc seems to implement local labels through a similar mechanism as
> local functions, which in turn means that any function that has a local
> label will aqcuire a stack frame. No, don't ask me why, but that is
> what seems to happen.
>
> End result: avoid local labels if you really care about that last bit of
> performance

Um, Linus, you're getting __label__ declarations mixed up with *asm* local
labels like the asm("1:") ones in

extern inline char * strcpy(char * dest,const char *src)
{
__asm__ __volatile__(
"cld\n"
"1:\tlodsb\n\t"
"stosb\n\t"
"testb %%al,%%al\n\t"
"jne 1b"
: /* no output */
:"S" (src),"D" (dest):"si","di","ax","memory");
return dest;
}

The GCC code generator never sees those, so it can't possibly use them
as an excuse to generate a stack frame.

-- 
	-Colin