diff options
| author | Kazu Hirata <kazu@google.com> | 2024-09-30 06:49:04 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-30 06:49:04 -0700 |
| commit | db9e1fb3bcc8ab950cd9b0282a29be7943ce185e (patch) | |
| tree | 00d757295c856ad0674d1ce1191dc9211c20a0fa /llvm/lib/CodeGen/MachineLICM.cpp | |
| parent | 47b22301da4413abbf94bb2adf61e65e33fe9edb (diff) | |
[MachineLICM] Avoid repeated hash lookups (NFC) (#110452)
Diffstat (limited to 'llvm/lib/CodeGen/MachineLICM.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/MachineLICM.cpp | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/llvm/lib/CodeGen/MachineLICM.cpp b/llvm/lib/CodeGen/MachineLICM.cpp index 3289a692221b..793ad75759cc 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; } |
