llvmorg-github-actions[bot] wrote:

<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-clang

Author: Joseph Huber (jhuber6)

<details>
<summary>Changes</summary>

Summary:
Adds a macro like for `__LINUX__` or `__WIN32`. The intention here is to
let code differentiate between vulkan variants or not.


---
Full diff: https://github.com/llvm/llvm-project/pull/196103.diff


2 Files Affected:

- (modified) clang/lib/Basic/Targets/SPIR.cpp (+2) 
- (modified) clang/test/Preprocessor/predefined-macros.c (+7) 


``````````diff
diff --git a/clang/lib/Basic/Targets/SPIR.cpp b/clang/lib/Basic/Targets/SPIR.cpp
index e55a6ed8bc63f..b6d6b213d78ed 100644
--- a/clang/lib/Basic/Targets/SPIR.cpp
+++ b/clang/lib/Basic/Targets/SPIR.cpp
@@ -89,6 +89,8 @@ void BaseSPIRVTargetInfo::getTargetDefines(const LangOptions 
&Opts,
   DefineStd(Builder, "SPIRV", Opts);
   if (Opts.HLSL)
     DefineStd(Builder, "spirv", Opts);
+  if (getTriple().isVulkanOS())
+    Builder.defineMacro("__VULKAN__");
 }
 
 void SPIRVTargetInfo::getTargetDefines(const LangOptions &Opts,
diff --git a/clang/test/Preprocessor/predefined-macros.c 
b/clang/test/Preprocessor/predefined-macros.c
index 8dbb477be4c5d..ab85cfc00b42a 100644
--- a/clang/test/Preprocessor/predefined-macros.c
+++ b/clang/test/Preprocessor/predefined-macros.c
@@ -238,6 +238,13 @@
 // CHECK-SPIRV64-NOT: #define __SPIRV32__ 1
 // CHECK-SPIRV64-NOT: #define __spirv__ 1
 
+// RUN: %clang_cc1 %s -E -dM -o - -x c -triple spirv64-unknown-vulkan \
+// RUN:   | FileCheck -match-full-lines %s --check-prefix=CHECK-SPIRV64-VULKAN
+// CHECK-SPIRV64-VULKAN-DAG: #define __SPIRV__ 1
+// CHECK-SPIRV64-VULKAN-DAG: #define __SPIRV64__ 1
+// CHECK-SPIRV64-VULKAN-DAG: #define __VULKAN__ 1
+// CHECK-SPIRV64-VULKAN-NOT: #define __SPIRV32__ 1
+
 // RUN: %clang_cc1 %s -E -dM -o - -x cl -triple spirv64-amd-amdhsa \
 // RUN:   | FileCheck -match-full-lines %s --check-prefix=CHECK-SPIRV64-AMDGCN
 // RUN: %clang_cc1 %s -E -dM -o - -x cl -triple spirv64-amd-amdhsa 
-fatomic-ignore-denormal-mode \

``````````

</details>


https://github.com/llvm/llvm-project/pull/196103
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to