[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