1# Rationale 2 3This section contains a collection of documents describing the motivation and 4rationale for some of the design decisions behind MLIR. 5 6[MLIR: Incremental Application to Graph Algorithms in ML Frameworks](MLIRForGraphAlgorithms.md) 7: A discussion of how the adoption of MLIR can be taken in incremental steps, 8 with each step providing tangible benefits along the way. Refutes the idea 9 that full adoption of MLIR is required before we can reap the benefits of 10 MLIR. 11 12[MLIR Rationale](Rationale.md) 13: Introduces the motivation for MLIR and captures design discussions and 14 decisions made for various core features of MLIR. 15 16[Generic DAG Rewriter Infrastructure Rationale](RationaleGenericDAGRewriter.md) 17: Details the rationale behind a general DAG-to-DAG rewrite infrastructure for 18 MLIR. 19 20[Linalg Dialect Rationale: The Case for Compiler-Friendly Custom Operations](RationaleLinalgDialect.md) 21: Describes the key design principles that led to the existing implementation 22 of Linalg and lessons learned along the way. 23 24[MLIR: The case for a simplified polyhedral form](RationaleSimplifiedPolyhedralForm.md) 25: An early design proposal exploring the tradeoffs of using a simplified form 26 for polyhedral compiler techniques in MLIR instead of the traditional 27 polyhedral schedule list form. 28 29[Usage of 'const' in MLIR, for core IR types](UsageOfConst.md) 30: Explains the rationale for eschewing the use of `const` entirely for the 31 core IR types in MLIR. 32