[compiler-rt] r303188 - builtins: expand out the AEABI function stubs
Friedman, Eli via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 22 16:34:26 PDT 2017
On 5/16/2017 9:41 AM, Saleem Abdulrasool via llvm-commits wrote:
> Author: compnerd
> Date: Tue May 16 11:41:37 2017
> New Revision: 303188
>
> URL: http://llvm.org/viewvc/llvm-project?rev=303188&view=rev
> Log:
> builtins: expand out the AEABI function stubs
>
> These actually may change calling conventions. We cannot simply provide
> function aliases as the aliased function may have a different calling
> convention. Provide a forwarding function instead to permit the
> compiler to synthesize the calling convention adjustment thunk.
>
> Remove the `ARM_EABI_FNALIAS` macro as that is not safe to use.
>
> Resolves PR33030!
Hi,
I just did some benchmarking recently, and it looks like this is the
source of a substantial performance regression. For an ARMv6-M target,
this change means that almost every call to an __aeabi_* function
branches to a three-instruction stub (push+bl+pop) instead of the
function itself. This makes __aeabi_fdiv about 20% slower (in addition
to the overhead of forwarding to __divsf3, __divsf3 itself calls the
stub __aeabi_lmul a bunch of times).
Can we keep the aliases in cases where the calling convention is
actually identical?
-Eli
--
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
More information about the llvm-commits
mailing list