[all-commits] [llvm/llvm-project] 67f52f: [mlir][StorageUniquer] Refactor parametric storage...
River Riddle via All-commits
all-commits at lists.llvm.org
Mon Oct 26 19:40:51 PDT 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 67f52f35d62b25f929646e972287c7b5397a044e
https://github.com/llvm/llvm-project/commit/67f52f35d62b25f929646e972287c7b5397a044e
Author: River Riddle <riddleriver at gmail.com>
Date: 2020-10-26 (Mon, 26 Oct 2020)
Changed paths:
M mlir/include/mlir/Support/StorageUniquer.h
M mlir/lib/Support/StorageUniquer.cpp
Log Message:
-----------
[mlir][StorageUniquer] Refactor parametric storage to use sharded dense sets
This revisions implements sharding in the storage of parametric instances to decrease lock contention by sharding out the allocator/mutex/etc. to use for a specific storage instance based on the hash key. This is a somewhat common approach to reducing lock contention on data structures, and is used by the concurrent hashmaps provided by folly/java/etc. For several compilations tested, this removed all/most lock contention from profiles and reduced compile time by several seconds.
Differential Revision: https://reviews.llvm.org/D89659
Commit: eda450bb27c4638ba191deaa92526c5ad0fcb87f
https://github.com/llvm/llvm-project/commit/eda450bb27c4638ba191deaa92526c5ad0fcb87f
Author: River Riddle <riddleriver at gmail.com>
Date: 2020-10-26 (Mon, 26 Oct 2020)
Changed paths:
M mlir/lib/IR/SymbolTable.cpp
Log Message:
-----------
[mlir][SymbolTable] Use Identifier instead of StringRef when looking up symbol name attributes
Using an Identifier is much more efficient for attribute lookups because it uses pointer comparison as opposed to string comparison.
Differential Revision: https://reviews.llvm.org/D89660
Compare: https://github.com/llvm/llvm-project/compare/e20d64c3d9d8...eda450bb27c4
More information about the All-commits
mailing list