[MLIR] Fix tensor shapes in Toy chapter 1
authorThomas Preud'homme <thomas.preudhomme@arm.com>
Mon, 23 Jan 2023 14:01:08 +0000 (14:01 +0000)
committerThomas Preud'homme <thomas.preudhomme@arm.com>
Fri, 27 Jan 2023 10:09:25 +0000 (10:09 +0000)
In Toy tutorial chapter 1, multiply_transpose() is called with b<2, 3>
and c<3, 2> when both parameters should have the same shape. This commit
fixes this by instead using c and d as parameters and fix a comment typo
where c and d are mentioned to have shape <2, 2> when they actually have
shape <3, 2>.

Reviewed By: mehdi_amini

Differential Revision: https://reviews.llvm.org/D142622

mlir/docs/Tutorials/Toy/Ch-1.md
mlir/test/Examples/Toy/Ch1/ast.toy

index c851f18..6838c34 100644 (file)
@@ -59,7 +59,7 @@ def main() {
 
   # A new call with <3, 2> (instead of <2, 3>) for both dimensions will
   # trigger another specialization of `multiply_transpose`.
-  var e = multiply_transpose(b, c);
+  var e = multiply_transpose(c, d);
 
   # Finally, calling into `multiply_transpose` with incompatible shape will
   # trigger a shape inference error.
@@ -106,8 +106,8 @@ Module:
         ]
       VarDecl e<> @test/Examples/Toy/Ch1/ast.toy:25:3
         Call 'multiply_transpose' [ @test/Examples/Toy/Ch1/ast.toy:25:11
-          var: b @test/Examples/Toy/Ch1/ast.toy:25:30
-          var: c @test/Examples/Toy/Ch1/ast.toy:25:33
+          var: c @test/Examples/Toy/Ch1/ast.toy:25:30
+          var: d @test/Examples/Toy/Ch1/ast.toy:25:33
         ]
       VarDecl f<> @test/Examples/Toy/Ch1/ast.toy:28:3
         Call 'multiply_transpose' [ @test/Examples/Toy/Ch1/ast.toy:28:11
index 19f525a..dc209a0 100644 (file)
@@ -15,14 +15,14 @@ def main() {
   var b<2, 3> = [1, 2, 3, 4, 5, 6];
 
   # This call will specialize `multiply_transpose` with <2, 3> for both
-  # arguments and deduce a return type of <2, 2> in initialization of `c`.
+  # arguments and deduce a return type of <3, 2> in initialization of `c`.
   var c = multiply_transpose(a, b);
   # A second call to `multiply_transpose` with <2, 3> for both arguments will
-  # reuse the previously specialized and inferred version and return `<2, 2>`
+  # reuse the previously specialized and inferred version and return `<3, 2>`
   var d = multiply_transpose(b, a);
-  # A new call with `<2, 2>` for both dimension will trigger another
+  # A new call with `<3, 2>` for both dimension will trigger another
   # specialization of `multiply_transpose`.
-  var e = multiply_transpose(b, c);
+  var e = multiply_transpose(c, d);
   # Finally, calling into `multiply_transpose` with incompatible shape will
   # trigger a shape inference error.
   var f = multiply_transpose(transpose(a), c);
@@ -63,8 +63,8 @@ def main() {
 # CHECK-NEXT:           ]
 # CHECK-NEXT:         VarDecl e<> @{{.*}}ast.toy:25:3
 # CHECK-NEXT:           Call 'multiply_transpose' [ @{{.*}}ast.toy:25:11
-# CHECK-NEXT:             var: b @{{.*}}ast.toy:25:30
-# CHECK-NEXT:             var: c @{{.*}}ast.toy:25:33
+# CHECK-NEXT:             var: c @{{.*}}ast.toy:25:30
+# CHECK-NEXT:             var: d @{{.*}}ast.toy:25:33
 # CHECK-NEXT:           ]
 # CHECK-NEXT:         VarDecl f<> @{{.*}}ast.toy:28:3
 # CHECK-NEXT:           Call 'multiply_transpose' [ @{{.*}}ast.toy:28:11