[compiler-rt] r359413 - [builtins] Use aliases for function redirects

Petr Hosek via llvm-commits llvm-commits at lists.llvm.org
Sun Apr 28 17:46:23 PDT 2019


Author: phosek
Date: Sun Apr 28 17:46:23 2019
New Revision: 359413

URL: http://llvm.org/viewvc/llvm-project?rev=359413&view=rev
Log:
[builtins] Use aliases for function redirects

Symbol aliases are supported by all platforms that compiler-rt builtins
target, and we can use these instead of function redirects to avoid the
extra indirection.

This is part of the cleanup proposed in "[RFC] compiler-rt builtins
cleanup and refactoring".

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

Modified:
    compiler-rt/trunk/lib/builtins/adddf3.c
    compiler-rt/trunk/lib/builtins/addsf3.c
    compiler-rt/trunk/lib/builtins/ashldi3.c
    compiler-rt/trunk/lib/builtins/ashrdi3.c
    compiler-rt/trunk/lib/builtins/comparedf2.c
    compiler-rt/trunk/lib/builtins/comparesf2.c
    compiler-rt/trunk/lib/builtins/comparetf2.c
    compiler-rt/trunk/lib/builtins/divdf3.c
    compiler-rt/trunk/lib/builtins/divsf3.c
    compiler-rt/trunk/lib/builtins/divsi3.c
    compiler-rt/trunk/lib/builtins/extendhfsf2.c
    compiler-rt/trunk/lib/builtins/extendsfdf2.c
    compiler-rt/trunk/lib/builtins/fixdfdi.c
    compiler-rt/trunk/lib/builtins/fixdfsi.c
    compiler-rt/trunk/lib/builtins/fixsfdi.c
    compiler-rt/trunk/lib/builtins/fixsfsi.c
    compiler-rt/trunk/lib/builtins/fixunsdfdi.c
    compiler-rt/trunk/lib/builtins/fixunsdfsi.c
    compiler-rt/trunk/lib/builtins/fixunssfdi.c
    compiler-rt/trunk/lib/builtins/fixunssfsi.c
    compiler-rt/trunk/lib/builtins/floatdidf.c
    compiler-rt/trunk/lib/builtins/floatdisf.c
    compiler-rt/trunk/lib/builtins/floatsidf.c
    compiler-rt/trunk/lib/builtins/floatsisf.c
    compiler-rt/trunk/lib/builtins/floatundidf.c
    compiler-rt/trunk/lib/builtins/floatundisf.c
    compiler-rt/trunk/lib/builtins/floatunsidf.c
    compiler-rt/trunk/lib/builtins/floatunsisf.c
    compiler-rt/trunk/lib/builtins/int_lib.h
    compiler-rt/trunk/lib/builtins/lshrdi3.c
    compiler-rt/trunk/lib/builtins/muldf3.c
    compiler-rt/trunk/lib/builtins/muldi3.c
    compiler-rt/trunk/lib/builtins/mulsf3.c
    compiler-rt/trunk/lib/builtins/negdf2.c
    compiler-rt/trunk/lib/builtins/negsf2.c
    compiler-rt/trunk/lib/builtins/subdf3.c
    compiler-rt/trunk/lib/builtins/subsf3.c
    compiler-rt/trunk/lib/builtins/truncdfhf2.c
    compiler-rt/trunk/lib/builtins/truncdfsf2.c
    compiler-rt/trunk/lib/builtins/truncsfhf2.c
    compiler-rt/trunk/lib/builtins/udivsi3.c

