[Mlir-commits] [mlir] 6a378b3 - [mlir][spirv] Add base classes for vendor ops

Jakub Kuderski llvmlistbot at llvm.org
Tue Sep 6 10:35:58 PDT 2022


Author: Jakub Kuderski
Date: 2022-09-06T13:35:08-04:00
New Revision: 6a378b38ff30a970bf3aa06ae2819679ba2747b0

URL: https://github.com/llvm/llvm-project/commit/6a378b38ff30a970bf3aa06ae2819679ba2747b0
DIFF: https://github.com/llvm/llvm-project/commit/6a378b38ff30a970bf3aa06ae2819679ba2747b0.diff

LOG: [mlir][spirv] Add base classes for vendor ops

This is the first patch in the series to rename vendor ops from
`spv.NameVENDOR` to `spv.VENDOR.Name`. The goal is to make the SPIR-V
dialect more internally consistent.

Issue: https://github.com/llvm/llvm-project/issues/56863

Added: 
    

Modified: 
    mlir/include/mlir/Dialect/SPIRV/IR/SPIRVBase.td

Removed: 
    


################################################################################
diff  --git a/mlir/include/mlir/Dialect/SPIRV/IR/SPIRVBase.td b/mlir/include/mlir/Dialect/SPIRV/IR/SPIRVBase.td
index 1a1e62018fac6..afe1185906292 100644
--- a/mlir/include/mlir/Dialect/SPIRV/IR/SPIRVBase.td
+++ b/mlir/include/mlir/Dialect/SPIRV/IR/SPIRVBase.td
@@ -4541,4 +4541,28 @@ class SPV_ExtInstOp<string mnemonic, string setPrefix, string setName,
   string extendedInstSetName = setName;
 }
 
+// Base classes for SPIR-V vendor ops. These have opcode in the form of
+// Op<Name><VENDOR>, e.g., OpCooperativeMatrixStoreNV.
+class SPV_VendorOp<string mnemonic, string vendorName,
+                   list<Trait> traits = []> :
+  SPV_Op<mnemonic # vendorName, traits> {
+  string spirvOpName = "Op" # mnemonic # vendorName;
+}
+
+class SPV_ExtVendorOp<string mnemonic, list<Trait> traits = []> :
+  SPV_VendorOp<mnemonic, "EXT", traits> {
+}
+
+class SPV_KhrVendorOp<string mnemonic, list<Trait> traits = []> :
+  SPV_VendorOp<mnemonic, "KHR", traits> {
+}
+
+class SPV_IntelVendorOp<string mnemonic, list<Trait> traits = []> :
+  SPV_VendorOp<mnemonic, "INTEL", traits> {
+}
+
+class SPV_NvVendorOp<string mnemonic, list<Trait> traits = []> :
+  SPV_VendorOp<mnemonic, "NV", traits> {
+}
+
 #endif // MLIR_DIALECT_SPIRV_IR_BASE


        


More information about the Mlir-commits mailing list