[llvm] [SPIRV] Filter disallows extensions for env (PR #150051)

Victor Lomuller via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 23 05:13:29 PDT 2025


================
@@ -12,14 +12,77 @@
 //===----------------------------------------------------------------------===//
 
 #include "SPIRVCommandLine.h"
-#include "llvm/ADT/StringRef.h"
+#include "llvm/TargetParser/Triple.h"
 #include <algorithm>
 #include <map>
 
 #define DEBUG_TYPE "spirv-commandline"
 
 using namespace llvm;
 
+// List of extensions allowed for Vulkan environment.
+// This should not contain an extension that is not listed in
+// https://github.com/KhronosGroup/Vulkan-Headers/blob/main/registry/vk.xml.
+static const std::set<SPIRV::Extension::Extension> ValidVulkanExtensions = {
+    SPIRV::Extension::SPV_EXT_demote_to_helper_invocation,
+    SPIRV::Extension::SPV_EXT_shader_atomic_float_add,
+    SPIRV::Extension::SPV_EXT_shader_atomic_float16_add,
+    SPIRV::Extension::SPV_EXT_shader_atomic_float_min_max,
+    SPIRV::Extension::SPV_KHR_cooperative_matrix,
+    SPIRV::Extension::SPV_KHR_expect_assume,
+    SPIRV::Extension::SPV_KHR_float_controls,
+    SPIRV::Extension::SPV_KHR_float_controls2,
+    SPIRV::Extension::SPV_KHR_integer_dot_product,
+    SPIRV::Extension::SPV_KHR_non_semantic_info,
+    SPIRV::Extension::SPV_KHR_shader_clock,
+    SPIRV::Extension::SPV_KHR_subgroup_rotate};
+
+// List of extensions allowed for OpenCL environment.
+// TODO: Remove extension not used by OpenCL. I do not know how to get that
+// information.
+static const std::set<SPIRV::Extension::Extension> ValidOpenCLExtensions = {
+    SPIRV::Extension::SPV_EXT_shader_atomic_float_add,
+    SPIRV::Extension::SPV_EXT_shader_atomic_float16_add,
+    SPIRV::Extension::SPV_EXT_shader_atomic_float_min_max,
+    SPIRV::Extension::SPV_EXT_arithmetic_fence,
+    SPIRV::Extension::SPV_EXT_demote_to_helper_invocation,
----------------
Naghasan wrote:

Shader specific

```suggestion
```

AFAIK the rest of the list is correct.

https://github.com/llvm/llvm-project/pull/150051


More information about the llvm-commits mailing list