}
```
-See the [quickstart guide](QuickstartRewrites.md) for information on defining
-operation rewrites.
+See the [quickstart guide](Tutorials/QuickstartRewrites.md) for information on
+defining operation rewrites.
### Canonicalizing with `fold`
This manual explains in detail all of the available mechanisms for defining
rewrite rules in such a declarative manner. It aims to be a specification
instead of a tutorial. Please refer to
-[Quickstart tutorial to adding MLIR graph rewrite](QuickstartRewrites.md) for
-the latter.
+[Quickstart tutorial to adding MLIR graph
+rewrite](Tutorials/QuickstartRewrites.md) for the latter.
Given that declarative rewrite rules depend on op definition specification, this
manual assumes knowledge of the [ODS](OpDefinitions.md) doc.
must be provided to transform illegal operations into legal ones. The patterns
supplied here, that do not [require type changes](#conversion-patterns), are the
same as those described in the
-[quickstart rewrites guide](QuickstartRewrites.md#adding-patterns), but have a
+[quickstart rewrites guide](Tutorials/QuickstartRewrites.md#adding-patterns), but have a
few additional [restrictions](#restrictions). The patterns provided do not need
to generate operations that are directly legal on the target. The framework will
automatically build a graph of conversions to convert non-legal operations into
This manual explains in detail all the available mechanisms for defining
operations in such a table-driven manner. It aims to be a specification instead
of a tutorial. Please refer to [Quickstart tutorial to adding MLIR graph
-rewrite](QuickstartRewrites.md) for the latter.
+rewrite](Tutorials/QuickstartRewrites.md) for the latter.
In addition to detailing each mechanism, this manual also tries to capture
best practices. They are rendered as quoted bullet points.
See [MLIR specification](LangRef.md) for more information about MLIR and its
core aspects, such as the IR structure and operations.
-See [MLIR Rewrites](QuickstartRewrites.md) for a quick start on graph rewriting
-in MLIR. If your transformation involves pattern matching operation DAGs, this
-is a great place to start.
+See [MLIR Rewrites](Tutorials/QuickstartRewrites.md) for a quick start on graph
+rewriting in MLIR. If your transformation involves pattern matching operation
+DAGs, this is a great place to start.
## Operation Pass
* A set of
[Rewrite Patterns](../../DialectConversion.md#rewrite-pattern-specification)
- - This is the set of [patterns](../../QuickstartRewrites.md) used to
+ - This is the set of [patterns](../QuickstartRewrites.md) used to
convert *illegal* operations into a set of zero or more *legal* ones.
* Optionally, a [Type Converter](../../DialectConversion.md#type-conversion).
*illegal* operations into *legal* ones. Similarly to the canonicalization
framework introduced in [chapter 3](Ch-3.md), the
[`DialectConversion` framework](../../DialectConversion.md) also uses
-[RewritePatterns](../../QuickstartRewrites.md) to perform the conversion logic.
+[RewritePatterns](../QuickstartRewrites.md) to perform the conversion logic.
These patterns may be the `RewritePatterns` seen before or a new type of pattern
specific to the conversion framework `ConversionPattern`. `ConversionPatterns`
are different from traditional `RewritePatterns` in that they accept an