[llvm] [MachineLICM] Avoid repeated hash lookups (NFC) (PR #110452)
Kazu Hirata via llvm-commits
llvm-commits at lists.llvm.org
Sun Sep 29 22:06:48 PDT 2024
https://github.com/kazutakahirata created https://github.com/llvm/llvm-project/pull/110452
None
>From 36dd9dac8b22fc57fa29516df1f71955e3188632 Mon Sep 17 00:00:00 2001
From: Kazu Hirata <kazu at google.com>
Date: Sun, 29 Sep 2024 08:59:32 -0700
Subject: [PATCH] [MachineLICM] Avoid repeated hash lookups (NFC)
---
llvm/lib/CodeGen/MachineLICM.cpp | 22 +++++++++-------------
1 file changed, 9 insertions(+), 13 deletions(-)
diff --git a/llvm/lib/CodeGen/MachineLICM.cpp b/llvm/lib/CodeGen/MachineLICM.cpp
index 3289a692221ba6..793ad75759ccb8 100644
--- a/llvm/lib/CodeGen/MachineLICM.cpp
+++ b/llvm/lib/CodeGen/MachineLICM.cpp
@@ -148,13 +148,13 @@ namespace {
DenseMap<MachineLoop *, SmallVector<MachineBasicBlock *, 8>> ExitBlockMap;
bool isExitBlock(MachineLoop *CurLoop, const MachineBasicBlock *MBB) {
- if (ExitBlockMap.contains(CurLoop))
- return is_contained(ExitBlockMap[CurLoop], MBB);
-
- SmallVector<MachineBasicBlock *, 8> ExitBlocks;
- CurLoop->getExitBlocks(ExitBlocks);
- ExitBlockMap[CurLoop] = ExitBlocks;
- return is_contained(ExitBlocks, MBB);
+ auto [It, Inserted] = ExitBlockMap.try_emplace(CurLoop);
+ if (Inserted) {
+ SmallVector<MachineBasicBlock *, 8> ExitBlocks;
+ CurLoop->getExitBlocks(ExitBlocks);
+ It->second = ExitBlocks;
+ }
+ return is_contained(It->second, MBB);
}
// Track 'estimated' register pressure.
@@ -1010,12 +1010,8 @@ MachineLICMImpl::calcRegisterCost(const MachineInstr *MI, bool ConsiderSeen,
if (RCCost == 0)
continue;
const int *PS = TRI->getRegClassPressureSets(RC);
- for (; *PS != -1; ++PS) {
- if (!Cost.contains(*PS))
- Cost[*PS] = RCCost;
- else
- Cost[*PS] += RCCost;
- }
+ for (; *PS != -1; ++PS)
+ Cost[*PS] += RCCost;
}
return Cost;
}
More information about the llvm-commits
mailing list