[llvm] [Transforms] Avoid repeated hash lookups (NFC) (PR #130890)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Mar 11 21:26:58 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-llvm-transforms
Author: Kazu Hirata (kazutakahirata)
<details>
<summary>Changes</summary>
---
Full diff: https://github.com/llvm/llvm-project/pull/130890.diff
1 Files Affected:
- (modified) llvm/lib/Transforms/Scalar/LoopInterchange.cpp (+18-15)
``````````diff
diff --git a/llvm/lib/Transforms/Scalar/LoopInterchange.cpp b/llvm/lib/Transforms/Scalar/LoopInterchange.cpp
index 967be109a7ba6..61b86d2aecef0 100644
--- a/llvm/lib/Transforms/Scalar/LoopInterchange.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopInterchange.cpp
@@ -1134,21 +1134,24 @@ LoopInterchangeProfitability::isProfitablePerLoopCacheAnalysis(
// This is the new cost model returned from loop cache analysis.
// A smaller index means the loop should be placed an outer loop, and vice
// versa.
- if (CostMap.contains(InnerLoop) && CostMap.contains(OuterLoop)) {
- unsigned InnerIndex = 0, OuterIndex = 0;
- InnerIndex = CostMap.find(InnerLoop)->second;
- OuterIndex = CostMap.find(OuterLoop)->second;
- LLVM_DEBUG(dbgs() << "InnerIndex = " << InnerIndex
- << ", OuterIndex = " << OuterIndex << "\n");
- if (InnerIndex < OuterIndex)
- return std::optional<bool>(true);
- assert(InnerIndex != OuterIndex && "CostMap should assign unique "
- "numbers to each loop");
- if (CC->getLoopCost(*OuterLoop) == CC->getLoopCost(*InnerLoop))
- return std::nullopt;
- return std::optional<bool>(false);
- }
- return std::nullopt;
+ auto InnerLoopIt = CostMap.find(InnerLoop);
+ if (InnerLoopIt == CostMap.end())
+ return std::nullopt;
+ auto OuterLoopIt = CostMap.find(OuterLoop);
+ if (OuterLoopIt == CostMap.end())
+ return std::nullopt;
+
+ unsigned InnerIndex = InnerLoopIt->second;
+ unsigned OuterIndex = OuterLoopIt->second;
+ LLVM_DEBUG(dbgs() << "InnerIndex = " << InnerIndex
+ << ", OuterIndex = " << OuterIndex << "\n");
+ if (InnerIndex < OuterIndex)
+ return std::optional<bool>(true);
+ assert(InnerIndex != OuterIndex && "CostMap should assign unique "
+ "numbers to each loop");
+ if (CC->getLoopCost(*OuterLoop) == CC->getLoopCost(*InnerLoop))
+ return std::nullopt;
+ return std::optional<bool>(false);
}
std::optional<bool>
``````````
</details>
https://github.com/llvm/llvm-project/pull/130890
More information about the llvm-commits
mailing list