summaryrefslogtreecommitdiffstats
path: root/mlir/g3doc/Rationale.md
diff options
context:
space:
mode:
authorRiver Riddle <riverriddle@google.com>2019-02-06 12:59:50 -0800
committerjpienaar <jpienaar@google.com>2019-03-29 16:18:59 -0700
commitfd2d7c857b9cfecb91346a6ef6dc6bf13b98ae1d (patch)
treedf2d981ec1b959ceaf168ba36a6114bee029e0d2 /mlir/g3doc/Rationale.md
parent888b9fa8a6bc828814dc2df7e57abcc443f6517e (diff)
downloadbcm5719-llvm-fd2d7c857b9cfecb91346a6ef6dc6bf13b98ae1d.tar.gz
bcm5719-llvm-fd2d7c857b9cfecb91346a6ef6dc6bf13b98ae1d.zip
Rename the 'if' operation in the AffineOps dialect to 'affine.if' and namespace
the AffineOps dialect with 'affine'. PiperOrigin-RevId: 232728977
Diffstat (limited to 'mlir/g3doc/Rationale.md')
-rw-r--r--mlir/g3doc/Rationale.md16
1 files changed, 8 insertions, 8 deletions
diff --git a/mlir/g3doc/Rationale.md b/mlir/g3doc/Rationale.md
index bafd029ce0f..8b22e93598c 100644
--- a/mlir/g3doc/Rationale.md
+++ b/mlir/g3doc/Rationale.md
@@ -568,9 +568,9 @@ func @search_body(%A: memref<?x?xi32>, %S: memref<?xi32>, %key: i32) {
As per the [MLIR spec](LangRef.md), the restrictions on dimensions and symbol
identifiers to be used with the affine.apply instruction only apply to accesses
-inside `affine.for` and `if` instructions. However, an analysis of accesses
-inside the called function (`@search_body`) is necessary to determine if the
-`%i` loop could be parallelized: such function access analysis is calling
+inside `affine.for` and `affine.if` instructions. However, an analysis of
+accesses inside the called function (`@search_body`) is necessary to determine
+if the `%i` loop could be parallelized: such function access analysis is calling
context sensitive.
### Non-affine loop bounds {#non-affine-loop-bounds}
@@ -665,7 +665,7 @@ func @conv2d(memref<16x1024x1024x3xf32, #lm0, vmem> %input,
%h_pad_low, %w_pad_low]
// Check if access is not in padding.
- if #domain(%1_0, %1_1)
+ affine.if #domain(%1_0, %1_1)
[%h_base_dilation, %w_kernel_dilation, %h_bound, %w_bound] {
%2_0 = affine.apply #map2 (%1_0, %1_1)
%2_1 = affine.apply #map2 (%1_0, %1_1)
@@ -899,10 +899,10 @@ func @dma_hbm_to_vmem(memref<1024 x f32, #layout_map0, hbm> %a,
representation. 2(b) requires no change, but impacts how cost models look at
index and layout maps.
-### `if` and `affine.for` Extensions for "Escaping Scalars" {#extensions-for-"escaping-scalars"}
+### `affine.if` and `affine.for` Extensions for "Escaping Scalars" {#extensions-for-"escaping-scalars"}
We considered providing a representation for SSA values that are live out of
-`if/else` conditional bodies and loop carried in `affine.for` loops. We
+`affine.if/else` conditional bodies and loop carried in `affine.for` loops. We
ultimately abandoned this approach due to its complexity. In the current design
of MLIR, scalar variables cannot escape for loops or if instructions. In
situations, where escaping is necessary, we use zero-dimensional tensors and
@@ -948,7 +948,7 @@ func int32 @sum(%A : memref<?xi32>, %N : i32) -> (i32) {
Syntax:
``` {.ebnf}
-<out-var-list> = if (<cond-list>) {...} [else {...}]
+<out-var-list> = affine.if (<cond-list>) {...} [else {...}]
```
Out-var-list is a list of SSA values defined by the if-instruction. The values
@@ -965,7 +965,7 @@ Example:
func int32 @sum_half(%A, %N) {
%s0 = 0
%s1 = affine.for %i = 1 ... N step 1 with %s2 (%s0) {
- %s3 = if (%i >= %N / 2) {
+ %s3 = affine.if (%i >= %N / 2) {
%v0 = load %A[%i]
%s4 = %s2 + %v0
yield %s4
OpenPOWER on IntegriCloud