[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