Skip to content

Commit c044d82

Browse files
authored
[SYCL][libdevice] Solve inline attr conflict when building libdevice (#6007)
Signed-off-by: jinge90 <[email protected]>
1 parent ff384bb commit c044d82

11 files changed

+299
-298
lines changed

libdevice/cmath_wrapper.cpp

Lines changed: 56 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -10,31 +10,31 @@
1010

1111
#ifdef __SPIR__
1212

13-
DEVICE_EXTERN_C
13+
DEVICE_EXTERN_C_INLINE
1414
int abs(int x) { return __devicelib_abs(x); }
1515

16-
DEVICE_EXTERN_C
16+
DEVICE_EXTERN_C_INLINE
1717
long int labs(long int x) { return __devicelib_labs(x); }
1818

19-
DEVICE_EXTERN_C
19+
DEVICE_EXTERN_C_INLINE
2020
long long int llabs(long long int x) { return __devicelib_llabs(x); }
2121

22-
DEVICE_EXTERN_C
22+
DEVICE_EXTERN_C_INLINE
2323
div_t div(int x, int y) { return __devicelib_div(x, y); }
2424

25-
DEVICE_EXTERN_C
25+
DEVICE_EXTERN_C_INLINE
2626
ldiv_t ldiv(long x, long y) { return __devicelib_ldiv(x, y); }
2727

28-
DEVICE_EXTERN_C
28+
DEVICE_EXTERN_C_INLINE
2929
lldiv_t lldiv(long long x, long long y) { return __devicelib_lldiv(x, y); }
3030

31-
DEVICE_EXTERN_C
31+
DEVICE_EXTERN_C_INLINE
3232
float scalbnf(float x, int n) { return __devicelib_scalbnf(x, n); }
3333

34-
DEVICE_EXTERN_C
34+
DEVICE_EXTERN_C_INLINE
3535
float logf(float x) { return __devicelib_logf(x); }
3636

37-
DEVICE_EXTERN_C
37+
DEVICE_EXTERN_C_INLINE
3838
float expf(float x) { return __devicelib_expf(x); }
3939
// On Windows, the math.h includes wrapper definition for functions:
4040
// frexpf, ldexpf, hypotf, so we can't provide these 3 functions in
@@ -44,121 +44,121 @@ float expf(float x) { return __devicelib_expf(x); }
4444
// frexp and ldexp. frexpf and ldexpf can only be used on platforms
4545
// with fp64 support currently.
4646
#ifndef _WIN32
47-
DEVICE_EXTERN_C
47+
DEVICE_EXTERN_C_INLINE
4848
float frexpf(float x, int *exp) { return __devicelib_frexpf(x, exp); }
4949

50-
DEVICE_EXTERN_C
50+
DEVICE_EXTERN_C_INLINE
5151
float ldexpf(float x, int exp) { return __devicelib_ldexpf(x, exp); }
5252
#endif
5353

54-
DEVICE_EXTERN_C
54+
DEVICE_EXTERN_C_INLINE
5555
float log10f(float x) { return __devicelib_log10f(x); }
5656

57-
DEVICE_EXTERN_C
57+
DEVICE_EXTERN_C_INLINE
5858
float modff(float x, float *intpart) { return __devicelib_modff(x, intpart); }
5959

60-
DEVICE_EXTERN_C
60+
DEVICE_EXTERN_C_INLINE
6161
float exp2f(float x) { return __devicelib_exp2f(x); }
6262

63-
DEVICE_EXTERN_C
63+
DEVICE_EXTERN_C_INLINE
6464
float expm1f(float x) { return __devicelib_expm1f(x); }
6565

66-
DEVICE_EXTERN_C
66+
DEVICE_EXTERN_C_INLINE
6767
int ilogbf(float x) { return __devicelib_ilogbf(x); }
6868

69-
DEVICE_EXTERN_C
69+
DEVICE_EXTERN_C_INLINE
7070
float log1pf(float x) { return __devicelib_log1pf(x); }
7171

72-
DEVICE_EXTERN_C
72+
DEVICE_EXTERN_C_INLINE
7373
float log2f(float x) { return __devicelib_log2f(x); }
7474

75-
DEVICE_EXTERN_C
75+
DEVICE_EXTERN_C_INLINE
7676
float logbf(float x) { return __devicelib_logbf(x); }
7777

78-
DEVICE_EXTERN_C
78+
DEVICE_EXTERN_C_INLINE
7979
float sqrtf(float x) { return __devicelib_sqrtf(x); }
8080

81-
DEVICE_EXTERN_C
81+
DEVICE_EXTERN_C_INLINE
8282
float cbrtf(float x) { return __devicelib_cbrtf(x); }
8383

8484
#ifndef _WIN32
85-
DEVICE_EXTERN_C
85+
DEVICE_EXTERN_C_INLINE
8686
float hypotf(float x, float y) { return __devicelib_hypotf(x, y); }
8787
#else
88-
DEVICE_EXTERN_C
88+
DEVICE_EXTERN_C_INLINE
8989
float _hypotf(float x, float y) { return __devicelib_hypotf(x, y); }
9090
#endif
9191

92-
DEVICE_EXTERN_C
92+
DEVICE_EXTERN_C_INLINE
9393
float erff(float x) { return __devicelib_erff(x); }
9494

95-
DEVICE_EXTERN_C
95+
DEVICE_EXTERN_C_INLINE
9696
float erfcf(float x) { return __devicelib_erfcf(x); }
9797

98-
DEVICE_EXTERN_C
98+
DEVICE_EXTERN_C_INLINE
9999
float tgammaf(float x) { return __devicelib_tgammaf(x); }
100100

101-
DEVICE_EXTERN_C
101+
DEVICE_EXTERN_C_INLINE
102102
float lgammaf(float x) { return __devicelib_lgammaf(x); }
103103

104-
DEVICE_EXTERN_C
104+
DEVICE_EXTERN_C_INLINE
105105
float fmodf(float x, float y) { return __devicelib_fmodf(x, y); }
106106

107-
DEVICE_EXTERN_C
107+
DEVICE_EXTERN_C_INLINE
108108
float remainderf(float x, float y) { return __devicelib_remainderf(x, y); }
109109

110-
DEVICE_EXTERN_C
110+
DEVICE_EXTERN_C_INLINE
111111
float remquof(float x, float y, int *q) { return __devicelib_remquof(x, y, q); }
112112

113-
DEVICE_EXTERN_C
113+
DEVICE_EXTERN_C_INLINE
114114
float nextafterf(float x, float y) { return __devicelib_nextafterf(x, y); }
115115

116-
DEVICE_EXTERN_C
116+
DEVICE_EXTERN_C_INLINE
117117
float fdimf(float x, float y) { return __devicelib_fdimf(x, y); }
118118

119-
DEVICE_EXTERN_C
119+
DEVICE_EXTERN_C_INLINE
120120
float fmaf(float x, float y, float z) { return __devicelib_fmaf(x, y, z); }
121121

122-
DEVICE_EXTERN_C
122+
DEVICE_EXTERN_C_INLINE
123123
float sinf(float x) { return __devicelib_sinf(x); }
124124

125-
DEVICE_EXTERN_C
125+
DEVICE_EXTERN_C_INLINE
126126
float cosf(float x) { return __devicelib_cosf(x); }
127127

128-
DEVICE_EXTERN_C
128+
DEVICE_EXTERN_C_INLINE
129129
float tanf(float x) { return __devicelib_tanf(x); }
130130

131-
DEVICE_EXTERN_C
131+
DEVICE_EXTERN_C_INLINE
132132
float powf(float x, float y) { return __devicelib_powf(x, y); }
133133

134-
DEVICE_EXTERN_C
134+
DEVICE_EXTERN_C_INLINE
135135
float acosf(float x) { return __devicelib_acosf(x); }
136136

137-
DEVICE_EXTERN_C
137+
DEVICE_EXTERN_C_INLINE
138138
float asinf(float x) { return __devicelib_asinf(x); }
139139

140-
DEVICE_EXTERN_C
140+
DEVICE_EXTERN_C_INLINE
141141
float atanf(float x) { return __devicelib_atanf(x); }
142142

143-
DEVICE_EXTERN_C
143+
DEVICE_EXTERN_C_INLINE
144144
float atan2f(float x, float y) { return __devicelib_atan2f(x, y); }
145145

146-
DEVICE_EXTERN_C
146+
DEVICE_EXTERN_C_INLINE
147147
float coshf(float x) { return __devicelib_coshf(x); }
148148

149-
DEVICE_EXTERN_C
149+
DEVICE_EXTERN_C_INLINE
150150
float sinhf(float x) { return __devicelib_sinhf(x); }
151151

152-
DEVICE_EXTERN_C
152+
DEVICE_EXTERN_C_INLINE
153153
float tanhf(float x) { return __devicelib_tanhf(x); }
154154

155-
DEVICE_EXTERN_C
155+
DEVICE_EXTERN_C_INLINE
156156
float acoshf(float x) { return __devicelib_acoshf(x); }
157157

158-
DEVICE_EXTERN_C
158+
DEVICE_EXTERN_C_INLINE
159159
float asinhf(float x) { return __devicelib_asinhf(x); }
160160

161-
DEVICE_EXTERN_C
161+
DEVICE_EXTERN_C_INLINE
162162
float atanhf(float x) { return __devicelib_atanhf(x); }
163163

164164
#if defined(_WIN32)
@@ -186,7 +186,7 @@ union _Dconst { // pun float types as integer array
186186
{ 0, w0 }
187187

188188
#define _FXbig (float)((NBITS + 1) * 347L / 1000)
189-
DEVICE_EXTERN_C
189+
DEVICE_EXTERN_C_INLINE
190190
short _FDtest(float *px) { // categorize *px
191191
_Fval *ps = (_Fval *)(char *)px;
192192
short ret = 0;
@@ -201,7 +201,7 @@ short _FDtest(float *px) { // categorize *px
201201

202202
// Returns _FP_LT, _FP_GT or _FP_EQ based on the ordering
203203
// relationship between x and y. '0' means unordered.
204-
DEVICE_EXTERN_C
204+
DEVICE_EXTERN_C_INLINE
205205
int _fdpcomp(float x, float y) {
206206
int res = 0;
207207
if (_FDtest(&x) == _NANCODE || _FDtest(&y) == _NANCODE) {
@@ -220,11 +220,11 @@ int _fdpcomp(float x, float y) {
220220
}
221221

222222
// Returns 0, if the sign bit is not set, and non-zero otherwise.
223-
DEVICE_EXTERN_C
223+
DEVICE_EXTERN_C_INLINE
224224
int _fdsign(float x) { return FSIGN(x); }
225225

226226
// fpclassify() equivalent with a pointer argument.
227-
DEVICE_EXTERN_C
227+
DEVICE_EXTERN_C_INLINE
228228
short _fdtest(float *px) {
229229
switch (_FDtest(px)) {
230230
case _DENORM:
@@ -240,7 +240,7 @@ short _fdtest(float *px) {
240240
return FP_ZERO;
241241
}
242242

243-
DEVICE_EXTERN_C
243+
DEVICE_EXTERN_C_INLINE
244244
short _FDnorm(_Fval *ps) { // normalize float fraction
245245
short xchar;
246246
unsigned short sign = (unsigned short)(ps->_Sh[_F0] & _FSIGN);
@@ -267,7 +267,7 @@ short _FDnorm(_Fval *ps) { // normalize float fraction
267267
return xchar;
268268
}
269269

270-
DEVICE_EXTERN_C
270+
DEVICE_EXTERN_C_INLINE
271271
short _FDscale(float *px, long lexp) { // scale *px by 2^xexp with checking
272272
_Dconst _FInf = {INIT(_FMAX << _FOFF)};
273273
_Fval *ps = (_Fval *)(char *)px;
@@ -327,7 +327,7 @@ short _FDscale(float *px, long lexp) { // scale *px by 2^xexp with checking
327327
return ret;
328328
}
329329

330-
DEVICE_EXTERN_C
330+
DEVICE_EXTERN_C_INLINE
331331
short _FExp(float *px, float y,
332332
short eoff) { // compute y * e^(*px), (*px) finite, |y| not huge
333333
static const float hugexp = FHUGE_EXP;
@@ -364,7 +364,7 @@ short _FExp(float *px, float y,
364364
return ret;
365365
}
366366

367-
DEVICE_EXTERN_C
367+
DEVICE_EXTERN_C_INLINE
368368
float _FCosh(float x, float y) { // compute y * cosh(x), |y| <= 1
369369
switch (_FDtest(&x)) { // test for special codes
370370
case _NANCODE:
@@ -388,7 +388,7 @@ float _FCosh(float x, float y) { // compute y * cosh(x), |y| <= 1
388388
}
389389
}
390390

391-
DEVICE_EXTERN_C
391+
DEVICE_EXTERN_C_INLINE
392392
float _FSinh(float x, float y) { // compute y * sinh(x), |y| <= 1
393393
_Dconst _FRteps = {INIT((_FBIAS - NBITS / 2) << _FOFF)};
394394
static const float p[] = {0.00020400F, 0.00832983F, 0.16666737F, 0.99999998F};

0 commit comments

Comments
 (0)