[Mlir-commits] [mlir] [mlir][spirv] Fix UpdateVCEPass to deduce the correct set of capabilities (PR #151108)
Davide Grohmann
llvmlistbot at llvm.org
Wed Jul 30 02:50:55 PDT 2025
================
@@ -95,6 +95,21 @@ static LogicalResult checkAndUpdateCapabilityRequirements(
return success();
}
+static SetVector<spirv::Capability>
+addAllImpliedCapabilities(SetVector<spirv::Capability> &caps) {
+ SetVector<spirv::Capability> allCaps;
+ while (!caps.empty()) {
+ spirv::Capability cap = caps.pop_back_val();
+ allCaps.insert(cap);
+ ArrayRef<spirv::Capability> impliedCaps = getDirectImpliedCapabilities(cap);
+ for (spirv::Capability impliedCap : impliedCaps) {
+ if (!allCaps.contains(impliedCap))
----------------
davidegrohmann wrote:
Yes but in this case the insertion is on `caps` not `allCaps`.
The idea is that caps is the `caps` are the capabilities to be processed and `allCaps` is the end result.
https://github.com/llvm/llvm-project/pull/151108
More information about the Mlir-commits
mailing list