Modified: compiler-rt/trunk/lib/builtins/adddf3.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/adddf3.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/adddf3.c (original)
+++ compiler-rt/trunk/lib/builtins/adddf3.c Sun Apr 28 17:46:23 2019
@@ -20,6 +20,6 @@ COMPILER_RT_ABI double __adddf3(double a
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI double __aeabi_dadd(double a, double b) { return __adddf3(a, b); }
 #else
-AEABI_RTABI double __aeabi_dadd(double a, double b) COMPILER_RT_ALIAS(__adddf3);
+COMPILER_RT_ALIAS(__adddf3, __aeabi_dadd)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/addsf3.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/addsf3.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/addsf3.c (original)
+++ compiler-rt/trunk/lib/builtins/addsf3.c Sun Apr 28 17:46:23 2019
@@ -20,6 +20,6 @@ COMPILER_RT_ABI float __addsf3(float a,
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI float __aeabi_fadd(float a, float b) { return __addsf3(a, b); }
 #else
-AEABI_RTABI float __aeabi_fadd(float a, float b) COMPILER_RT_ALIAS(__addsf3);
+COMPILER_RT_ALIAS(__addsf3, __aeabi_fadd)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/ashldi3.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/ashldi3.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/ashldi3.c (original)
+++ compiler-rt/trunk/lib/builtins/ashldi3.c Sun Apr 28 17:46:23 2019
@@ -34,6 +34,5 @@ COMPILER_RT_ABI di_int __ashldi3(di_int
 }
 
 #if defined(__ARM_EABI__)
-AEABI_RTABI di_int __aeabi_llsl(di_int a, si_int b)
-    COMPILER_RT_ALIAS(__ashldi3);
+COMPILER_RT_ALIAS(__ashldi3, __aeabi_llsl)
 #endif

Modified: compiler-rt/trunk/lib/builtins/ashrdi3.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/ashrdi3.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/ashrdi3.c (original)
+++ compiler-rt/trunk/lib/builtins/ashrdi3.c Sun Apr 28 17:46:23 2019
@@ -35,6 +35,5 @@ COMPILER_RT_ABI di_int __ashrdi3(di_int
 }
 
 #if defined(__ARM_EABI__)
-AEABI_RTABI di_int __aeabi_lasr(di_int a, si_int b)
-    COMPILER_RT_ALIAS(__ashrdi3);
+COMPILER_RT_ALIAS(__ashrdi3, __aeabi_lasr)
 #endif

Modified: compiler-rt/trunk/lib/builtins/comparedf2.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/comparedf2.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/comparedf2.c (original)
+++ compiler-rt/trunk/lib/builtins/comparedf2.c Sun Apr 28 17:46:23 2019
@@ -83,8 +83,11 @@ COMPILER_RT_ABI enum LE_RESULT __ledf2(f
 
 #if defined(__ELF__)
 // Alias for libgcc compatibility
-FNALIAS(__cmpdf2, __ledf2);
+COMPILER_RT_ALIAS(__ledf2, __cmpdf2)
 #endif
+COMPILER_RT_ALIAS(__ledf2, __eqdf2)
+COMPILER_RT_ALIAS(__ledf2, __ltdf2)
+COMPILER_RT_ALIAS(__ledf2, __nedf2)
 
 enum GE_RESULT {
   GE_LESS = -1,
@@ -121,26 +124,19 @@ COMPILER_RT_ABI enum GE_RESULT __gedf2(f
   }
 }
 
-COMPILER_RT_ABI int __unorddf2(fp_t a, fp_t b) {
-  const rep_t aAbs = toRep(a) & absMask;
-  const rep_t bAbs = toRep(b) & absMask;
-  return aAbs > infRep || bAbs > infRep;
-}
-
-// The following are alternative names for the preceding routines.
-
-COMPILER_RT_ABI enum LE_RESULT __eqdf2(fp_t a, fp_t b) { return __ledf2(a, b); }
+COMPILER_RT_ALIAS(__gedf2, __gtdf2)
 
-COMPILER_RT_ABI enum LE_RESULT __ltdf2(fp_t a, fp_t b) { return __ledf2(a, b); }
-
-COMPILER_RT_ABI enum LE_RESULT __nedf2(fp_t a, fp_t b) { return __ledf2(a, b); }
-
-COMPILER_RT_ABI enum GE_RESULT __gtdf2(fp_t a, fp_t b) { return __gedf2(a, b); }
+COMPILER_RT_ABI int
+__unorddf2(fp_t a, fp_t b) {
+    const rep_t aAbs = toRep(a) & absMask;
+    const rep_t bAbs = toRep(b) & absMask;
+    return aAbs > infRep || bAbs > infRep;
+}
 
 #if defined(__ARM_EABI__)
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI int __aeabi_dcmpun(fp_t a, fp_t b) { return __unorddf2(a, b); }
 #else
-AEABI_RTABI int __aeabi_dcmpun(fp_t a, fp_t b) COMPILER_RT_ALIAS(__unorddf2);
+COMPILER_RT_ALIAS(__unorddf2, __aeabi_dcmpun)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/comparesf2.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/comparesf2.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/comparesf2.c (original)
+++ compiler-rt/trunk/lib/builtins/comparesf2.c Sun Apr 28 17:46:23 2019
@@ -83,8 +83,11 @@ COMPILER_RT_ABI enum LE_RESULT __lesf2(f
 
 #if defined(__ELF__)
 // Alias for libgcc compatibility
-FNALIAS(__cmpsf2, __lesf2);
+COMPILER_RT_ALIAS(__lesf2, __cmpsf2)
 #endif
+COMPILER_RT_ALIAS(__lesf2, __eqsf2)
+COMPILER_RT_ALIAS(__lesf2, __ltsf2)
+COMPILER_RT_ALIAS(__lesf2, __nesf2)
 
 enum GE_RESULT {
   GE_LESS = -1,
@@ -121,26 +124,19 @@ COMPILER_RT_ABI enum GE_RESULT __gesf2(f
   }
 }
 
-COMPILER_RT_ABI int __unordsf2(fp_t a, fp_t b) {
-  const rep_t aAbs = toRep(a) & absMask;
-  const rep_t bAbs = toRep(b) & absMask;
-  return aAbs > infRep || bAbs > infRep;
-}
-
-// The following are alternative names for the preceding routines.
-
-COMPILER_RT_ABI enum LE_RESULT __eqsf2(fp_t a, fp_t b) { return __lesf2(a, b); }
+COMPILER_RT_ALIAS(__gesf2, __gtsf2)
 
-COMPILER_RT_ABI enum LE_RESULT __ltsf2(fp_t a, fp_t b) { return __lesf2(a, b); }
-
-COMPILER_RT_ABI enum LE_RESULT __nesf2(fp_t a, fp_t b) { return __lesf2(a, b); }
-
-COMPILER_RT_ABI enum GE_RESULT __gtsf2(fp_t a, fp_t b) { return __gesf2(a, b); }
+COMPILER_RT_ABI int
+__unordsf2(fp_t a, fp_t b) {
+    const rep_t aAbs = toRep(a) & absMask;
+    const rep_t bAbs = toRep(b) & absMask;
+    return aAbs > infRep || bAbs > infRep;
+}
 
 #if defined(__ARM_EABI__)
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI int __aeabi_fcmpun(fp_t a, fp_t b) { return __unordsf2(a, b); }
 #else
-AEABI_RTABI int __aeabi_fcmpun(fp_t a, fp_t b) COMPILER_RT_ALIAS(__unordsf2);
+COMPILER_RT_ALIAS(__unordsf2, __aeabi_fcmpun)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/comparetf2.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/comparetf2.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/comparetf2.c (original)
+++ compiler-rt/trunk/lib/builtins/comparetf2.c Sun Apr 28 17:46:23 2019
@@ -82,8 +82,11 @@ COMPILER_RT_ABI enum LE_RESULT __letf2(f
 
 #if defined(__ELF__)
 // Alias for libgcc compatibility
-FNALIAS(__cmptf2, __letf2);
+COMPILER_RT_ALIAS(__letf2, __cmptf2)
 #endif
+COMPILER_RT_ALIAS(__letf2, __eqtf2)
+COMPILER_RT_ALIAS(__letf2, __lttf2)
+COMPILER_RT_ALIAS(__letf2, __netf2)
 
 enum GE_RESULT {
   GE_LESS = -1,
@@ -120,20 +123,12 @@ COMPILER_RT_ABI enum GE_RESULT __getf2(f
   }
 }
 
+COMPILER_RT_ALIAS(__getf2, __gttf2)
+
 COMPILER_RT_ABI int __unordtf2(fp_t a, fp_t b) {
   const rep_t aAbs = toRep(a) & absMask;
   const rep_t bAbs = toRep(b) & absMask;
   return aAbs > infRep || bAbs > infRep;
 }
 
-// The following are alternative names for the preceding routines.
-
-COMPILER_RT_ABI enum LE_RESULT __eqtf2(fp_t a, fp_t b) { return __letf2(a, b); }
-
-COMPILER_RT_ABI enum LE_RESULT __lttf2(fp_t a, fp_t b) { return __letf2(a, b); }
-
-COMPILER_RT_ABI enum LE_RESULT __netf2(fp_t a, fp_t b) { return __letf2(a, b); }
-
-COMPILER_RT_ABI enum GE_RESULT __gttf2(fp_t a, fp_t b) { return __getf2(a, b); }
-
 #endif

Modified: compiler-rt/trunk/lib/builtins/divdf3.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/divdf3.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/divdf3.c (original)
+++ compiler-rt/trunk/lib/builtins/divdf3.c Sun Apr 28 17:46:23 2019
@@ -207,6 +207,6 @@ COMPILER_RT_ABI fp_t __divdf3(fp_t a, fp
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI fp_t __aeabi_ddiv(fp_t a, fp_t b) { return __divdf3(a, b); }
 #else
-AEABI_RTABI fp_t __aeabi_ddiv(fp_t a, fp_t b) COMPILER_RT_ALIAS(__divdf3);
+COMPILER_RT_ALIAS(__divdf3, __aeabi_ddiv)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/divsf3.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/divsf3.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/divsf3.c (original)
+++ compiler-rt/trunk/lib/builtins/divsf3.c Sun Apr 28 17:46:23 2019
@@ -191,6 +191,6 @@ COMPILER_RT_ABI fp_t __divsf3(fp_t a, fp
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI fp_t __aeabi_fdiv(fp_t a, fp_t b) { return __divsf3(a, b); }
 #else
-AEABI_RTABI fp_t __aeabi_fdiv(fp_t a, fp_t b) COMPILER_RT_ALIAS(__divsf3);
+COMPILER_RT_ALIAS(__divsf3, __aeabi_fdiv)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/divsi3.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/divsi3.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/divsi3.c (original)
+++ compiler-rt/trunk/lib/builtins/divsi3.c Sun Apr 28 17:46:23 2019
@@ -31,5 +31,5 @@ COMPILER_RT_ABI si_int __divsi3(si_int a
 }
 
 #if defined(__ARM_EABI__)
-AEABI_RTABI si_int __aeabi_idiv(si_int a, si_int b) COMPILER_RT_ALIAS(__divsi3);
+COMPILER_RT_ALIAS(__divsi3, __aeabi_idiv)
 #endif

Modified: compiler-rt/trunk/lib/builtins/extendhfsf2.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/extendhfsf2.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/extendhfsf2.c (original)
+++ compiler-rt/trunk/lib/builtins/extendhfsf2.c Sun Apr 28 17:46:23 2019
@@ -22,6 +22,6 @@ COMPILER_RT_ABI float __gnu_h2f_ieee(uin
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI float __aeabi_h2f(uint16_t a) { return __extendhfsf2(a); }
 #else
-AEABI_RTABI float __aeabi_h2f(uint16_t a) COMPILER_RT_ALIAS(__extendhfsf2);
+COMPILER_RT_ALIAS(__extendhfsf2, __aeabi_h2f)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/extendsfdf2.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/extendsfdf2.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/extendsfdf2.c (original)
+++ compiler-rt/trunk/lib/builtins/extendsfdf2.c Sun Apr 28 17:46:23 2019
@@ -16,6 +16,6 @@ COMPILER_RT_ABI double __extendsfdf2(flo
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI double __aeabi_f2d(float a) { return __extendsfdf2(a); }
 #else
-AEABI_RTABI double __aeabi_f2d(float a) COMPILER_RT_ALIAS(__extendsfdf2);
+COMPILER_RT_ALIAS(__extendsfdf2, __aeabi_f2d)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/fixdfdi.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/fixdfdi.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/fixdfdi.c (original)
+++ compiler-rt/trunk/lib/builtins/fixdfdi.c Sun Apr 28 17:46:23 2019
@@ -39,6 +39,6 @@ COMPILER_RT_ABI di_int __fixdfdi(fp_t a)
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI di_int __aeabi_d2lz(fp_t a) { return __fixdfdi(a); }
 #else
-AEABI_RTABI di_int __aeabi_d2lz(fp_t a) COMPILER_RT_ALIAS(__fixdfdi);
+COMPILER_RT_ALIAS(__fixdfdi, __aeabi_d2lz)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/fixdfsi.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/fixdfsi.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/fixdfsi.c (original)
+++ compiler-rt/trunk/lib/builtins/fixdfsi.c Sun Apr 28 17:46:23 2019
@@ -18,6 +18,6 @@ COMPILER_RT_ABI si_int __fixdfsi(fp_t a)
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI si_int __aeabi_d2iz(fp_t a) { return __fixdfsi(a); }
 #else
-AEABI_RTABI si_int __aeabi_d2iz(fp_t a) COMPILER_RT_ALIAS(__fixdfsi);
+COMPILER_RT_ALIAS(__fixdfsi, __aeabi_d2iz)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/fixsfdi.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/fixsfdi.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/fixsfdi.c (original)
+++ compiler-rt/trunk/lib/builtins/fixsfdi.c Sun Apr 28 17:46:23 2019
@@ -39,6 +39,6 @@ COMPILER_RT_ABI di_int __fixsfdi(fp_t a)
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI di_int __aeabi_f2lz(fp_t a) { return __fixsfdi(a); }
 #else
-AEABI_RTABI di_int __aeabi_f2lz(fp_t a) COMPILER_RT_ALIAS(__fixsfdi);
+COMPILER_RT_ALIAS(__fixsfdi, __aeabi_f2lz)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/fixsfsi.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/fixsfsi.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/fixsfsi.c (original)
+++ compiler-rt/trunk/lib/builtins/fixsfsi.c Sun Apr 28 17:46:23 2019
@@ -18,6 +18,6 @@ COMPILER_RT_ABI si_int __fixsfsi(fp_t a)
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI si_int __aeabi_f2iz(fp_t a) { return __fixsfsi(a); }
 #else
-AEABI_RTABI si_int __aeabi_f2iz(fp_t a) COMPILER_RT_ALIAS(__fixsfsi);
+COMPILER_RT_ALIAS(__fixsfsi, __aeabi_f2iz)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/fixunsdfdi.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/fixunsdfdi.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/fixunsdfdi.c (original)
+++ compiler-rt/trunk/lib/builtins/fixunsdfdi.c Sun Apr 28 17:46:23 2019
@@ -37,6 +37,6 @@ COMPILER_RT_ABI du_int __fixunsdfdi(fp_t
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI du_int __aeabi_d2ulz(fp_t a) { return __fixunsdfdi(a); }
 #else
-AEABI_RTABI du_int __aeabi_d2ulz(fp_t a) COMPILER_RT_ALIAS(__fixunsdfdi);
+COMPILER_RT_ALIAS(__fixunsdfdi, __aeabi_d2ulz)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/fixunsdfsi.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/fixunsdfsi.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/fixunsdfsi.c (original)
+++ compiler-rt/trunk/lib/builtins/fixunsdfsi.c Sun Apr 28 17:46:23 2019
@@ -17,6 +17,6 @@ COMPILER_RT_ABI su_int __fixunsdfsi(fp_t
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI su_int __aeabi_d2uiz(fp_t a) { return __fixunsdfsi(a); }
 #else
-AEABI_RTABI su_int __aeabi_d2uiz(fp_t a) COMPILER_RT_ALIAS(__fixunsdfsi);
+COMPILER_RT_ALIAS(__fixunsdfsi, __aeabi_d2uiz)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/fixunssfdi.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/fixunssfdi.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/fixunssfdi.c (original)
+++ compiler-rt/trunk/lib/builtins/fixunssfdi.c Sun Apr 28 17:46:23 2019
@@ -38,6 +38,6 @@ COMPILER_RT_ABI du_int __fixunssfdi(fp_t
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI du_int __aeabi_f2ulz(fp_t a) { return __fixunssfdi(a); }
 #else
-AEABI_RTABI du_int __aeabi_f2ulz(fp_t a) COMPILER_RT_ALIAS(__fixunssfdi);
+COMPILER_RT_ALIAS(__fixunssfdi, __aeabi_f2ulz)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/fixunssfsi.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/fixunssfsi.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/fixunssfsi.c (original)
+++ compiler-rt/trunk/lib/builtins/fixunssfsi.c Sun Apr 28 17:46:23 2019
@@ -21,6 +21,6 @@ COMPILER_RT_ABI su_int __fixunssfsi(fp_t
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI su_int __aeabi_f2uiz(fp_t a) { return __fixunssfsi(a); }
 #else
-AEABI_RTABI su_int __aeabi_f2uiz(fp_t a) COMPILER_RT_ALIAS(__fixunssfsi);
+COMPILER_RT_ALIAS(__fixunssfsi, __aeabi_f2uiz)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/floatdidf.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/floatdidf.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/floatdidf.c (original)
+++ compiler-rt/trunk/lib/builtins/floatdidf.c Sun Apr 28 17:46:23 2019
@@ -98,6 +98,6 @@ COMPILER_RT_ABI double __floatdidf(di_in
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI double __aeabi_l2d(di_int a) { return __floatdidf(a); }
 #else
-AEABI_RTABI double __aeabi_l2d(di_int a) COMPILER_RT_ALIAS(__floatdidf);
+COMPILER_RT_ALIAS(__floatdidf, __aeabi_l2d)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/floatdisf.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/floatdisf.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/floatdisf.c (original)
+++ compiler-rt/trunk/lib/builtins/floatdisf.c Sun Apr 28 17:46:23 2019
@@ -70,6 +70,6 @@ COMPILER_RT_ABI float __floatdisf(di_int
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI float __aeabi_l2f(di_int a) { return __floatdisf(a); }
 #else
-AEABI_RTABI float __aeabi_l2f(di_int a) COMPILER_RT_ALIAS(__floatdisf);
+COMPILER_RT_ALIAS(__floatdisf, __aeabi_l2f)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/floatsidf.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/floatsidf.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/floatsidf.c (original)
+++ compiler-rt/trunk/lib/builtins/floatsidf.c Sun Apr 28 17:46:23 2019
@@ -52,6 +52,6 @@ COMPILER_RT_ABI fp_t __floatsidf(int a)
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI fp_t __aeabi_i2d(int a) { return __floatsidf(a); }
 #else
-AEABI_RTABI fp_t __aeabi_i2d(int a) COMPILER_RT_ALIAS(__floatsidf);
+COMPILER_RT_ALIAS(__floatsidf, __aeabi_i2d)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/floatsisf.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/floatsisf.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/floatsisf.c (original)
+++ compiler-rt/trunk/lib/builtins/floatsisf.c Sun Apr 28 17:46:23 2019
@@ -60,6 +60,6 @@ COMPILER_RT_ABI fp_t __floatsisf(int a)
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI fp_t __aeabi_i2f(int a) { return __floatsisf(a); }
 #else
-AEABI_RTABI fp_t __aeabi_i2f(int a) COMPILER_RT_ALIAS(__floatsisf);
+COMPILER_RT_ALIAS(__floatsisf, __aeabi_i2f)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/floatundidf.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/floatundidf.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/floatundidf.c (original)
+++ compiler-rt/trunk/lib/builtins/floatundidf.c Sun Apr 28 17:46:23 2019
@@ -101,6 +101,6 @@ COMPILER_RT_ABI double __floatundidf(du_
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI double __aeabi_ul2d(du_int a) { return __floatundidf(a); }
 #else
-AEABI_RTABI double __aeabi_ul2d(du_int a) COMPILER_RT_ALIAS(__floatundidf);
+COMPILER_RT_ALIAS(__floatundidf, __aeabi_ul2d)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/floatundisf.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/floatundisf.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/floatundisf.c (original)
+++ compiler-rt/trunk/lib/builtins/floatundisf.c Sun Apr 28 17:46:23 2019
@@ -67,6 +67,6 @@ COMPILER_RT_ABI float __floatundisf(du_i
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI float __aeabi_ul2f(du_int a) { return __floatundisf(a); }
 #else
-AEABI_RTABI float __aeabi_ul2f(du_int a) COMPILER_RT_ALIAS(__floatundisf);
+COMPILER_RT_ALIAS(__floatundisf, __aeabi_ul2f)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/floatunsidf.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/floatunsidf.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/floatunsidf.c (original)
+++ compiler-rt/trunk/lib/builtins/floatunsidf.c Sun Apr 28 17:46:23 2019
@@ -42,6 +42,6 @@ COMPILER_RT_ABI fp_t __floatunsidf(unsig
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI fp_t __aeabi_ui2d(unsigned int a) { return __floatunsidf(a); }
 #else
-AEABI_RTABI fp_t __aeabi_ui2d(unsigned int a) COMPILER_RT_ALIAS(__floatunsidf);
+COMPILER_RT_ALIAS(__floatunsidf, __aeabi_ui2d)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/floatunsisf.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/floatunsisf.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/floatunsisf.c (original)
+++ compiler-rt/trunk/lib/builtins/floatunsisf.c Sun Apr 28 17:46:23 2019
@@ -52,6 +52,6 @@ COMPILER_RT_ABI fp_t __floatunsisf(unsig
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI fp_t __aeabi_ui2f(unsigned int a) { return __floatunsisf(a); }
 #else
-AEABI_RTABI fp_t __aeabi_ui2f(unsigned int a) COMPILER_RT_ALIAS(__floatunsisf);
+COMPILER_RT_ALIAS(__floatunsisf, __aeabi_ui2f)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/int_lib.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/int_lib.h?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/int_lib.h (original)
+++ compiler-rt/trunk/lib/builtins/int_lib.h Sun Apr 28 17:46:23 2019
@@ -18,17 +18,6 @@
 // Assumption: Right shift of signed negative is arithmetic shift.
 // Assumption: Endianness is little or big (not mixed).
 
-#if defined(__ELF__)
-#define FNALIAS(alias_name, original_name)                                     \
-  void alias_name() __attribute__((__alias__(#original_name)))
-#define COMPILER_RT_ALIAS(aliasee) __attribute__((__alias__(#aliasee)))
-#else
-#define FNALIAS(alias, name)                                                   \
-  _Pragma("GCC error(\"alias unsupported on this file format\")")
-#define COMPILER_RT_ALIAS(aliasee)                                             \
-  _Pragma("GCC error(\"alias unsupported on this file format\")")
-#endif
-
 // ABI macro definitions
 
 #if __ARM_EABI__
@@ -55,6 +44,24 @@
 #define UNUSED __attribute__((unused))
 #endif
 
+#define STR(a) #a
+#define XSTR(a) STR(a)
+#define SYMBOL_NAME(name) XSTR(__USER_LABEL_PREFIX__) #name
+
+#if defined(__ELF__) || defined(__MINGW32__) || defined(__wasm__)
+#define COMPILER_RT_ALIAS(name, aliasname) \
+  COMPILER_RT_ABI __typeof(name) aliasname __attribute__((__alias__(#name)));
+#elif defines(__MACH__)
+#define COMPILER_RT_ALIAS(name, aliasname) \
+  __asm__(".globl " SYMBOL_NAME(aliasname)); \
+  __asm__(SYMBOL_NAME(aliasname) " = " SYMBOL_NAME(name)) \
+  COMPILER_RT_ABI __typeof(name) aliasname;
+#elif defined(_WIN32)
+#define COMPILER_RT_ALIAS(name, aliasname)
+#else
+#error Unsupported target
+#endif
+
 #if defined(__NetBSD__) && (defined(_KERNEL) || defined(_STANDALONE))
 //
 // Kernel and boot environment can't use normal headers,

Modified: compiler-rt/trunk/lib/builtins/lshrdi3.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/lshrdi3.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/lshrdi3.c (original)
+++ compiler-rt/trunk/lib/builtins/lshrdi3.c Sun Apr 28 17:46:23 2019
@@ -34,6 +34,5 @@ COMPILER_RT_ABI di_int __lshrdi3(di_int
 }
 
 #if defined(__ARM_EABI__)
-AEABI_RTABI di_int __aeabi_llsr(di_int a, si_int b)
-    COMPILER_RT_ALIAS(__lshrdi3);
+COMPILER_RT_ALIAS(__lshrdi3, __aeabi_llsr)
 #endif

Modified: compiler-rt/trunk/lib/builtins/muldf3.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/muldf3.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/muldf3.c (original)
+++ compiler-rt/trunk/lib/builtins/muldf3.c Sun Apr 28 17:46:23 2019
@@ -20,6 +20,6 @@ COMPILER_RT_ABI fp_t __muldf3(fp_t a, fp
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI fp_t __aeabi_dmul(fp_t a, fp_t b) { return __muldf3(a, b); }
 #else
-AEABI_RTABI fp_t __aeabi_dmul(fp_t a, fp_t b) COMPILER_RT_ALIAS(__muldf3);
+COMPILER_RT_ALIAS(__muldf3, __aeabi_dmul)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/muldi3.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/muldi3.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/muldi3.c (original)
+++ compiler-rt/trunk/lib/builtins/muldi3.c Sun Apr 28 17:46:23 2019
@@ -47,5 +47,5 @@ COMPILER_RT_ABI di_int __muldi3(di_int a
 }
 
 #if defined(__ARM_EABI__)
-AEABI_RTABI di_int __aeabi_lmul(di_int a, di_int b) COMPILER_RT_ALIAS(__muldi3);
+COMPILER_RT_ALIAS(__muldi3, __aeabi_lmul)
 #endif

Modified: compiler-rt/trunk/lib/builtins/mulsf3.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/mulsf3.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/mulsf3.c (original)
+++ compiler-rt/trunk/lib/builtins/mulsf3.c Sun Apr 28 17:46:23 2019
@@ -20,6 +20,6 @@ COMPILER_RT_ABI fp_t __mulsf3(fp_t a, fp
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI fp_t __aeabi_fmul(fp_t a, fp_t b) { return __mulsf3(a, b); }
 #else
-AEABI_RTABI fp_t __aeabi_fmul(fp_t a, fp_t b) COMPILER_RT_ALIAS(__mulsf3);
+COMPILER_RT_ALIAS(__mulsf3, __aeabi_fmul)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/negdf2.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/negdf2.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/negdf2.c (original)
+++ compiler-rt/trunk/lib/builtins/negdf2.c Sun Apr 28 17:46:23 2019
@@ -19,6 +19,6 @@ COMPILER_RT_ABI fp_t __negdf2(fp_t a) {
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI fp_t __aeabi_dneg(fp_t a) { return __negdf2(a); }
 #else
-AEABI_RTABI fp_t __aeabi_dneg(fp_t a) COMPILER_RT_ALIAS(__negdf2);
+COMPILER_RT_ALIAS(__negdf2, __aeabi_dneg)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/negsf2.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/negsf2.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/negsf2.c (original)
+++ compiler-rt/trunk/lib/builtins/negsf2.c Sun Apr 28 17:46:23 2019
@@ -19,6 +19,6 @@ COMPILER_RT_ABI fp_t __negsf2(fp_t a) {
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI fp_t __aeabi_fneg(fp_t a) { return __negsf2(a); }
 #else
-AEABI_RTABI fp_t __aeabi_fneg(fp_t a) COMPILER_RT_ALIAS(__negsf2);
+COMPILER_RT_ALIAS(__negsf2, __aeabi_fneg)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/subdf3.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/subdf3.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/subdf3.c (original)
+++ compiler-rt/trunk/lib/builtins/subdf3.c Sun Apr 28 17:46:23 2019
@@ -23,6 +23,6 @@ COMPILER_RT_ABI fp_t __subdf3(fp_t a, fp
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI fp_t __aeabi_dsub(fp_t a, fp_t b) { return __subdf3(a, b); }
 #else
-AEABI_RTABI fp_t __aeabi_dsub(fp_t a, fp_t b) COMPILER_RT_ALIAS(__subdf3);
+COMPILER_RT_ALIAS(__subdf3, __aeabi_dsub)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/subsf3.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/subsf3.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/subsf3.c (original)
+++ compiler-rt/trunk/lib/builtins/subsf3.c Sun Apr 28 17:46:23 2019
@@ -23,6 +23,6 @@ COMPILER_RT_ABI fp_t __subsf3(fp_t a, fp
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI fp_t __aeabi_fsub(fp_t a, fp_t b) { return __subsf3(a, b); }
 #else
-AEABI_RTABI fp_t __aeabi_fsub(fp_t a, fp_t b) COMPILER_RT_ALIAS(__subsf3);
+COMPILER_RT_ALIAS(__subsf3, __aeabi_fsub)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/truncdfhf2.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/truncdfhf2.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/truncdfhf2.c (original)
+++ compiler-rt/trunk/lib/builtins/truncdfhf2.c Sun Apr 28 17:46:23 2019
@@ -16,6 +16,6 @@ COMPILER_RT_ABI uint16_t __truncdfhf2(do
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI uint16_t __aeabi_d2h(double a) { return __truncdfhf2(a); }
 #else
-AEABI_RTABI uint16_t __aeabi_d2h(double a) COMPILER_RT_ALIAS(__truncdfhf2);
+COMPILER_RT_ALIAS(__truncdfhf2, __aeabi_d2h)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/truncdfsf2.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/truncdfsf2.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/truncdfsf2.c (original)
+++ compiler-rt/trunk/lib/builtins/truncdfsf2.c Sun Apr 28 17:46:23 2019
@@ -16,6 +16,6 @@ COMPILER_RT_ABI float __truncdfsf2(doubl
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI float __aeabi_d2f(double a) { return __truncdfsf2(a); }
 #else
-AEABI_RTABI float __aeabi_d2f(double a) COMPILER_RT_ALIAS(__truncdfsf2);
+COMPILER_RT_ALIAS(__truncdfsf2, __aeabi_d2f)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/truncsfhf2.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/truncsfhf2.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/truncsfhf2.c (original)
+++ compiler-rt/trunk/lib/builtins/truncsfhf2.c Sun Apr 28 17:46:23 2019
@@ -22,6 +22,6 @@ COMPILER_RT_ABI uint16_t __gnu_f2h_ieee(
 #if defined(COMPILER_RT_ARMHF_TARGET)
 AEABI_RTABI uint16_t __aeabi_f2h(float a) { return __truncsfhf2(a); }
 #else
-AEABI_RTABI uint16_t __aeabi_f2h(float a) COMPILER_RT_ALIAS(__truncsfhf2);
+COMPILER_RT_ALIAS(__truncsfhf2, __aeabi_f2h)
 #endif
 #endif

Modified: compiler-rt/trunk/lib/builtins/udivsi3.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/udivsi3.c?rev=359413&r1=359412&r2=359413&view=diff
==============================================================================
--- compiler-rt/trunk/lib/builtins/udivsi3.c (original)
+++ compiler-rt/trunk/lib/builtins/udivsi3.c Sun Apr 28 17:46:23 2019
@@ -58,6 +58,5 @@ COMPILER_RT_ABI su_int __udivsi3(su_int
 }
 
 #if defined(__ARM_EABI__)
-AEABI_RTABI su_int __aeabi_uidiv(su_int n, su_int d)
-    COMPILER_RT_ALIAS(__udivsi3);
+COMPILER_RT_ALIAS(__udivsi3, __aeabi_uidiv)
 #endif




More information about the llvm-commits mailing list