From 2d31c71ed41b6137530b777318f7a6b70185acec Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Mon, 3 Mar 2025 07:41:02 -0800 Subject: [PATCH 1/2] [IPO] Avoid repeated hash lookups (NFC) --- llvm/include/llvm/Transforms/IPO/ProfiledCallGraph.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/llvm/include/llvm/Transforms/IPO/ProfiledCallGraph.h b/llvm/include/llvm/Transforms/IPO/ProfiledCallGraph.h index 9ee92c38ffa23..b5725cf32f463 100644 --- a/llvm/include/llvm/Transforms/IPO/ProfiledCallGraph.h +++ b/llvm/include/llvm/Transforms/IPO/ProfiledCallGraph.h @@ -150,13 +150,13 @@ class ProfiledCallGraph { private: void addProfiledCall(FunctionId CallerName, FunctionId CalleeName, uint64_t Weight = 0) { - assert(ProfiledFunctions.count(CallerName)); + auto CallerIt = ProfiledFunctions.find(CallerName); + assert(CallerIt != ProfiledFunctions.end()); auto CalleeIt = ProfiledFunctions.find(CalleeName); if (CalleeIt == ProfiledFunctions.end()) return; - ProfiledCallGraphEdge Edge(ProfiledFunctions[CallerName], - CalleeIt->second, Weight); - auto &Edges = ProfiledFunctions[CallerName]->Edges; + ProfiledCallGraphEdge Edge(CallerIt->second, CalleeIt->second, Weight); + auto &Edges = CallerIt->second->Edges; auto [EdgeIt, Inserted] = Edges.insert(Edge); if (!Inserted) { // Accumulate weight to the existing edge. From d5bfb2547da655f39633cbabf6added0a1e65111 Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Tue, 4 Mar 2025 01:20:59 -0800 Subject: [PATCH 2/2] Address a comment. --- llvm/include/llvm/Transforms/IPO/ProfiledCallGraph.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/llvm/include/llvm/Transforms/IPO/ProfiledCallGraph.h b/llvm/include/llvm/Transforms/IPO/ProfiledCallGraph.h index b5725cf32f463..fc18c596d9462 100644 --- a/llvm/include/llvm/Transforms/IPO/ProfiledCallGraph.h +++ b/llvm/include/llvm/Transforms/IPO/ProfiledCallGraph.h @@ -150,11 +150,11 @@ class ProfiledCallGraph { private: void addProfiledCall(FunctionId CallerName, FunctionId CalleeName, uint64_t Weight = 0) { - auto CallerIt = ProfiledFunctions.find(CallerName); - assert(CallerIt != ProfiledFunctions.end()); auto CalleeIt = ProfiledFunctions.find(CalleeName); if (CalleeIt == ProfiledFunctions.end()) return; + auto CallerIt = ProfiledFunctions.find(CallerName); + assert(CallerIt != ProfiledFunctions.end()); ProfiledCallGraphEdge Edge(CallerIt->second, CalleeIt->second, Weight); auto &Edges = CallerIt->second->Edges; auto [EdgeIt, Inserted] = Edges.insert(Edge);