summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mlir/g3doc/LangRef.md30
1 files changed, 19 insertions, 11 deletions
diff --git a/mlir/g3doc/LangRef.md b/mlir/g3doc/LangRef.md
index fa22fa5a35e..a810330d37e 100644
--- a/mlir/g3doc/LangRef.md
+++ b/mlir/g3doc/LangRef.md
@@ -811,17 +811,25 @@ exposed to codegen but one may query the rank of an unranked memref (a special
op will be needed for this purpose) and perform a switch and cast to a ranked
memref as a prerequisite to codegen.
-Example ```mlir {.mlir} // With static ranks, we need a function for each
-possible argument type %A = alloc() : memref<16x32xf32> %B = alloc() :
-memref<16x32x64xf32> call @helper_2D(%A) : (memref<16x32xf32>)->() call
-@helper_3D(%B) : (memref<16x32x64xf32>)->()
-
-// With unknown rank, the functions can be unified under one unranked type %A =
-alloc() : memref<16x32xf32> %B = alloc() : memref<16x32x64xf32> // Remove rank
-info %A_u = memref_cast %A : memref<16x32xf32> -> memref<*xf32> %B_u =
-memref_cast %B : memref<16x32x64xf32> -> memref<*xf32> // call same function
-with dynamic ranks call @helper(%A_u) : (memref<*xf32>)->() call @helper(%B_u) :
-(memref<*xf32>)->() ```
+Example
+```mlir {.mlir}
+// With static ranks, we need a function for each
+// possible argument type
+%A = alloc() : memref<16x32xf32>
+%B = alloc() : memref<16x32x64xf32>
+call @helper_2D(%A) : (memref<16x32xf32>)->()
+call @helper_3D(%B) : (memref<16x32x64xf32>)->()
+
+// With unknown rank, the functions can be unified under one unranked type
+%A = alloc() : memref<16x32xf32>
+%B = alloc() : memref<16x32x64xf32>
+// Remove rank info
+%A_u = memref_cast %A : memref<16x32xf32> -> memref<*xf32>
+%B_u = memref_cast %B : memref<16x32x64xf32> -> memref<*xf32>
+// call same function with dynamic ranks
+call @helper(%A_u) : (memref<*xf32>)->()
+call @helper(%B_u) : (memref<*xf32>)->()
+```
The core syntax and representation of a layout specification is a
[semi-affine map](Dialects/Affine.md#semi-affine-maps). Additionally, syntactic
OpenPOWER on IntegriCloud