Fix langref code snippet - NFC

Closes tensorflow/mlir#294

PiperOrigin-RevId: 284281172
This commit is contained in:
nmostafa 2019-12-06 16:03:16 -08:00 committed by A. Unique TensorFlower
parent 6500b7e0c0
commit fcc215e399
1 changed files with 18 additions and 10 deletions

View File

@ -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>)->()
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>)->() ```
// 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