[patch i386]: Expand sibling-tail-calls via accumulator register

Richard Henderson rth@redhat.com
Tue May 27 15:51:00 GMT 2014


On 05/22/2014 02:33 PM, Kai Tietz wrote:
> 	* config/i386/i386.c (ix86_expand_call): Enforce for sibcalls
> 	on memory the use of accumulator-register.

I don't like this at all.

I'm fine with allowing memories that are fully symbolic, e.g.

extern void (*foo)(void);
void f(void) { foo(); }

but any time you've got to use one insn to form the address in %eax, you might
as well have also issued the memory load into %eax.  And if the memory load is
moved earlier, you no longer need to constrain to %eax, but let the register
allocator choose the call-clobbered register to use.


r~



More information about the Gcc-patches mailing list