llvm-project/mlir/unittests
River Riddle e4e31e19bb [mlir][OpGen] Cache Identifiers for known attribute names in AbstractOperation.
Operations currently rely on the string name of attributes during attribute lookup/removal/replacement, in build methods, and more. This unfortunately means that some of the most used APIs in MLIR require string comparisons, additional hashing(+mutex locking) to construct Identifiers, and more. This revision remedies this by caching identifiers for all of the attributes of the operation in its corresponding AbstractOperation. Just updating the autogenerated usages brings up to a 15% reduction in compile time, greatly reducing the cost of interacting with the attributes of an operation. This number can grow even higher as we use these methods in handwritten C++ code.

Methods for accessing these cached identifiers are exposed via `<attr-name>AttrName` methods on the derived operation class. Moving forward, users should generally use these methods over raw strings when an attribute name is necessary.

Differential Revision: https://reviews.llvm.org/D104167
2021-06-22 19:56:05 +00:00
..
Analysis [MLIR] Support symbols in emptiness checks for FlatAffineConstraints 2021-04-08 21:38:47 +05:30
Dialect [mlir][spirv] Use SingleBlock + NoTerminator for spv.module 2021-06-09 14:00:06 -04:00
ExecutionEngine [MLIR] Create memref dialect and move dialect-specific ops from std. 2021-03-15 11:14:09 +01:00
IR [mlir] Enable delayed registration of attribute/operation/type interfaces 2021-06-17 13:19:24 +02:00
Interfaces [mlir][OpGen] Cache Identifiers for known attribute names in AbstractOperation. 2021-06-22 19:56:05 +00:00
Pass [mlir] Pass AnalysisManager as optional parameter to analysis ctor, so it can request any other analysis as dependency 2021-04-20 19:18:36 +03:00
Rewrite [mlir][Pattern] Add better support for using interfaces/traits to match root operations in rewrite patterns 2021-03-23 14:05:33 -07:00
SDBM Remove global dialect registration 2020-10-24 00:35:55 +00:00
Support [mlir][StorageUniquer] Properly call the destructor on non-trivially destructible storage instances 2021-03-11 11:35:32 -08:00
TableGen [mlir][ODS] Fix copy ctor for generate Pass classes 2021-06-21 14:07:31 +03:00
CMakeLists.txt [MLIR] Test pattern benefit sorting between operation specific and operation agnostic patterns. 2021-03-19 23:11:56 +03:00