diff --git a/mlir/docs/Rationale/_index.md b/mlir/docs/Rationale/_index.md new file mode 100644 --- /dev/null +++ b/mlir/docs/Rationale/_index.md @@ -0,0 +1,31 @@ +# Rationale + +This section contains a collection of documents describing the motivation and +rationale for some of the design decisions behind MLIR. + +* [MLIR: Incremental Application to Graph Algorithms in ML Frameworks](MLIRForGraphAlgorithms.md) - + A discussion of how the adoption of MLIR can be taken in incremental steps, + with each step providing tangible benefits along the way. Refutes the idea + that full adoption of MLIR is required before we can reap the benefits of + MLIR. + +* [MLIR Rationale](Rationale.md) - Introduces the motivation for MLIR and + captures design discussions and decisions made for various core features of + MLIR. + +* [Generic DAG Rewriter Infrastructure Rationale](RationaleGenericDAGRewriter.md) - + Details the rationale behind a general DAG-to-DAG rewrite infrastructure for + MLIR. + +* [Linalg Dialect Rationale: The Case for Compiler-Friendly Custom Operations](RationaleLinalgDialect.md) - + Describes the key design principles that led to the existing implementation + of Linalg and lessons learned along the way. + +* [MLIR: The case for a simplified polyhedral form](RationaleSimplifiedPolyhedralForm.md) - + An early design proposal exploring the tradeoffs of using a simplified form + for polyhedral compiler techniques in MLIR instead of the traditional + polyhedral schedule list form. + +* [Usage of 'Const' in MLIR, for core IR types](UsageOfConst.md) - Explains + the rationale for eschewing the use of `const` entirely for the core IR + types in MLIR.