Skip to content

Revert "[SPIRV][NFCI] Use unordered data structures for SPIR-V extensions" - #183774

Merged
sarnex merged 1 commit into
mainfrom
revert-183567-order
Feb 27, 2026
Merged

sarnex merged 1 commit into
mainfrom
revert-183567-order

Conversation

@sarnex

@sarnex sarnex commented Feb 27, 2026

Copy link
Copy Markdown
Member

Reverts #183567

UBSan failure.

@sarnex
sarnex merged commit 729602e into main Feb 27, 2026
7 of 11 checks passed
@sarnex
sarnex deleted the revert-183567-order branch February 27, 2026 17:18
@llvmbot

llvmbot commented Feb 27, 2026

Copy link
Copy Markdown
Member

@llvm/pr-subscribers-backend-spir-v

Author: Nick Sarnie (sarnex)

Changes

Reverts llvm/llvm-project#183567

UBSan failure.


Patch is 27.08 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/183774.diff

6 Files Affected:

  • (modified) llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVBaseInfo.h (-23)
  • (modified) llvm/lib/Target/SPIRV/SPIRVAPI.cpp (+1-1)
  • (modified) llvm/lib/Target/SPIRV/SPIRVCommandLine.cpp (+173-160)
  • (modified) llvm/lib/Target/SPIRV/SPIRVCommandLine.h (+12-7)
  • (modified) llvm/lib/Target/SPIRV/SPIRVSubtarget.cpp (+6-4)
  • (modified) llvm/lib/Target/SPIRV/SPIRVSubtarget.h (+5-3)
diff --git a/llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVBaseInfo.h b/llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVBaseInfo.h
index 9b186e2973174..ea41716bf204e 100644
--- a/llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVBaseInfo.h
+++ b/llvm/lib/Target/SPIRV/MCTargetDesc/SPIRVBaseInfo.h
@@ -15,12 +15,10 @@
 #ifndef LLVM_LIB_TARGET_SPIRV_SPIRVSYMBOLICOPERANDS_H
 #define LLVM_LIB_TARGET_SPIRV_SPIRVSYMBOLICOPERANDS_H
 
-#include "llvm/ADT/DenseSet.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Support/VersionTuple.h"
 #include <string>
