[clang] bce2cc1 - [clang] Set __GCC_*STRUCTIVE_SIZE on Aarch64
David Majnemer via cfe-commits
cfe-commits at lists.llvm.org
Thu Jan 30 16:12:32 PST 2025
Author: David Majnemer
Date: 2025-01-31T00:11:27Z
New Revision: bce2cc15133a1458e4ad053085e58c7423c365b4
URL: https://github.com/llvm/llvm-project/commit/bce2cc15133a1458e4ad053085e58c7423c365b4
DIFF: https://github.com/llvm/llvm-project/commit/bce2cc15133a1458e4ad053085e58c7423c365b4.diff
LOG: [clang] Set __GCC_*STRUCTIVE_SIZE on Aarch64
Before this change, we would set this to Clang's default of {64, 64}.
Now, we explicitly set it to {256, 64} which matches our ARM behavior
for ARMv8 targets and GCC's behavior for AArch64 targets.
Added:
Modified:
clang/lib/Basic/Targets/AArch64.h
clang/test/Preprocessor/init-aarch64.c
Removed:
################################################################################
diff --git a/clang/lib/Basic/Targets/AArch64.h b/clang/lib/Basic/Targets/AArch64.h
index 600940f5e4e23c..8695c0750ee32d 100644
--- a/clang/lib/Basic/Targets/AArch64.h
+++ b/clang/lib/Basic/Targets/AArch64.h
@@ -227,6 +227,11 @@ class LLVM_LIBRARY_VISIBILITY AArch64TargetInfo : public TargetInfo {
bool validatePointerAuthKey(const llvm::APSInt &value) const override;
const char *getBFloat16Mangling() const override { return "u6__bf16"; };
+
+ std::pair<unsigned, unsigned> hardwareInterferenceSizes() const override {
+ return std::make_pair(256, 64);
+ }
+
bool hasInt128Type() const override;
bool hasBitIntType() const override { return true; }
diff --git a/clang/test/Preprocessor/init-aarch64.c b/clang/test/Preprocessor/init-aarch64.c
index 5f47de4b49b699..3036b496db25db 100644
--- a/clang/test/Preprocessor/init-aarch64.c
+++ b/clang/test/Preprocessor/init-aarch64.c
@@ -125,8 +125,8 @@
// AARCH64-NEXT: #define __FP_FAST_FMAF 1
// AARCH64-NEXT: #define __FUNCTION_MULTI_VERSIONING_SUPPORT_LEVEL 202430
// AARCH64-NEXT: #define __GCC_ASM_FLAG_OUTPUTS__ 1
-// AARCH64-NEXT: #define __GCC_CONSTRUCTIVE_SIZE {{.+}}
-// AARCH64-NEXT: #define __GCC_DESTRUCTIVE_SIZE {{.+}}
+// AARCH64-NEXT: #define __GCC_CONSTRUCTIVE_SIZE 64
+// AARCH64-NEXT: #define __GCC_DESTRUCTIVE_SIZE 256
// AARCH64-NEXT: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
// AARCH64-NEXT: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 1
// AARCH64-NEXT: #define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
More information about the cfe-commits
mailing list