Fix missing links in the documentation
authorKazuaki Ishizaki <kiszk@users.noreply.github.com>
Fri, 27 Sep 2019 14:44:52 +0000 (07:44 -0700)
committerA. Unique TensorFlower <gardener@tensorflow.org>
Fri, 27 Sep 2019 15:07:31 +0000 (08:07 -0700)
Closes tensorflow/mlir#149

COPYBARA_INTEGRATE_REVIEW=https://github.com/tensorflow/mlir/pull/149 from kiszk:missing_links_g3doc 5f98bc279649d54ea3dcf9fe0e17be6ad6d6cb8f
PiperOrigin-RevId: 271568274

mlir/g3doc/Dialects/Affine.md
mlir/g3doc/Dialects/Vector.md
mlir/g3doc/LangRef.md
mlir/g3doc/OpDefinitions.md
mlir/g3doc/Tutorials/Toy/Ch-1.md
mlir/g3doc/WritingAPass.md

index 98e451f..30fce02 100644 (file)
@@ -300,7 +300,7 @@ operation ::= ssa-id `=` `affine.apply` affine-map dim-and-symbol-use-list
 ```
 
 The `affine.apply` operation applies an
-[affine mapping](../LangRef.md#affine-expressions) to a list of SSA values,
+[affine mapping](#affine-expressions) to a list of SSA values,
 yielding a single SSA value. The number of dimension and symbol arguments to
 affine.apply must be equal to the respective number of dimensional and symbolic
 inputs to the affine mapping; the `affine.apply` operation always returns one
@@ -392,7 +392,7 @@ space defined by an integer set (a conjunction of affine constraints). A single
 `affine.if` may end with an optional `else` clause.
 
 The condition of the `affine.if` is represented by an
-[integer set](../LangRef.md#integer-sets) (a conjunction of affine constraints),
+[integer set](#integer-sets) (a conjunction of affine constraints),
 and the SSA values bound to the dimensions and symbols in the integer set. The
 [same restrictions](#restrictions-on-dimensions-and-symbols) hold for these SSA
 values as for all bindings of SSA values to dimensions and symbols.
index ea916bb..4607c32 100644 (file)
@@ -47,7 +47,7 @@ The `vector.transfer_read` performs a blocking read from a slice within a scalar
 [vector](../LangRef.md#vector-type) of the same elemental type. The slice is
 further defined by a full-rank index within the MemRef, supplied as the operands
 `2 .. 1 + rank(memref)`. The permutation_map [attribute](../LangRef.md#attributes)
-is an [affine-map](../LangRef.md#affine-maps) which specifies the transposition on
+is an [affine-map](Affine.md#affine-maps) which specifies the transposition on
 the slice to match the vector shape. The size of the slice is specified by the
 size of the vector, given as the return type. Optionally, an `ssa-value` of the
 same elemental type as the MemRef is provided as the last operand to specify
@@ -146,7 +146,7 @@ within a scalar [MemRef](../LangRef.md#memref-type) of the same elemental type,
 supplied as its second operand. The slice is further defined by a full-rank
 index within the MemRef, supplied as the operands `3 .. 2 + rank(memref)`. The
 permutation_map [attribute](../LangRef.md#attributes) is an
-[affine-map](../LangRef.md#affine-maps) which specifies the transposition on the
+[affine-map](Affine.md#affine-maps) which specifies the transposition on the
 slice to match the vector shape. The size of the slice is specified by the size
 of the vector. This operation is called 'write' by opposition to 'store' because
 the super-vector granularity is generally not representable with a single
index e80cf06..39d98de 100644 (file)
@@ -31,7 +31,7 @@ which means that values are defined before use and have scope defined by their
 dominance relations. Operations may produce zero or more results, and each is a
 distinct SSA value with its own type defined by the [type system](#type-system).
 
-The unit of code in MLIR is an [Operation](#operation). Operations allow for
+The unit of code in MLIR is an [Operation](#operations). Operations allow for
 representing many different concepts: allocating buffers, producing views to
 transform them, target-independent arithmetic, target-specific operations, and
 even arbitrary user-defined high-level operations including the
index 28cab5d..bc0d753 100644 (file)
@@ -844,7 +844,7 @@ requirements that were desirable:
 * The op's traits (e.g., commutative) are modelled along with the op in
   the registry.
 * The op's operand/return type constraints are modelled along with the op in
-  the registry (see [Type constraints](#type-constraints) discussion below),
+  the registry (see [Shape inference](#shape-inference) discussion below),
   this allows (e.g.) optimized concise syntax in textual dumps.
 * Behavior of the op is documented along with the op with a summary and a
   description. The description is written in markdown and extracted for
index 0e275d0..a10a3bd 100644 (file)
@@ -22,8 +22,8 @@ This tutorial is divided in the following chapters:
     high level language specific semantics towards a generic linear-algebra
     oriented dialect for optimizations. Ultimately we will emit LLVM IR for code
     generation.
--   [Chapter #5](Ch-6.md): A REPL?
--   [Chapter #6](Ch-7.md): Custom backends? GPU using LLVM? TPU? XLA
+-   [Chapter #6](Ch-6.md): A REPL?
+-   [Chapter #7](Ch-7.md): Custom backends? GPU using LLVM? TPU? XLA
 
 ## The Language
 
index 64953df..ae371d7 100644 (file)
@@ -312,7 +312,7 @@ program has been run through the passes. This provides several benefits:
 ## Pass Registration
 
 Briefly shown in the example definitions of the various
-[pass types](#pass-types) is the `PassRegistration` class. This is a utility to
+pass types is the `PassRegistration` class. This is a utility to
 register derived pass classes so that they may be created, and inspected, by
 utilities like mlir-opt. Registering a pass class takes the form: