diff options
author | Nick Sarnie <nick.sarnie@intel.com> | 2025-04-25 17:44:40 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-25 17:44:40 +0000 |
commit | 62328ab7fcaeea023b454b4e78fc6c7756439bf4 (patch) | |
tree | 75df9945af55349d26575325fc9f915a38a42481 /clang/lib | |
parent | a643ac439594a0a53799ee42932eef53618b091c (diff) | |
download | llvm-revert-128222-cuda.zip llvm-revert-128222-cuda.tar.gz llvm-revert-128222-cuda.tar.bz2 |
Revert "[clang][ARM][AArch64] Define intrinsics guarded by __has_builtin on a…"revert-128222-cuda
This reverts commit de0153da325b21340747d8a064906a8c1c2f95ea.
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/Headers/arm_acle.h | 47 | ||||
-rw-r--r-- | clang/lib/Sema/SemaARM.cpp | 6 |
2 files changed, 39 insertions, 14 deletions
diff --git a/clang/lib/Headers/arm_acle.h b/clang/lib/Headers/arm_acle.h index 5cfa3d0..aabcbe0 100644 --- a/clang/lib/Headers/arm_acle.h +++ b/clang/lib/Headers/arm_acle.h @@ -29,16 +29,47 @@ extern "C" { /* 7 SYNCHRONIZATION, BARRIER AND HINT INTRINSICS */ /* 7.3 Memory barriers */ -void __dmb(unsigned int); -void __dsb(unsigned int); -void __isb(unsigned int); +#if !__has_builtin(__dmb) +#define __dmb(i) __builtin_arm_dmb(i) +#endif +#if !__has_builtin(__dsb) +#define __dsb(i) __builtin_arm_dsb(i) +#endif +#if !__has_builtin(__isb) +#define __isb(i) __builtin_arm_isb(i) +#endif /* 7.4 Hints */ -void __wfi(void); -void __wfe(void); -void __sev(void); -void __sevl(void); -void __yield(void); + +#if !__has_builtin(__wfi) +static __inline__ void __attribute__((__always_inline__, __nodebug__)) __wfi(void) { + __builtin_arm_wfi(); +} +#endif + +#if !__has_builtin(__wfe) +static __inline__ void __attribute__((__always_inline__, __nodebug__)) __wfe(void) { + __builtin_arm_wfe(); +} +#endif + +#if !__has_builtin(__sev) +static __inline__ void __attribute__((__always_inline__, __nodebug__)) __sev(void) { + __builtin_arm_sev(); +} +#endif + +#if !__has_builtin(__sevl) +static __inline__ void __attribute__((__always_inline__, __nodebug__)) __sevl(void) { + __builtin_arm_sevl(); +} +#endif + +#if !__has_builtin(__yield) +static __inline__ void __attribute__((__always_inline__, __nodebug__)) __yield(void) { + __builtin_arm_yield(); +} +#endif #if defined(__ARM_32BIT_STATE) && __ARM_32BIT_STATE #define __dbg(t) __builtin_arm_dbg(t) diff --git a/clang/lib/Sema/SemaARM.cpp b/clang/lib/Sema/SemaARM.cpp index c1cfea0..de6cf1a 100644 --- a/clang/lib/Sema/SemaARM.cpp +++ b/clang/lib/Sema/SemaARM.cpp @@ -1010,11 +1010,8 @@ bool SemaARM::CheckARMBuiltinFunctionCall(const TargetInfo &TI, case ARM::BI__builtin_arm_vcvtr_d: return SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, 1); case ARM::BI__builtin_arm_dmb: - case ARM::BI__dmb: case ARM::BI__builtin_arm_dsb: - case ARM::BI__dsb: case ARM::BI__builtin_arm_isb: - case ARM::BI__isb: case ARM::BI__builtin_arm_dbg: return SemaRef.BuiltinConstantArgRange(TheCall, 0, 0, 15); case ARM::BI__builtin_arm_cdp: @@ -1111,11 +1108,8 @@ bool SemaARM::CheckAArch64BuiltinFunctionCall(const TargetInfo &TI, switch (BuiltinID) { default: return false; case AArch64::BI__builtin_arm_dmb: - case AArch64::BI__dmb: case AArch64::BI__builtin_arm_dsb: - case AArch64::BI__dsb: case AArch64::BI__builtin_arm_isb: - case AArch64::BI__isb: l = 0; u = 15; break; |