llvm-project/mlir
Chris Lattner 40a89da65c [Canonicalize] Don't call isBeforeInBlock in OperationFolder::tryToFold.
This patch (e4635e6328) fixed a bug where a newly generated/reused
constant wouldn't dominate a folded operation.  It did so by calling
isBeforeInBlock to move the constant around on demand.  This introduced
a significant compile time regression, because "isBeforeInBlock" is
O(n) in the size of a block the first time it is called, and the cache
is invalidated any time canonicalize changes something big in the block.

This fixes LLVM PR51738 and this CIRCT issue:
https://github.com/llvm/circt/issues/1700

This does affect the order of constants left in the top of a block,
I staged in the testsuite changes in rG42431b8207a5.

Differential Revision: https://reviews.llvm.org/D109454
2021-09-08 13:33:22 -07:00
..
cmake/modules [mlir][python] Simplify python extension loading. 2021-09-03 00:43:28 +00:00
docs [MLIR][docs] Clarify language in pass restrictions 2021-09-07 13:40:55 -07:00
examples Change ASM Op printer to print the operation name in the framework instead of leaving it up to each individual operation 2021-08-31 17:52:40 +00:00
include [MLIR] FlatAffineConstraints: Refactored computation of explicit representation for identifiers 2021-09-08 20:24:46 +05:30
lib [Canonicalize] Don't call isBeforeInBlock in OperationFolder::tryToFold. 2021-09-08 13:33:22 -07:00
python [mlir][python] Simplify python extension loading. 2021-09-03 00:43:28 +00:00
test [tests] Make testsuite more resilient to "order of constant" changes. NFC. 2021-09-08 10:10:10 -07:00
tools Add sanity check in MLIR ODS to catch case where two operands have the same name 2021-09-08 16:58:57 +00:00
unittests [MLIR] FlatAffineConstraints: Refactored computation of explicit representation for identifiers 2021-09-08 20:24:46 +05:30
utils [vscode-mlir] Add proper support for mlir markdown codeblocks 2021-08-03 19:55:31 +00:00
.clang-format
.clang-tidy NFC: .clang-tidy: Inherit configs from parents to improve maintainability 2021-06-08 08:25:59 -07:00
CMakeLists.txt [MLIR] Drop old cmake var names 2021-05-24 15:30:01 +05:30
LICENSE.TXT
README.md

README.md

Multi-Level Intermediate Representation

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