On Fri, 12 Apr 2019, Jeff Law wrote:
> We've been through the "who owns the argument slots, caller or callee"
> discussion a few times and I don't think we've ever reached any kind of
> conclusion in the general case.

Callee must own the slots for tail calls to be possible.

> I think this case side-steps the general case.
> 
> We've got an argument slot for a const/pure call.  Because of the
> const/pure designation the caller can assume the callee doesn't modify
> the argument slot.  That may in turn allow the caller to place a
> REG_EQUIV note on the store to the slot.

I don't think this follows. Imagine a pure foo tailcalling a pure bar.
To make the tailcall, foo may need to change some of its argument slots
to pass new arguments to bar.

Alexander

Reply via email to