Commit Graph

3 Commits

Author SHA1 Message Date
Peter Smith c9c456edbd [CodeGen][ARM] ARM runtime helper functions are not always soft-fp
Re-commit r309257 with less precise register checks in arm-float-helpers.c
test.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@309263 91177308-0d34-0410-b5e6-96231b3b80d8
2017-07-27 10:43:53 +00:00
Peter Smith f382cff74f [CodeGen][ARM] Revert r309257
The test arm-float-helpers.c appears to be failing on some builders and
needs some work to make it more robust.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@309259 91177308-0d34-0410-b5e6-96231b3b80d8
2017-07-27 09:57:13 +00:00
Peter Smith 2f1ff36102 [CodeGen][ARM] ARM runtime helper functions are not always soft-fp
The ARM Runtime ABI document (IHI0043) defines the AEABI floating point
helper functions in 4.1.2 The floating-point helper functions. These
functions always use the base PCS (soft-fp). However helper functions
defined outside of this document such as the complex-number multiply and
divide helpers are not covered by this requirement and should use
hard-float PCS if the target is hard-float as both compiler-rt and libgcc
for a hard-float sysroot implement these functions with a hard-float PCS.
    
All of the floating point helper functions that are explicitly soft float
are expanded in the llvm ARM backend. This change makes clang not force the
BuiltinCC to AAPCS for AAPCS_VFP. With this change the ARM compiler-rt
tests involving _Complex pass with both hard-fp and soft-fp targets.

Differential Revision: https://reviews.llvm.org/D35538



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@309257 91177308-0d34-0410-b5e6-96231b3b80d8
2017-07-27 09:21:41 +00:00