llvm-project/mlir/lib
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
..
Analysis [MLIR] FlatAffineConstraints: Refactored computation of explicit representation for identifiers 2021-09-08 20:24:46 +05:30
Bindings/Python [mlir][python] Simplify python extension loading. 2021-09-03 00:43:28 +00:00
CAPI [mlir][capi] Add NameLoc 2021-09-01 16:16:35 -07:00
Conversion [mlir] Fix SplatOp lowering to the LLVM dialect 2021-09-07 19:14:28 +02:00
Dialect [mlir][linalg] linalg.tiled_loop peeling 2021-09-07 09:50:08 +09:00
ExecutionEngine [mlir][sparse] fix typos 2021-09-07 14:20:05 -07:00
IR Add a new interface allowing to set a default dialect to be used for printing/parsing regions 2021-08-31 17:52:40 +00:00
Interfaces [mlir] Add an interface to allow operations to specify how they can be tiled. 2021-08-30 16:31:18 -07:00
Parser [mlir][flang] Do not prevent integer types from being parsed as MLIR keywords 2021-09-03 08:20:49 +02:00
Pass Remove deprecated registration APIs (NFC) 2021-09-01 18:53:30 +00:00
Reducer [mlir-reduce] Fix the memory leak and recycle unused modules. 2021-07-08 20:03:47 +08:00
Rewrite [SymbolRefAttr] Revise SymbolRefAttr to hold a StringAttr. 2021-08-29 21:54:47 -07:00
Support [mlir] Fix CMake linker rules for ViewOpGraph.cpp 2021-08-04 19:25:15 +09:00
TableGen [mlir][NFC] Fully qualify default value of Attributes `getStorageType()` in files generated by mlir-tblgen 2021-08-28 15:37:56 +02:00
Target [mlir] speed up construction of LLVM IR constants when possible 2021-09-02 23:07:30 +02:00
Tools [mlir-lsp-server] Only use one MLIRContext per MLIRTextFile 2021-08-04 20:09:07 +00:00
Transforms [Canonicalize] Don't call isBeforeInBlock in OperationFolder::tryToFold. 2021-09-08 13:33:22 -07:00
Translation [mlir] run the verifier before translating a module 2021-07-28 18:15:58 +02:00
CMakeLists.txt Re-engineer MLIR python build support. 2021-07-27 15:54:58 +00:00