Author: Igor Wodiany Date: 2025-07-30T17:06:21+01:00 New Revision: dc6171d58e26aba18bb367a73a2e8a7cbf0e1f22
URL: https://github.com/llvm/llvm-project/commit/dc6171d58e26aba18bb367a73a2e8a7cbf0e1f22 DIFF: https://github.com/llvm/llvm-project/commit/dc6171d58e26aba18bb367a73a2e8a7cbf0e1f22.diff LOG: Revert "[mlir][spirv] Fix UpdateVCEPass to deduce the correct set of capabili…" This reverts commit 3d4f1fee48689465b5026f75414247307db7d34d. Added: Modified: mlir/lib/Dialect/SPIRV/Transforms/UpdateVCEPass.cpp mlir/test/Dialect/SPIRV/Transforms/vce-deduction.mlir Removed: ################################################################################ diff --git a/mlir/lib/Dialect/SPIRV/Transforms/UpdateVCEPass.cpp b/mlir/lib/Dialect/SPIRV/Transforms/UpdateVCEPass.cpp index 9b1c84ee66156..6a9b951ca61d6 100644 --- a/mlir/lib/Dialect/SPIRV/Transforms/UpdateVCEPass.cpp +++ b/mlir/lib/Dialect/SPIRV/Transforms/UpdateVCEPass.cpp @@ -95,13 +95,6 @@ static LogicalResult checkAndUpdateCapabilityRequirements( return success(); } -static void addAllImpliedCapabilities(SetVector<spirv::Capability> &caps) { - for (spirv::Capability cap : caps) { - ArrayRef<spirv::Capability> impliedCaps = getDirectImpliedCapabilities(cap); - caps.insert_range(impliedCaps); - } -} - void UpdateVCEPass::runOnOperation() { spirv::ModuleOp module = getOperation(); @@ -175,8 +168,6 @@ void UpdateVCEPass::runOnOperation() { return WalkResult::interrupt(); } - addAllImpliedCapabilities(deducedCapabilities); - return WalkResult::advance(); }); diff --git a/mlir/test/Dialect/SPIRV/Transforms/vce-deduction.mlir b/mlir/test/Dialect/SPIRV/Transforms/vce-deduction.mlir index d657633665876..2b237665ffc4a 100644 --- a/mlir/test/Dialect/SPIRV/Transforms/vce-deduction.mlir +++ b/mlir/test/Dialect/SPIRV/Transforms/vce-deduction.mlir @@ -7,7 +7,7 @@ // Test deducing minimal version. // spirv.IAdd is available from v1.0. -// CHECK: requires #spirv.vce<v1.0, [Shader, Matrix], []> +// CHECK: requires #spirv.vce<v1.0, [Shader], []> spirv.module Logical GLSL450 attributes { spirv.target_env = #spirv.target_env< #spirv.vce<v1.5, [Shader], []>, #spirv.resource_limits<>> @@ -21,7 +21,7 @@ spirv.module Logical GLSL450 attributes { // Test deducing minimal version. // spirv.GroupNonUniformBallot is available since v1.3. -// CHECK: requires #spirv.vce<v1.3, [GroupNonUniformBallot, GroupNonUniform, Shader, Matrix], []> +// CHECK: requires #spirv.vce<v1.3, [GroupNonUniformBallot, Shader], []> spirv.module Logical GLSL450 attributes { spirv.target_env = #spirv.target_env< #spirv.vce<v1.5, [Shader, GroupNonUniformBallot], []>, #spirv.resource_limits<>> @@ -32,7 +32,7 @@ spirv.module Logical GLSL450 attributes { } } -// CHECK: requires #spirv.vce<v1.4, [Shader, Matrix], []> +// CHECK: requires #spirv.vce<v1.4, [Shader], []> spirv.module Logical GLSL450 attributes { spirv.target_env = #spirv.target_env<#spirv.vce<v1.6, [Shader], []>, #spirv.resource_limits<>> } { @@ -48,7 +48,7 @@ spirv.module Logical GLSL450 attributes { // Test minimal capabilities. -// CHECK: requires #spirv.vce<v1.0, [Shader, Matrix], []> +// CHECK: requires #spirv.vce<v1.0, [Shader], []> spirv.module Logical GLSL450 attributes { spirv.target_env = #spirv.target_env< #spirv.vce<v1.0, [Shader, Float16, Float64, Int16, Int64, VariablePointers], []>, #spirv.resource_limits<>> @@ -61,10 +61,10 @@ spirv.module Logical GLSL450 attributes { // Test Physical Storage Buffers are deduced correctly. -// CHECK: spirv.module PhysicalStorageBuffer64 GLSL450 requires #spirv.vce<v1.0, [PhysicalStorageBufferAddresses, Shader, Matrix], [SPV_EXT_physical_storage_buffer]> +// CHECK: spirv.module PhysicalStorageBuffer64 GLSL450 requires #spirv.vce<v1.0, [PhysicalStorageBufferAddresses, Shader], [SPV_EXT_physical_storage_buffer]> spirv.module PhysicalStorageBuffer64 GLSL450 attributes { spirv.target_env = #spirv.target_env< - #spirv.vce<v1.0, [PhysicalStorageBufferAddresses], [SPV_EXT_physical_storage_buffer]>, #spirv.resource_limits<>> + #spirv.vce<v1.0, [Shader, PhysicalStorageBufferAddresses], [SPV_EXT_physical_storage_buffer]>, #spirv.resource_limits<>> } { spirv.func @physical_ptr(%val : !spirv.ptr<f32, PhysicalStorageBuffer> { spirv.decoration = #spirv.decoration<Aliased> }) "None" { spirv.Return @@ -74,7 +74,7 @@ spirv.module PhysicalStorageBuffer64 GLSL450 attributes { // Test deducing implied capability. // AtomicStorage implies Shader. -// CHECK: requires #spirv.vce<v1.0, [Shader, Matrix], []> +// CHECK: requires #spirv.vce<v1.0, [Shader], []> spirv.module Logical GLSL450 attributes { spirv.target_env = #spirv.target_env< #spirv.vce<v1.0, [AtomicStorage], []>, #spirv.resource_limits<>> @@ -95,7 +95,7 @@ spirv.module Logical GLSL450 attributes { // * GroupNonUniformArithmetic // * GroupNonUniformBallot -// CHECK: requires #spirv.vce<v1.3, [GroupNonUniformArithmetic, GroupNonUniform, Shader, Matrix], []> +// CHECK: requires #spirv.vce<v1.3, [GroupNonUniformArithmetic, Shader], []> spirv.module Logical GLSL450 attributes { spirv.target_env = #spirv.target_env< #spirv.vce<v1.3, [Shader, GroupNonUniformArithmetic], []>, #spirv.resource_limits<>> @@ -106,7 +106,7 @@ spirv.module Logical GLSL450 attributes { } } -// CHECK: requires #spirv.vce<v1.3, [GroupNonUniformClustered, GroupNonUniformBallot, GroupNonUniform, Shader, Matrix], []> +// CHECK: requires #spirv.vce<v1.3, [GroupNonUniformClustered, GroupNonUniformBallot, Shader], []> spirv.module Logical GLSL450 attributes { spirv.target_env = #spirv.target_env< #spirv.vce<v1.3, [Shader, GroupNonUniformClustered, GroupNonUniformBallot], []>, #spirv.resource_limits<>> @@ -120,7 +120,7 @@ spirv.module Logical GLSL450 attributes { // Test type required capabilities // Using 8-bit integers in non-interface storage class requires Int8. -// CHECK: requires #spirv.vce<v1.0, [Int8, Shader, Matrix], []> +// CHECK: requires #spirv.vce<v1.0, [Int8, Shader], []> spirv.module Logical GLSL450 attributes { spirv.target_env = #spirv.target_env< #spirv.vce<v1.3, [Shader, Int8], []>, #spirv.resource_limits<>> @@ -132,7 +132,7 @@ spirv.module Logical GLSL450 attributes { } // Using 16-bit floats in non-interface storage class requires Float16. -// CHECK: requires #spirv.vce<v1.0, [Float16, Shader, Matrix], []> +// CHECK: requires #spirv.vce<v1.0, [Float16, Shader], []> spirv.module Logical GLSL450 attributes { spirv.target_env = #spirv.target_env< #spirv.vce<v1.3, [Shader, Float16], []>, #spirv.resource_limits<>> @@ -144,7 +144,7 @@ spirv.module Logical GLSL450 attributes { } // Using 16-element vectors requires Vector16. -// CHECK: requires #spirv.vce<v1.0, [Vector16, Kernel, Shader, Matrix], []> +// CHECK: requires #spirv.vce<v1.0, [Vector16, Shader], []> spirv.module Logical GLSL450 attributes { spirv.target_env = #spirv.target_env< #spirv.vce<v1.3, [Shader, Vector16], []>, #spirv.resource_limits<>> @@ -162,7 +162,7 @@ spirv.module Logical GLSL450 attributes { // Test deducing minimal extensions. // spirv.KHR.SubgroupBallot requires the SPV_KHR_shader_ballot extension. -// CHECK: requires #spirv.vce<v1.0, [SubgroupBallotKHR, Shader, Matrix], [SPV_KHR_shader_ballot]> +// CHECK: requires #spirv.vce<v1.0, [SubgroupBallotKHR, Shader], [SPV_KHR_shader_ballot]> spirv.module Logical GLSL450 attributes { spirv.target_env = #spirv.target_env< #spirv.vce<v1.0, [Shader, SubgroupBallotKHR], @@ -193,7 +193,7 @@ spirv.module Logical Vulkan attributes { // Using 8-bit integers in interface storage class requires additional // extensions and capabilities. -// CHECK: requires #spirv.vce<v1.0, [StorageBuffer16BitAccess, Shader, Int16, Matrix], [SPV_KHR_16bit_storage, SPV_KHR_storage_buffer_storage_class]> +// CHECK: requires #spirv.vce<v1.0, [StorageBuffer16BitAccess, Shader, Int16], [SPV_KHR_16bit_storage, SPV_KHR_storage_buffer_storage_class]> spirv.module Logical GLSL450 attributes { spirv.target_env = #spirv.target_env< #spirv.vce<v1.3, [Shader, StorageBuffer16BitAccess, Int16], []>, #spirv.resource_limits<>> @@ -208,7 +208,7 @@ spirv.module Logical GLSL450 attributes { // Complicated nested types // * Buffer requires ImageBuffer or SampledBuffer. // * Rg32f requires StorageImageExtendedFormats. -// CHECK: requires #spirv.vce<v1.0, [UniformAndStorageBuffer8BitAccess, StorageUniform16, Int64, Shader, StorageBuffer8BitAccess, StorageBuffer16BitAccess, Matrix, ImageBuffer, StorageImageExtendedFormats, SampledBuffer], [SPV_KHR_8bit_storage, SPV_KHR_16bit_storage]> +// CHECK: requires #spirv.vce<v1.0, [UniformAndStorageBuffer8BitAccess, StorageUniform16, Int64, Shader, ImageBuffer, StorageImageExtendedFormats], [SPV_KHR_8bit_storage, SPV_KHR_16bit_storage]> spirv.module Logical GLSL450 attributes { spirv.target_env = #spirv.target_env< #spirv.vce<v1.5, [Shader, UniformAndStorageBuffer8BitAccess, StorageBuffer16BitAccess, StorageUniform16, Int16, Int64, ImageBuffer, StorageImageExtendedFormats], []>, @@ -219,7 +219,7 @@ spirv.module Logical GLSL450 attributes { } // Using bfloat16 requires BFloat16TypeKHR capability and SPV_KHR_bfloat16 extension. -// CHECK: requires #spirv.vce<v1.0, [StorageBuffer16BitAccess, Shader, BFloat16TypeKHR, Matrix], [SPV_KHR_bfloat16, SPV_KHR_16bit_storage, SPV_KHR_storage_buffer_storage_class]> +// CHECK: requires #spirv.vce<v1.0, [StorageBuffer16BitAccess, Shader, BFloat16TypeKHR], [SPV_KHR_bfloat16, SPV_KHR_16bit_storage, SPV_KHR_storage_buffer_storage_class]> spirv.module Logical GLSL450 attributes { spirv.target_env = #spirv.target_env< #spirv.vce<v1.0, [Shader, StorageBuffer16BitAccess, BFloat16TypeKHR], [SPV_KHR_bfloat16, SPV_KHR_16bit_storage, SPV_KHR_storage_buffer_storage_class]>, _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits