llvm-project/mlir/docs
River Riddle 0d7ff220ed [mlir] Refactor TypeConverter to add conversions without inheritance
Summary:
This revision refactors the TypeConverter class to not use inheritance to add type conversions. It instead moves to a registration based system, where conversion callbacks are added to the converter with `addConversion`. This method takes a conversion callback, which must be convertible to any of the following forms(where `T` is a class derived from `Type`:
* Optional<Type> (T type)
   - This form represents a 1-1 type conversion. It should return nullptr
     or `llvm::None` to signify failure. If `llvm::None` is returned, the
     converter is allowed to try another conversion function to perform
     the conversion.
* Optional<LogicalResult>(T type, SmallVectorImpl<Type> &results)
   - This form represents a 1-N type conversion. It should return
     `failure` or `llvm::None` to signify a failed conversion. If the new
     set of types is empty, the type is removed and any usages of the
     existing value are expected to be removed during conversion. If
     `llvm::None` is returned, the converter is allowed to try another
     conversion function to perform the conversion.

When attempting to convert a type, the TypeConverter walks each of the registered converters starting with the one registered most recently.

Differential Revision: https://reviews.llvm.org/D74584
2020-02-18 16:17:48 -08:00
..
Dialects [mlir] Fix multiple titles 2020-02-17 13:55:46 -08:00
Tutorials/Toy [mlir] Fix multiple titles 2020-02-17 13:55:46 -08:00
includes/img Adjust some MLIR paths and docs 2019-12-24 02:23:01 +00:00
CMakeLists.txt [mlir] Bootstrap doxygen config 2020-01-25 09:31:59 -08:00
Canonicalization.md Adjust some MLIR paths and docs 2019-12-24 02:23:01 +00:00
ConversionToLLVMDialect.md [mlir] use unpacked memref descriptors at function boundaries 2020-02-10 15:03:43 +01:00
DeclarativeRewrites.md NFC: add indexing operator for ArrayAttr 2020-02-14 22:54:37 -08:00
DefiningAttributesAndTypes.md [mlir] NFC: Fix broken links in docs 2020-01-03 10:26:27 +08:00
Diagnostics.md fix doc grammar-o to cycle bots 2020-01-02 12:11:59 -05:00
DialectConversion.md [mlir] Refactor TypeConverter to add conversions without inheritance 2020-02-18 16:17:48 -08:00
EDSC.md [mlir][EDSC] Almost NFC - Refactor and untangle EDSC dependencies 2020-02-10 12:10:41 -05:00
GenericDAGRewriter.md Adjust some MLIR paths and docs 2019-12-24 02:23:01 +00:00
Interfaces.md Adjust some MLIR paths and docs 2019-12-24 02:23:01 +00:00
LangRef.md [mlir] Add a document detailing the design of the SymbolTable. 2020-02-08 10:40:07 -08:00
MLIRForGraphAlgorithms.md Adjust some MLIR paths and docs 2019-12-24 02:23:01 +00:00
OpDefinitions.md [mlir][DeclarativeParser] Add support for attributes with buildable types. 2020-02-08 15:46:46 -08:00
Passes.md Adjust some MLIR paths and docs 2019-12-24 02:23:01 +00:00
Quantization.md Adjust some MLIR paths and docs 2019-12-24 02:23:01 +00:00
QuickstartRewrites.md [mlir] NFC: Remove Value::operator* and Value::operator-> now that Value is properly value-typed. 2020-01-11 08:54:39 -08:00
README.txt [mlir] Add short readme.txt to docs directory 2020-02-18 08:35:22 -08:00
Rationale.md Adjust some MLIR paths and docs 2019-12-24 02:23:01 +00:00
RationaleLinalgDialect.md [mlir] Fix multiple titles 2020-02-17 13:55:46 -08:00
RationaleSimplifiedPolyhedralForm.md [mlir] Make code blocks more consistent 2019-12-31 09:54:16 -08:00
ShapeInference.md [mlir] Expand shape functions in ShapeInference doc 2020-02-01 14:44:38 -08:00
SymbolsAndSymbolTables.md [mlir] Address post commit feedback of D73590 for SymbolsAndSymbolTables.md 2020-02-16 21:07:20 -08:00
Traits.md [mlir] Add a document detailing the design of the SymbolTable. 2020-02-08 10:40:07 -08:00
UsageOfConst.md Adjust some MLIR paths and docs 2019-12-24 02:23:01 +00:00
WritingAPass.md Adjust some MLIR paths and docs 2019-12-24 02:23:01 +00:00
doxygen-mainpage.dox [mlir] Bootstrap doxygen config 2020-01-25 09:31:59 -08:00
doxygen.cfg.in [mlir] Bootstrap doxygen config 2020-01-25 09:31:59 -08:00

README.txt

MLIR documentation
==================

Please note mlir.llvm.org is where MLIR's rendered documentation is displayed.
The viewing experience on GitHub or elsewhere may not match those of the
website. For any changes please verify instead that they work on the main
website first.

See https://github.com/llvm/mlir-www for the website generation information.