-#include <type_traits>
 
 namespace llvm {
 namespace SPIRV {
@@ -258,27 +256,6 @@ using CapabilityList = SmallVector<SPIRV::Capability::Capability, 8>;
 using ExtensionList = SmallVector<SPIRV::Extension::Extension, 8>;
 using EnvironmentList = SmallVector<SPIRV::Environment::Environment, 8>;
 
-// Tablegen enum types don't have an underlying type which is required for
-// DenseMap so just use the DenseMapInfo for std::underlying_type_t.
-template <> struct DenseMapInfo<SPIRV::Extension::Extension> {
-  using DMI = DenseMapInfo<std::underlying_type_t<SPIRV::Extension::Extension>>;
-  static SPIRV::Extension::Extension getEmptyKey() {
-    return static_cast<SPIRV::Extension::Extension>(DMI::getEmptyKey());
-  }
-  static SPIRV::Extension::Extension getTombstoneKey() {
-    return static_cast<SPIRV::Extension::Extension>(DMI::getTombstoneKey());
-  }
-  static unsigned getHashValue(SPIRV::Extension::Extension Ty) {
-    return DMI::getHashValue(Ty);
-  }
-  static bool isEqual(SPIRV::Extension::Extension Ty1,
-                      SPIRV::Extension::Extension Ty2) {
-    return Ty1 == Ty2;
-  }
-};
-
-using ExtensionSet = DenseSet<SPIRV::Extension::Extension>;
-
 std::string
 getSymbolicOperandMnemonic(SPIRV::OperandCategory::OperandCategory Category,
                            int32_t Value);
diff --git a/llvm/lib/Target/SPIRV/SPIRVAPI.cpp b/llvm/lib/Target/SPIRV/SPIRVAPI.cpp
index ab3c1c09fd819..d6581b274e00f 100644
--- a/llvm/lib/Target/SPIRV/SPIRVAPI.cpp
+++ b/llvm/lib/Target/SPIRV/SPIRVAPI.cpp
@@ -59,7 +59,7 @@ SPIRVTranslate(Module *M, std::string &SpirvObj, std::string &ErrMsg,
   static const std::string DefaultTriple = "spirv64-unknown-unknown";
   static const std::string DefaultMArch = "";
 
-  ExtensionSet AllowedExtIds;
+  std::set<SPIRV::Extension::Extension> AllowedExtIds;
   StringRef UnknownExt =
       SPIRVExtensionsParser::checkExtensions(AllowExtNames, AllowedExtIds);
   if (!UnknownExt.empty()) {
diff --git a/llvm/lib/Target/SPIRV/SPIRVCommandLine.cpp b/llvm/lib/Target/SPIRV/SPIRVCommandLine.cpp
index 33e1b52b724e6..31c7a61e1a3d8 100644
--- a/llvm/lib/Target/SPIRV/SPIRVCommandLine.cpp
+++ b/llvm/lib/Target/SPIRV/SPIRVCommandLine.cpp
@@ -14,11 +14,12 @@
 #include "SPIRVCommandLine.h"
 #include "MCTargetDesc/SPIRVBaseInfo.h"
 #include "llvm/ADT/STLExtras.h"
-#include "llvm/ADT/StringMap.h"
 #include "llvm/TargetParser/Triple.h"
 
 #include <functional>
 #include <iterator>
+#include <map>
+#include <set>
 #include <string>
 #include <utility>
 #include <vector>
@@ -27,167 +28,178 @@
 
 using namespace llvm;
 
-ExtensionSet SPIRVExtensionsParser::DisabledExtensions;
+std::set<SPIRV::Extension::Extension> SPIRVExtensionsParser::DisabledExtensions;
 
-static const StringMap<SPIRV::Extension::Extension> SPIRVExtensionMap = {
-    {"SPV_EXT_shader_atomic_float_add",
-     SPIRV::Extension::Extension::SPV_EXT_shader_atomic_float_add},
-    {"SPV_EXT_shader_atomic_float16_add",
-     SPIRV::Extension::Extension::SPV_EXT_shader_atomic_float16_add},
-    {"SPV_EXT_shader_atomic_float_min_max",
-     SPIRV::Extension::Extension::SPV_EXT_shader_atomic_float_min_max},
-    {"SPV_INTEL_16bit_atomics",
-     SPIRV::Extension::Extension::SPV_INTEL_16bit_atomics},
-    {"SPV_NV_shader_atomic_fp16_vector",
-     SPIRV::Extension::Extension::SPV_NV_shader_atomic_fp16_vector},
-    {"SPV_EXT_arithmetic_fence",
-     SPIRV::Extension::Extension::SPV_EXT_arithmetic_fence},
-    {"SPV_EXT_demote_to_helper_invocation",
-     SPIRV::Extension::Extension::SPV_EXT_demote_to_helper_invocation},
-    {"SPV_EXT_descriptor_indexing",
-     SPIRV::Extension::Extension::SPV_EXT_descriptor_indexing},
-    {"SPV_EXT_fragment_fully_covered",
-     SPIRV::Extension::Extension::SPV_EXT_fragment_fully_covered},
-    {"SPV_EXT_fragment_invocation_density",
-     SPIRV::Extension::Extension::SPV_EXT_fragment_invocation_density},
-    {"SPV_EXT_fragment_shader_interlock",
-     SPIRV::Extension::Extension::SPV_EXT_fragment_shader_interlock},
-    {"SPV_EXT_mesh_shader", SPIRV::Extension::Extension::SPV_EXT_mesh_shader},
-    {"SPV_EXT_shader_stencil_export",
-     SPIRV::Extension::Extension::SPV_EXT_shader_stencil_export},
-    {"SPV_EXT_shader_viewport_index_layer",
-     SPIRV::Extension::Extension::SPV_EXT_shader_viewport_index_layer},
-    {"SPV_GOOGLE_hlsl_functionality1",
-     SPIRV::Extension::Extension::SPV_GOOGLE_hlsl_functionality1},
-    {"SPV_GOOGLE_user_type", SPIRV::Extension::Extension::SPV_GOOGLE_user_type},
-    {"SPV_ALTERA_arbitrary_precision_integers",
-     SPIRV::Extension::Extension::SPV_ALTERA_arbitrary_precision_integers},
-    {"SPV_ALTERA_arbitrary_precision_floating_point",
-     SPIRV::Extension::Extension::
-         SPV_ALTERA_arbitrary_precision_floating_point},
-    {"SPV_INTEL_cache_controls",
-     SPIRV::Extension::Extension::SPV_INTEL_cache_controls},
-    {"SPV_INTEL_float_controls2",
-     SPIRV::Extension::Extension::SPV_INTEL_float_controls2},
-    {"SPV_INTEL_global_variable_fpga_decorations",
-     SPIRV::Extension::Extension::SPV_INTEL_global_variable_fpga_decorations},
-    {"SPV_INTEL_global_variable_host_access",
-     SPIRV::Extension::Extension::SPV_INTEL_global_variable_host_access},
-    {"SPV_INTEL_optnone", SPIRV::Extension::Extension::SPV_INTEL_optnone},
-    {"SPV_EXT_optnone", SPIRV::Extension::Extension::SPV_EXT_optnone},
-    {"SPV_INTEL_usm_storage_classes",
-     SPIRV::Extension::Extension::SPV_INTEL_usm_storage_classes},
-    {"SPV_INTEL_split_barrier",
-     SPIRV::Extension::Extension::SPV_INTEL_split_barrier},
-    {"SPV_INTEL_subgroups", SPIRV::Extension::Extension::SPV_INTEL_subgroups},
-    {"SPV_INTEL_media_block_io",
-     SPIRV::Extension::Extension::SPV_INTEL_media_block_io},
-    {"SPV_INTEL_memory_access_aliasing",
-     SPIRV::Extension::Extension::SPV_INTEL_memory_access_aliasing},
-    {"SPV_INTEL_joint_matrix",
-     SPIRV::Extension::Extension::SPV_INTEL_joint_matrix},
-    {"SPV_KHR_16bit_storage",
-     SPIRV::Extension::Extension::SPV_KHR_16bit_storage},
-    {"SPV_KHR_device_group", SPIRV::Extension::Extension::SPV_KHR_device_group},
-    {"SPV_KHR_fragment_shading_rate",
-     SPIRV::Extension::Extension::SPV_KHR_fragment_shading_rate},
-    {"SPV_KHR_multiview", SPIRV::Extension::Extension::SPV_KHR_multiview},
-    {"SPV_KHR_post_depth_coverage",
-     SPIRV::Extension::Extension::SPV_KHR_post_depth_coverage},
-    {"SPV_KHR_shader_draw_parameters",
-     SPIRV::Extension::Extension::SPV_KHR_shader_draw_parameters},
-    {"SPV_KHR_ray_tracing", SPIRV::Extension::Extension::SPV_KHR_ray_tracing},
-    {"SPV_KHR_uniform_group_instructions",
-     SPIRV::Extension::Extension::SPV_KHR_uniform_group_instructions},
-    {"SPV_KHR_no_integer_wrap_decoration",
-     SPIRV::Extension::Extension::SPV_KHR_no_integer_wrap_decoration},
-    {"SPV_KHR_float_controls",
-     SPIRV::Extension::Extension::SPV_KHR_float_controls},
-    {"SPV_KHR_expect_assume",
-     SPIRV::Extension::Extension::SPV_KHR_expect_assume},
-    {"SPV_KHR_bit_instructions",
-     SPIRV::Extension::Extension::SPV_KHR_bit_instructions},
-    {"SPV_KHR_integer_dot_product",
-     SPIRV::Extension::Extension::SPV_KHR_integer_dot_product},
-    {"SPV_KHR_linkonce_odr", SPIRV::Extension::Extension::SPV_KHR_linkonce_odr},
-    {"SPV_KHR_fma", SPIRV::Extension::Extension::SPV_KHR_fma},
-    {"SPV_INTEL_inline_assembly",
-     SPIRV::Extension::Extension::SPV_INTEL_inline_assembly},
-    {"SPV_INTEL_bindless_images",
-     SPIRV::Extension::Extension::SPV_INTEL_bindless_images},
-    {"SPV_INTEL_bfloat16_arithmetic",
-     SPIRV::Extension::Extension::SPV_INTEL_bfloat16_arithmetic},
-    {"SPV_INTEL_bfloat16_conversion",
-     SPIRV::Extension::Extension::SPV_INTEL_bfloat16_conversion},
-    {"SPV_KHR_subgroup_rotate",
-     SPIRV::Extension::Extension::SPV_KHR_subgroup_rotate},
-    {"SPV_INTEL_variable_length_array",
-     SPIRV::Extension::Extension::SPV_INTEL_variable_length_array},
-    {"SPV_INTEL_function_pointers",
-     SPIRV::Extension::Extension::SPV_INTEL_function_pointers},
-    {"SPV_KHR_shader_clock", SPIRV::Extension::Extension::SPV_KHR_shader_clock},
-    {"SPV_KHR_cooperative_matrix",
-     SPIRV::Extension::Extension::SPV_KHR_cooperative_matrix},
-    {"SPV_KHR_non_semantic_info",
-     SPIRV::Extension::Extension::SPV_KHR_non_semantic_info},
-    {"SPV_KHR_ray_query", SPIRV::Extension::Extension::SPV_KHR_ray_query},
-    {"SPV_EXT_shader_image_int64",
-     SPIRV::Extension::Extension::SPV_EXT_shader_image_int64},
-    {"SPV_KHR_fragment_shader_barycentric",
-     SPIRV::Extension::Extension::SPV_KHR_fragment_shader_barycentric},
-    {"SPV_KHR_physical_storage_buffer",
-     SPIRV::Extension::Extension::SPV_KHR_physical_storage_buffer},
-    {"SPV_KHR_vulkan_memory_model",
-     SPIRV::Extension::Extension::SPV_KHR_vulkan_memory_model},
-    {"SPV_NV_shader_subgroup_partitioned",
-     SPIRV::Extension::Extension::SPV_NV_shader_subgroup_partitioned},
-    {"SPV_INTEL_long_composites",
-     SPIRV::Extension::Extension::SPV_INTEL_long_composites},
-    {"SPV_INTEL_fp_max_error",
-     SPIRV::Extension::Extension::SPV_INTEL_fp_max_error},
-    {"SPV_INTEL_subgroup_matrix_multiply_accumulate",
-     SPIRV::Extension::Extension::
-         SPV_INTEL_subgroup_matrix_multiply_accumulate},
-    {"SPV_INTEL_ternary_bitwise_function",
-     SPIRV::Extension::Extension::SPV_INTEL_ternary_bitwise_function},
-    {"SPV_INTEL_2d_block_io",
-     SPIRV::Extension::Extension::SPV_INTEL_2d_block_io},
-    {"SPV_INTEL_int4", SPIRV::Extension::Extension::SPV_INTEL_int4},
-    {"SPV_KHR_float_controls2",
-     SPIRV::Extension::Extension::SPV_KHR_float_controls2},
-    {"SPV_INTEL_tensor_float32_conversion",
-     SPIRV::Extension::Extension::SPV_INTEL_tensor_float32_conversion},
-    {"SPV_KHR_bfloat16", SPIRV::Extension::Extension::SPV_KHR_bfloat16},
-    {"SPV_EXT_relaxed_printf_string_address_space",
-     SPIRV::Extension::Extension::SPV_EXT_relaxed_printf_string_address_space},
-    {"SPV_INTEL_predicated_io",
-     SPIRV::Extension::Extension::SPV_INTEL_predicated_io},
-    {"SPV_KHR_maximal_reconvergence",
-     SPIRV::Extension::Extension::SPV_KHR_maximal_reconvergence},
-    {"SPV_INTEL_kernel_attributes",
-     SPIRV::Extension::Extension::SPV_INTEL_kernel_attributes},
-    {"SPV_ALTERA_blocking_pipes",
-     SPIRV::Extension::Extension::SPV_ALTERA_blocking_pipes},
-    {"SPV_INTEL_int4", SPIRV::Extension::Extension::SPV_INTEL_int4},
-    {"SPV_ALTERA_arbitrary_precision_fixed_point",
-     SPIRV::Extension::Extension::SPV_ALTERA_arbitrary_precision_fixed_point},
-    {"SPV_EXT_image_raw10_raw12",
-     SPIRV::Extension::Extension::SPV_EXT_image_raw10_raw12},
-    {"SPV_INTEL_unstructured_loop_controls",
-     SPIRV::Extension::Extension::SPV_INTEL_unstructured_loop_controls}};
+static const std::map<StringRef, SPIRV::Extension::Extension>
+    SPIRVExtensionMap = {
+        {"SPV_EXT_shader_atomic_float_add",
+         SPIRV::Extension::Extension::SPV_EXT_shader_atomic_float_add},
+        {"SPV_EXT_shader_atomic_float16_add",
+         SPIRV::Extension::Extension::SPV_EXT_shader_atomic_float16_add},
+        {"SPV_EXT_shader_atomic_float_min_max",
+         SPIRV::Extension::Extension::SPV_EXT_shader_atomic_float_min_max},
+        {"SPV_INTEL_16bit_atomics",
+         SPIRV::Extension::Extension::SPV_INTEL_16bit_atomics},
+        {"SPV_NV_shader_atomic_fp16_vector",
+         SPIRV::Extension::Extension::SPV_NV_shader_atomic_fp16_vector},
+        {"SPV_EXT_arithmetic_fence",
+         SPIRV::Extension::Extension::SPV_EXT_arithmetic_fence},
+        {"SPV_EXT_demote_to_helper_invocation",
+         SPIRV::Extension::Extension::SPV_EXT_demote_to_helper_invocation},
+        {"SPV_EXT_descriptor_indexing",
+         SPIRV::Extension::Extension::SPV_EXT_descriptor_indexing},
+        {"SPV_EXT_fragment_fully_covered",
+         SPIRV::Extension::Extension::SPV_EXT_fragment_fully_covered},
+        {"SPV_EXT_fragment_invocation_density",
+         SPIRV::Extension::Extension::SPV_EXT_fragment_invocation_density},
+        {"SPV_EXT_fragment_shader_interlock",
+         SPIRV::Extension::Extension::SPV_EXT_fragment_shader_interlock},
+        {"SPV_EXT_mesh_shader",
+         SPIRV::Extension::Extension::SPV_EXT_mesh_shader},
+        {"SPV_EXT_shader_stencil_export",
+         SPIRV::Extension::Extension::SPV_EXT_shader_stencil_export},
+        {"SPV_EXT_shader_viewport_index_layer",
+         SPIRV::Extension::Extension::SPV_EXT_shader_viewport_index_layer},
+        {"SPV_GOOGLE_hlsl_functionality1",
+         SPIRV::Extension::Extension::SPV_GOOGLE_hlsl_functionality1},
+        {"SPV_GOOGLE_user_type",
+         SPIRV::Extension::Extension::SPV_GOOGLE_user_type},
+        {"SPV_ALTERA_arbitrary_precision_integers",
+         SPIRV::Extension::Extension::SPV_ALTERA_arbitrary_precision_integers},
+        {"SPV_ALTERA_arbitrary_precision_floating_point",
+         SPIRV::Extension::Extension::
+             SPV_ALTERA_arbitrary_precision_floating_point},
+        {"SPV_INTEL_cache_controls",
+         SPIRV::Extension::Extension::SPV_INTEL_cache_controls},
+        {"SPV_INTEL_float_controls2",
+         SPIRV::Extension::Extension::SPV_INTEL_float_controls2},
+        {"SPV_INTEL_global_variable_fpga_decorations",
+         SPIRV::Extension::Extension::
+             SPV_INTEL_global_variable_fpga_decorations},
+        {"SPV_INTEL_global_variable_host_access",
+         SPIRV::Extension::Extension::SPV_INTEL_global_variable_host_access},
+        {"SPV_INTEL_optnone", SPIRV::Extension::Extension::SPV_INTEL_optnone},
+        {"SPV_EXT_optnone", SPIRV::Extension::Extension::SPV_EXT_optnone},
+        {"SPV_INTEL_usm_storage_classes",
+         SPIRV::Extension::Extension::SPV_INTEL_usm_storage_classes},
+        {"SPV_INTEL_split_barrier",
+         SPIRV::Extension::Extension::SPV_INTEL_split_barrier},
+        {"SPV_INTEL_subgroups",
+         SPIRV::Extension::Extension::SPV_INTEL_subgroups},
+        {"SPV_INTEL_media_block_io",
+         SPIRV::Extension::Extension::SPV_INTEL_media_block_io},
+        {"SPV_INTEL_memory_access_aliasing",
+         SPIRV::Extension::Extension::SPV_INTEL_memory_access_aliasing},
+        {"SPV_INTEL_joint_matrix",
+         SPIRV::Extension::Extension::SPV_INTEL_joint_matrix},
+        {"SPV_KHR_16bit_storage",
+         SPIRV::Extension::Extension::SPV_KHR_16bit_storage},
+        {"SPV_KHR_device_group",
+         SPIRV::Extension::Extension::SPV_KHR_device_group},
+        {"SPV_KHR_fragment_shading_rate",
+         SPIRV::Extension::Extension::SPV_KHR_fragment_shading_rate},
+        {"SPV_KHR_multiview", SPIRV::Extension::Extension::SPV_KHR_multiview},
+        {"SPV_KHR_post_depth_coverage",
+         SPIRV::Extension::Extension::SPV_KHR_post_depth_coverage},
+        {"SPV_KHR_shader_draw_parameters",
+         SPIRV::Extension::Extension::SPV_KHR_shader_draw_parameters},
+        {"SPV_KHR_ray_tracing",
+         SPIRV::Extension::Extension::SPV_KHR_ray_tracing},
+        {"SPV_KHR_uniform_group_instructions",
+         SPIRV::Extension::Extension::SPV_KHR_uniform_group_instructions},
+        {"SPV_KHR_no_integer_wrap_decoration",
+         SPIRV::Extension::Extension::SPV_KHR_no_integer_wrap_decoration},
+        {"SPV_KHR_float_controls",
+         SPIRV::Extension::Extension::SPV_KHR_float_controls},
+        {"SPV_KHR_expect_assume",
+         SPIRV::Extension::Extension::SPV_KHR_expect_assume},
+        {"SPV_KHR_bit_instructions",
+         SPIRV::Extension::Extension::SPV_KHR_bit_instructions},
+        {"SPV_KHR_integer_dot_product",
+         SPIRV::Extension::Extension::SPV_KHR_integer_dot_product},
+        {"SPV_KHR_linkonce_odr",
+         SPIRV::Extension::Extension::SPV_KHR_linkonce_odr},
+        {"SPV_KHR_fma", SPIRV::Extension::Extension::SPV_KHR_fma},
+        {"SPV_INTEL_inline_assembly",
+         SPIRV::Extension::Extension::SPV_INTEL_inline_assembly},
+        {"SPV_INTEL_bindless_images",
+         SPIRV::Extension::Extension::SPV_INTEL_bindless_images},
+        {"SPV_INTEL_bfloat16_arithmetic",
+         SPIRV::Extension::Extension::SPV_INTEL_bfloat16_arithmetic},
+        {"SPV_INTEL_bfloat16_conversion",
+         SPIRV::Extension::Extension::SPV_INTEL_bfloat16_conversion},
+        {"SPV_KHR_subgroup_rotate",
+         SPIRV::Extension::Extension::SPV_KHR_subgroup_rotate},
+        {"SPV_INTEL_variable_length_array",
+         SPIRV::Extension::Extension::SPV_INTEL_variable_length_array},
+        {"SPV_INTEL_function_pointers",
+         SPIRV::Extension::Extension::SPV_INTEL_function_pointers},
+        {"SPV_KHR_shader_clock",
+         SPIRV::Extension::Extension::SPV_KHR_shader_clock},
+        {"SPV_KHR_cooperative_matrix",
+         SPIRV::Extension::Extension::SPV_KHR_cooperative_matrix},
+        {"SPV_KHR_non_semantic_info",
+         SPIRV::Extension::Extension::SPV_KHR_non_semantic_info},
+        {"SPV_KHR_ray_query", SPIRV::Extension::Extension::SPV_KHR_ray_query},
+        {"SPV_EXT_shader_image_int64",
+         SPIRV::Extension::Extension::SPV_EXT_shader_image_int64},
+        {"SPV_KHR_fragment_shader_barycentric",
+         SPIRV::Extension::Extension::SPV_KHR_fragment_shader_barycentric},
+        {"SPV_KHR_physical_storage_buffer",
+         SPIRV::Extension::Extension::SPV_KHR_physical_storage_buffer},
+        {"SPV_KHR_vulkan_memory_model",
+         SPIRV::Extension::Extension::SPV_KHR_vulkan_memory_model},
+        {"SPV_NV_shader_subgroup_partitioned",
+         SPIRV::Extension::Extension::SPV_NV_shader_subgroup_partitioned},
+        {"SPV_INTEL_long_composites",
+         SPIRV::Extension::Extension::SPV_INTEL_long_composites},
+        {"SPV_INTEL_fp_max_error",
+         SPIRV::Extension::Extension::SPV_INTEL_fp_max_error},
+        {"SPV_INTEL_subgroup_matrix_multiply_accumulate",
+         SPIRV::Extension::Extension::
+             SPV_INTEL_subgroup_matrix_multiply_accumulate},
+        {"SPV_INTEL_ternary_bitwise_function",
+         SPIRV::Extension::Extension::SPV_INTEL_ternary_bitwise_function},
+        {"SPV_INTEL_2d_block_io",
+         SPIRV::Extension::Extension::SPV_INTEL_2d_block_io},
+        {"SPV_INTEL_int4", SPIRV::Extension::Extension::SPV_INTEL_int4},
+        {"SPV_KHR_float_controls2",
+         SPIRV::Extension::Extension::SPV_KHR_float_controls2},
+        {"SPV_INTEL_tensor_float32_conversion",
+         SPIRV::Extension::Extension::SPV_INTEL_tensor_float32_conversion},
+        {"SPV_KHR_bfloat16", SPIRV::Extension::Extension::SPV_KHR_bfloat16},
+        {"SPV_EXT_relaxed_printf_string_address_space",
+         SPIRV::Extension::Extension::
+             SPV_EXT_relaxed_printf_string_address_space},
+        {"SPV_INTEL_predicated_io",
+         SPIRV::Extension::Extension::SPV_INTEL_predicated_io},
+        {"SPV_KHR_maximal_reconvergence",
+         SPIRV::Extension::Extension::SPV_KHR_maximal_reconvergence},
+        {"SPV_INTEL_kernel_attributes",
+         SPIRV::Extension::Extension::SPV_INTEL_kernel_attributes},
+        {"SPV_ALTERA_blocking_pipes",
+         SPIRV::Extension::Extension::SPV_ALTERA_blocking_pipes},
+        {"SPV_INTEL_int4", SPIRV::Extension::Extension::SPV_INTEL_int4},
+        {"SPV_ALTERA_arbitrary_precision_fixed_point",
+         SPIRV::Extension::Extension::
+             SPV_ALTERA_arbitrary_precision_fixed_point},
+        {"SPV_EXT_image_raw10_raw12",
+         SPIRV::Extension::Extension::SPV_EXT_image_raw10_raw12},
+        {"SPV_INTEL_unstructured_loop_controls",
+         SPIRV::Extension::Extension::SPV_INTEL_unstructured_loop_controls}};
 
 bool SPIRVExtensionsParser::parse(cl::Option &O, StringRef ArgName,
-                                  StringRef ArgValue, ExtensionSet &Vals) {
+                                  StringRef ArgValue,
+                                  std::set<SPIRV::Extension::Extension> &Vals) {
   Smal...
[truncated]

sarnex added a commit to sarnex/llvm-project that referenced this pull request Mar 2, 2026
sujianIBM pushed a commit to sujianIBM/llvm-project that referenced this pull request Mar 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants