[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