llvm-project/mlir/docs
Stephen Neuendorffer 628288658c [MLIR] Add RegionKindInterface
Some dialects have semantics which is not well represented by common
SSA structures with dominance constraints.  This patch allows
operations to declare the 'kind' of their contained regions.
Currently, two kinds are allowed: "SSACFG" and "Graph".  The only
difference between them at the moment is that SSACFG regions are
required to have dominance, while Graph regions are not required to
have dominance.  The intention is that this Interface would be
generated by ODS for existing operations, although this has not yet
been implemented. Presumably, if someone were interested in code
generation, we might also have a "CFG" dialect, which defines control
flow, but does not require SSA.

The new behavior is mostly identical to the previous behavior, since
registered operations without a RegionKindInterface are assumed to
contain SSACFG regions.  However, the behavior has changed for
unregistered operations.  Previously, these were checked for
dominance, however the new behavior allows dominance violations, in
order to allow the processing of unregistered dialects with Graph
regions.  One implication of this is that regions in unregistered
operations with more than one op are no longer CSE'd (since it
requires dominance info).

I've also reorganized the LangRef documentation to remove assertions
about "sequential execution", "SSA Values", and "Dominance".  Instead,
the core IR is simply "ordered" (i.e. totally ordered) and consists of
"Values".  I've also clarified some things about how control flow
passes between blocks in an SSACFG region. Control Flow must enter a
region at the entry block and follow terminator operation successors
or be returned to the containing op.  Graph regions do not define a
notion of control flow.

see discussion here:
https://llvm.discourse.group/t/rfc-allowing-dialects-to-relax-the-ssa-dominance-condition/833/53

Differential Revision: https://reviews.llvm.org/D80358
2020-07-15 14:27:05 -07:00
..
Bindings Add Python bindings guide. 2020-07-09 20:49:39 -07:00
Dialects [mlir] LLVM dialect: use addressof instead of constant to create function pointers 2020-06-29 12:21:33 +02:00
Rationale [mlir][NFC] Remove usernames and google bug numbers from TODO comments. 2020-07-07 01:40:52 -07:00
Tutorials [mlir] Remove the default template parameters from AttrBase and TypeBase. 2020-06-30 21:55:32 -07:00
includes/img Adjust some MLIR paths and docs 2019-12-24 02:23:01 +00:00
CMakeLists.txt Remove CMake configuration for Sphinx targets in MLIR 2020-03-12 01:28:38 +00:00
Canonicalization.md Fix broken doc links to QuickstartRewrites.md after move under Tutorials 2020-04-19 04:51:03 +00:00
ConversionToLLVMDialect.md [mlir] minor tweaks in standard-to-llvm lowering 2020-06-30 21:19:19 +02:00
DeclarativeRewrites.md [mlir] NFC: fix trivial typo 2020-04-29 14:47:56 +09:00
Diagnostics.md [Support] Move LLD's parallel algorithm wrappers to support 2020-05-05 15:21:05 -07:00
DialectConversion.md [mlir][DialectConversion] Refactor how block argument types get converted 2020-06-18 15:59:22 -07:00
EDSC.md [mlir] Change dialect namespace loop->scf 2020-05-13 19:20:21 +02:00
GenericDAGRewriter.md [mlir][docs] Remove the MLIR prefix from several titles. 2020-04-11 14:49:03 -07:00
Interfaces.md [MLIR] Add RegionKindInterface 2020-07-15 14:27:05 -07:00
LangRef.md [MLIR] Add RegionKindInterface 2020-07-15 14:27:05 -07:00
OpDefinitions.md [mlir] Add support for parsing optional Attribute values. 2020-07-14 13:14:59 -07:00
PassManagement.md [mlir] Add a new context flag for disabling/enabling multi-threading 2020-05-02 12:32:25 -07:00
Passes.md Revert "Revert "[MLIR] Lower shape.num_elements -> shape.reduce."" 2020-06-08 12:19:54 +02:00
Quantization.md [mlir][NFC] Remove usernames and google bug numbers from TODO comments. 2020-07-07 01:40:52 -07:00
README.txt [mlir] Add short readme.txt to docs directory 2020-02-18 08:35:22 -08:00
ShapeInference.md [mlir] NFC: fix trivial typo 2020-04-29 14:47:56 +09:00
SymbolsAndSymbolTables.md Fix broken docs links (WritingAPass.md was renamed PassManagement.md) 2020-04-19 04:38:56 +00:00
Traits.md [mlir] Refactor InterfaceGen to support generating interfaces for Attributes and Types. 2020-06-30 15:52:33 -07:00
doxygen-mainpage.dox [mlir] Bootstrap doxygen config 2020-01-25 09:31:59 -08:00
doxygen.cfg.in [mlir] NFC: fix trivial typo 2020-04-29 14:47:56 +09: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.