From 26407375dbcbfd4a5c16659ff1ca0e3efc80a3b9 Mon Sep 17 00:00:00 2001 From: Gianfranco Costamagna Date: Tue, 30 Jul 2024 09:19:10 +0200 Subject: [PATCH] Add patch from Emanuele Rocca, to make SVE types available in device targets --- debian/changelog | 7 ++- ...lvm-toolchain-17-sve-types-aux-target.diff | 56 +++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 debian/patches/llvm-toolchain-17-sve-types-aux-target.diff diff --git a/debian/changelog b/debian/changelog index b03ad600..84e1ea79 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,7 @@ -llvm-toolchain-17 (1:17.0.6-13) UNRELEASED; urgency=medium +llvm-toolchain-17 (1:17.0.6-13) unstable; urgency=medium + + [ Emanuele Rocca ] + * Make SVE types available in device targets (Closes: #1076578) [ Matthias Klose ] * Pass --package-metadata on distros with supporting linkers (starting @@ -7,7 +10,7 @@ llvm-toolchain-17 (1:17.0.6-13) UNRELEASED; urgency=medium ELF_PACKAGE_METADATA. Setting NO_PKG_METADATA=1 disables the generation of the package metadata. - -- Matthias Klose Thu, 11 Jul 2024 09:10:08 +0200 + -- Gianfranco Costamagna Tue, 30 Jul 2024 09:15:47 +0200 llvm-toolchain-17 (1:17.0.6-12) unstable; urgency=medium diff --git a/debian/patches/llvm-toolchain-17-sve-types-aux-target.diff b/debian/patches/llvm-toolchain-17-sve-types-aux-target.diff new file mode 100644 index 00000000..2c0b74e3 --- /dev/null +++ b/debian/patches/llvm-toolchain-17-sve-types-aux-target.diff @@ -0,0 +1,56 @@ +From: Emanuele Rocca +Date: Fri, 19 Jul 2024 09:25:38 +0200 +Subject: [PATCH] [Clang] make SVE types known to device targets too (#99446) + +For the purpose of preprocessing and declarations in header files, +ensure clang accepts SVE types for both device and host targets. + +Co-authored-by: Sander De Smalen +--- + clang/lib/AST/ASTContext.cpp | 3 ++- + clang/lib/Sema/Sema.cpp | 4 +++- + clang/test/PCH/aarch64-sve-types.c | 2 ++ + 3 files changed, 7 insertions(+), 2 deletions(-) + +Index: llvm-toolchain-17-17.0.6/clang/lib/AST/ASTContext.cpp +=================================================================== +--- llvm-toolchain-17-17.0.6.orig/clang/lib/AST/ASTContext.cpp ++++ llvm-toolchain-17-17.0.6/clang/lib/AST/ASTContext.cpp +@@ -1396,7 +1396,8 @@ void ASTContext::InitBuiltinTypes(const + #include "clang/Basic/OpenCLExtensionTypes.def" + } + +- if (Target.hasAArch64SVETypes()) { ++ if (Target.hasAArch64SVETypes() || ++ (AuxTarget && AuxTarget->hasAArch64SVETypes())) { + #define SVE_TYPE(Name, Id, SingletonId) \ + InitBuiltinType(SingletonId, BuiltinType::Id); + #include "clang/Basic/AArch64SVEACLETypes.def" +Index: llvm-toolchain-17-17.0.6/clang/lib/Sema/Sema.cpp +=================================================================== +--- llvm-toolchain-17-17.0.6.orig/clang/lib/Sema/Sema.cpp ++++ llvm-toolchain-17-17.0.6/clang/lib/Sema/Sema.cpp +@@ -423,7 +423,9 @@ void Sema::Initialize() { + #include "clang/Basic/OpenCLExtensionTypes.def" + } + +- if (Context.getTargetInfo().hasAArch64SVETypes()) { ++ if (Context.getTargetInfo().hasAArch64SVETypes() || ++ (Context.getAuxTargetInfo() && ++ Context.getAuxTargetInfo()->hasAArch64SVETypes())) { + #define SVE_TYPE(Name, Id, SingletonId) \ + addImplicitTypedef(Name, Context.SingletonId); + #include "clang/Basic/AArch64SVEACLETypes.def" +Index: llvm-toolchain-17-17.0.6/clang/test/PCH/aarch64-sve-types.c +=================================================================== +--- llvm-toolchain-17-17.0.6.orig/clang/test/PCH/aarch64-sve-types.c ++++ llvm-toolchain-17-17.0.6/clang/test/PCH/aarch64-sve-types.c +@@ -1,6 +1,8 @@ + // RUN: %clang_cc1 -triple aarch64-linux-gnu -emit-pch -o %t %s + // RUN: %clang_cc1 -triple aarch64-linux-gnu -include-pch %t \ + // RUN: -fsyntax-only -verify %s ++// RUN: %clang_cc1 -triple amdgcn-amd-amdhsa -aux-triple aarch64-linux-gnu \ ++// RUN: -x hip-cpp-output -emit-pch -o %t %s + + // expected-no-diagnostics + diff --git a/debian/patches/series b/debian/patches/series index f01fc78c..99f26dbb 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -155,3 +155,4 @@ mips/D154390-pre-R6.diff libsanitizer-timebits.diff D154931-revert-loong64.patch link-with-package-metadata.diff +llvm-toolchain-17-sve-types-aux-target.diff