[llvm] 546d03c - [Hexagon] Avoid repeated hash lookups (NFC) (#125459)

via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 3 12:28:34 PST 2025


Author: Kazu Hirata
Date: 2025-02-03T12:28:31-08:00
New Revision: 546d03cf8bde18e7713ec3f0c5bf307129ecf692

URL: https://github.com/llvm/llvm-project/commit/546d03cf8bde18e7713ec3f0c5bf307129ecf692
DIFF: https://github.com/llvm/llvm-project/commit/546d03cf8bde18e7713ec3f0c5bf307129ecf692.diff

LOG: [Hexagon] Avoid repeated hash lookups (NFC) (#125459)

Added: 
    

Modified: 
    llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp b/llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp
index d2ae2ef7bd7ff3..41803e66a0f8e0 100644
--- a/llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp
+++ b/llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp
@@ -1388,14 +1388,12 @@ bool PolynomialMultiplyRecognize::convertShiftsToLeft(BasicBlock *LoopB,
 
   CastMapType CastMap;
 
-  auto upcast = [] (CastMapType &CM, IRBuilder<> &IRB, Value *V,
-        IntegerType *Ty) -> Value* {
-    auto H = CM.find(std::make_pair(V, Ty));
-    if (H != CM.end())
-      return H->second;
-    Value *CV = IRB.CreateIntCast(V, Ty, false);
-    CM.insert(std::make_pair(std::make_pair(V, Ty), CV));
-    return CV;
+  auto upcast = [](CastMapType &CM, IRBuilder<> &IRB, Value *V,
+                   IntegerType *Ty) -> Value * {
+    auto [H, Inserted] = CM.try_emplace(std::make_pair(V, Ty));
+    if (Inserted)
+      H->second = IRB.CreateIntCast(V, Ty, false);
+    return H->second;
   };
 
   for (auto I = LoopB->begin(), E = LoopB->end(); I != E; ++I) {


        


More information about the llvm-commits mailing list