[Hexagon] MaxAtomicPromoteWidth and MaxAtomicInlineWidth are not getting set.
authorSid Manning <sidneym@quicinc.com>
Mon, 30 Mar 2020 17:22:35 +0000 (12:22 -0500)
committerSid Manning <sidneym@quicinc.com>
Mon, 30 Mar 2020 17:33:51 +0000 (12:33 -0500)
Noticed when building llvm's c++ library.

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

clang/lib/Basic/Targets/Hexagon.h
clang/test/Preprocessor/hexagon-predefines.c

index 89e3fa3..7e173df 100644 (file)
@@ -57,6 +57,7 @@ public:
     LargeArrayAlign = 64;
     UseBitFieldTypeAlignment = true;
     ZeroLengthBitfieldBoundary = 32;
+    MaxAtomicPromoteWidth = MaxAtomicInlineWidth = 64;
 
     // These are the default values anyway, but explicitly make sure
     // that the size of the boolean type is 8 bits. Bool vectors are used
index 54013ce..7979d56 100644 (file)
 // CHECK-LINUX: #define __unix__ 1
 // CHECK-LINUX: #define linux 1
 // CHECK-LINUX: #define unix 1
+
+// RUN: %clang_cc1 -E -dM -triple hexagon-unknown-linux-musl \
+// RUN: -target-cpu hexagonv67 -target-feature +hvxv67 \
+// RUN: -target-feature +hvx-length128b %s | FileCheck \
+// RUN: %s -check-prefix CHECK-ATOMIC
+// CHECK-ATOMIC: #define __CLANG_ATOMIC_BOOL_LOCK_FREE 2
+// CHECK-ATOMIC: #define __CLANG_ATOMIC_CHAR16_T_LOCK_FREE 2
+// CHECK-ATOMIC: #define __CLANG_ATOMIC_CHAR32_T_LOCK_FREE 2
+// CHECK-ATOMIC: #define __CLANG_ATOMIC_CHAR_LOCK_FREE 2
+// CHECK-ATOMIC: #define __CLANG_ATOMIC_INT_LOCK_FREE 2
+// CHECK-ATOMIC: #define __CLANG_ATOMIC_LLONG_LOCK_FREE 2
+// CHECK-ATOMIC: #define __CLANG_ATOMIC_LONG_LOCK_FREE 2
+// CHECK-ATOMIC: #define __CLANG_ATOMIC_POINTER_LOCK_FREE 2
+// CHECK-ATOMIC: #define __CLANG_ATOMIC_SHORT_LOCK_FREE 2
+// CHECK-ATOMIC: #define __CLANG_ATOMIC_WCHAR_T_LOCK_FREE 2