[Mlir-commits] [mlir] [MLIR][Mem2Reg] Improve performance by avoiding recomputations (PR #91444)
Christian Ulmann
llvmlistbot at llvm.org
Wed May 8 01:15:37 PDT 2024
================
@@ -605,20 +627,24 @@ void MemorySlotPromoter::promoteSlot() {
LogicalResult mlir::tryToPromoteMemorySlots(
ArrayRef<PromotableAllocationOpInterface> allocators, OpBuilder &builder,
- const DataLayout &dataLayout, Mem2RegStatistics statistics) {
+ const DataLayout &dataLayout, DominanceInfo &dominance,
+ Mem2RegStatistics statistics) {
bool promotedAny = false;
+ // Cache for block index maps. This is required to avoid expensive
+ // recomputations.
+ BlockIndexCache blockIndexCache;
+
for (PromotableAllocationOpInterface allocator : allocators) {
----------------
Dinistro wrote:
On a slightly unrelated note: Would it make sense to move in the repeated promotion try loop to this place? I guess that keeping some of the caches around for longer would be beneficial. Additionally, we could avoid re-walking the entire region to get all the allocators again.
https://github.com/llvm/llvm-project/pull/91444
More information about the Mlir-commits
mailing list