[llvm] 4590f75 - [Analysis] Avoid repeated hash lookups (NFC) (#126011)

via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 6 16:23:07 PST 2025


Author: Kazu Hirata
Date: 2025-02-06T16:23:04-08:00
New Revision: 4590f755cf585284df68e9e5a4276540a5fbae1e

URL: https://github.com/llvm/llvm-project/commit/4590f755cf585284df68e9e5a4276540a5fbae1e
DIFF: https://github.com/llvm/llvm-project/commit/4590f755cf585284df68e9e5a4276540a5fbae1e.diff

LOG: [Analysis] Avoid repeated hash lookups (NFC) (#126011)

Added: 
    

Modified: 
    llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h

Removed: 
    


################################################################################
diff  --git a/llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h b/llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h
index 7a7a9594f47603..9509e5234840fb 100644
--- a/llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h
+++ b/llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h
@@ -1143,14 +1143,15 @@ void BlockFrequencyInfoImpl<BT>::calculate(const FunctionT &F,
 template <class BT>
 void BlockFrequencyInfoImpl<BT>::setBlockFreq(const BlockT *BB,
                                               BlockFrequency Freq) {
-  if (Nodes.count(BB))
-    BlockFrequencyInfoImplBase::setBlockFreq(getNode(BB), Freq);
+  auto [It, Inserted] = Nodes.try_emplace(BB);
+  if (!Inserted)
+    BlockFrequencyInfoImplBase::setBlockFreq(It->second.first, Freq);
   else {
     // If BB is a newly added block after BFI is done, we need to create a new
     // BlockNode for it assigned with a new index. The index can be determined
     // by the size of Freqs.
     BlockNode NewNode(Freqs.size());
-    Nodes[BB] = {NewNode, BFICallbackVH(BB, this)};
+    It->second = {NewNode, BFICallbackVH(BB, this)};
     Freqs.emplace_back();
     BlockFrequencyInfoImplBase::setBlockFreq(NewNode, Freq);
   }


        


More information about the llvm-commits mailing list