From 8ca1ac398f2b2c7c176d591813ae5409d7629965 Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Fri, 17 Jan 2025 09:26:48 -0800 Subject: [PATCH 1/2] [Analysis] Avoid repeated hash lookups (NFC) --- llvm/lib/Analysis/InlineCost.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/llvm/lib/Analysis/InlineCost.cpp b/llvm/lib/Analysis/InlineCost.cpp index 85287a39f2caa..c77441d5d46bb 100644 --- a/llvm/lib/Analysis/InlineCost.cpp +++ b/llvm/lib/Analysis/InlineCost.cpp @@ -2698,8 +2698,10 @@ void CallAnalyzer::findDeadBlocks(BasicBlock *CurrBB, BasicBlock *NextBB) { auto IsEdgeDead = [&](BasicBlock *Pred, BasicBlock *Succ) { // A CFG edge is dead if the predecessor is dead or the predecessor has a // known successor which is not the one under exam. - return (DeadBlocks.count(Pred) || - (KnownSuccessors[Pred] && KnownSuccessors[Pred] != Succ)); + if (DeadBlocks.count(Pred)) + return true; + auto *KnownSucc = KnownSuccessors[Pred]; + return KnownSucc && KnownSucc != Succ; }; auto IsNewlyDead = [&](BasicBlock *BB) { From b0fa3b24538ee1fe9aea2827a24f9b1923f04d0a Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Sat, 18 Jan 2025 09:43:48 -0800 Subject: [PATCH 2/2] Update llvm/lib/Analysis/InlineCost.cpp Co-authored-by: Nikita Popov --- llvm/lib/Analysis/InlineCost.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llvm/lib/Analysis/InlineCost.cpp b/llvm/lib/Analysis/InlineCost.cpp index c77441d5d46bb..8fa150f7d690e 100644 --- a/llvm/lib/Analysis/InlineCost.cpp +++ b/llvm/lib/Analysis/InlineCost.cpp @@ -2700,7 +2700,7 @@ void CallAnalyzer::findDeadBlocks(BasicBlock *CurrBB, BasicBlock *NextBB) { // known successor which is not the one under exam. if (DeadBlocks.count(Pred)) return true; - auto *KnownSucc = KnownSuccessors[Pred]; + BasicBlock *KnownSucc = KnownSuccessors[Pred]; return KnownSucc && KnownSucc != Succ; };