[Mlir-commits] [mlir] [MLIR][Linalg][Docs] Add forms to Linalg rationale docs (PR #156859)

Jacques Pienaar llvmlistbot at llvm.org
Sun Sep 14 22:41:17 PDT 2025


================
@@ -506,6 +506,58 @@ potential by introducing lower-level IR ops and *smaller* Linalg ops.
 This gradually reduces the potential, all the way to Loops + VectorOps
 and LLVMIR.
 
+### Interchangeability of Forms<a name="forms"></a>
+
+#### The Linalg Forms
+
+The core Linalg operation tree has three forms:
+* **Generic:** Represented by `linalg.generic` and can encode all perfectly-nested
+loop operations.
+* **Category:** Represented by `linalg.contract` and `linalg.elementwise`,
+which are special (einsum) forms of the `generic` operation. In the future, other
+category operations are planned (e.g.: `linalg.convolution` and `linalg.pooling`).
+* **Named:** All _named_ forms that can lower to either _category_ or
----------------
jpienaar wrote:

Can lower as in there is a pass option/different passes? Or is this a more general statement, that how they are lowered is not fixed but one or the other can be reached? (e.g., these are composite ops that can be decomposed). Also is the lowering required to be one form or the other, or can be a combination too?

https://github.com/llvm/llvm-project/pull/156859


More information about the Mlir-commits mailing list