llvm-project/mlir
River Riddle 2eda87dfbe [mlir][SCCP] Add support for propagating constants across inter-region control flow.
This is possible by adding two new ControlFlowInterface additions:

- A new interface, RegionBranchOpInterface
This interface allows for region holding operations to describe how control flows between regions. This interface initially contains two methods:

* getSuccessorEntryOperands
Returns the operands of this operation used as the entry arguments when entering the region at `index`, which was specified as a successor by `getSuccessorRegions`. when entering. These operands should correspond 1-1 with the successor inputs specified in `getSuccessorRegions`, and may be a subset of the entry arguments for that region.

*  getSuccessorRegions
Returns the viable successors of a region, or the possible successor when branching from the parent op. This allows for describing which regions may be executed when entering an operation, and which regions are executed after having executed another region of the parent op. For example, a structured loop operation may always enter into the loop body region. The loop body region may branch back to itself, or exit to the operation.

- A trait, ReturnLike
This trait signals that a terminator exits a region and forwards all of its operands as "exiting" values.

These additions allow for performing more general dataflow analysis in the presence of region holding operations.

Differential Revision: https://reviews.llvm.org/D78447
2020-04-21 02:59:25 -07:00
..
cmake/modules [MLIR] Fix MLIR_MAIN_[SRC|INCLUDE]_DIR variables 2020-04-12 09:29:07 +03:00
docs [mlir][ods] Update doc regarding attribute definitions 2020-04-20 11:58:12 -04:00
examples [mlir][NFC] Remove the STLExtras.h header file now that it has been merged into LLVM. 2020-04-14 15:14:41 -07:00
include [mlir][SCCP] Add support for propagating constants across inter-region control flow. 2020-04-21 02:59:25 -07:00
lib [mlir][SCCP] Add support for propagating constants across inter-region control flow. 2020-04-21 02:59:25 -07:00
test [mlir][SCCP] Add support for propagating constants across inter-region control flow. 2020-04-21 02:59:25 -07:00
tools [mlir][ods] Add materialize derived attribute method 2020-04-20 13:13:04 -07:00
unittests [llvm][StringExtras] Merge StringExtras from MLIR into LLVM 2020-04-14 18:57:22 -07:00
utils [mlir][spirv] NFC: use Optional to replace SPV_Optional 2020-04-13 15:44:06 -04:00
.clang-format [mlir] add .clang-format 2019-03-29 12:41:43 -07:00
.clang-tidy Fix MLIR clang-tidy: when tweaking it does not inherit from the parent 2020-03-07 17:44:21 +00:00
CMakeLists.txt [MLIR] Fix MLIR_MAIN_[SRC|INCLUDE]_DIR variables 2020-04-12 09:29:07 +03:00
LICENSE.TXT Add the Apache2 with LLVM exceptions license to MLIR 2019-12-24 00:58:06 -08:00
README.md mlir README.md: Fix the syntax 2019-12-24 13:31:07 +01:00

README.md

Multi-Level Intermediate Representation

See https://mlir.llvm.org/ for more information.