[llvm-commits] [llvm] r106662 - /llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp
Rafael Espindola
espindola at google.com
Thu Jun 24 10:55:18 PDT 2010
> The limitation is imposed by the linker, not the compiler. Yes,
> gcc-4.2 on darwin behaves the same way: it does tail calls to
> functions defined in the same module, but not external calls.
>
> As Bob says, doing tail call on ARM-to-thumb calls is a loser, as can
> be seen from Rafael's example, which executes an extra instruction
> over doing the call normally. However I would guess most external
> calls will not be cross-architecture in practice, so it might win
> pragmatically (apparently the GNU people think so, I wonder if they
> have any actual data behind this belief?).
No idea on that. If it is not a win to have the linker build stubs,
maybe we can put this behavior (not tail calling external functions)
behind -mthumb-interwork or some other dedicated option?
Cheers,
--
Rafael Ávila de Espíndola
More information about the llvm-commits
mailing list