[PATCH] D75870: [mlir][spirv] Add a pass to deduce version/extension/capability

Lei Zhang via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 11 13:35:15 PDT 2020


antiagainst added inline comments.


================
Comment at: mlir/include/mlir/Dialect/SPIRV/Passes.h:37
+/// actually needed for a specific spv.module op.
+std::unique_ptr<OpPassBase<spirv::ModuleOp>>
+createUpdateVersionCapabilityExtensionPass();
----------------
mravishankar wrote:
> This seems to assume that there is a "linear" order of capabilities and extensions. Is that the case?
> Also, is there a way to have a "Base" limit you can start with? It can be the most lenient or the least lenient set
For an op, there can exists multiple capabilities to enable it. E.g., `OpGroupNonUniformIAdd` can be enabled by any of [GroupNonUniformArithmetic, GroupNonUniformClustered, GroupNonUniformPartitionedNV]. It's a set (although under the hood we indeed search linearly but that's implementation detail). Any one of them allowed by the target it should be fine and we'll pick that one.

It's hard to find a more "general" or well supported one that's also a moving target given new hardware coming up and existing ones updated.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D75870/new/

https://reviews.llvm.org/D75870





More information about the llvm-commits mailing list