[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