[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