[PATCH] D39700: [Builtins] Do not use tailcall for Thumb1

Weiming Zhao via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 7 09:46:18 PST 2017


weimingz added a comment.

In https://reviews.llvm.org/D39700#917653, @peter.smith wrote:

> I agree that we must avoid the 16-bit branch on Thumb1 and that the code sequence is fine for that purpose.
>
> I do wonder if compiler-rt should define the __aeabi_... forwarding functions in it? I would have expected the C-library to define them. For example the v6-m libgcc.a does not define the __aeabi memcpy family, the forwarding is done in newlib. Similarly Arm's proprietary compiler's C library defines __aeabi_memcpy that just falls through directly into memcpy. I'm guessing that there is some C-library that we support that does not define the __aeabi_ function?


I looked the MUSL C library: it implements __aeabi_mem{cpy,move,set,clear}, but misses "__aeabi_memcmp". 
>From the "C Library ABI for the ARM" [1], it only requires some __aeabi__ specific constants or typedefs in libc's header file. 
My understanding is, compiler-rt should define complete function sets to support other libc.

[1] http://infocenter.arm.com/help/topic/com.arm.doc.ihi0039d/IHI0039D_clibabi.pdf


https://reviews.llvm.org/D39700





More information about the llvm-commits mailing list