[llvm] [CodeExtractor] Optimize PHI incoming value removal using reverse iteration (NFC) (PR #171956)
via llvm-commits
llvm-commits at lists.llvm.org
Sun Dec 14 19:18:50 PST 2025
https://github.com/int-zjt updated https://github.com/llvm/llvm-project/pull/171956
>From 50d833af1f4d4b75d3da9cd8b9a089532a9f9b49 Mon Sep 17 00:00:00 2001
From: int-zjt <zhangjiatong.0 at bytedance.com>
Date: Wed, 10 Dec 2025 17:05:31 +0800
Subject: [PATCH 1/2] [CodeExtractor] Optimize PHI incoming value removal using
reverse iteration
---
llvm/lib/Transforms/Utils/CodeExtractor.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/lib/Transforms/Utils/CodeExtractor.cpp b/llvm/lib/Transforms/Utils/CodeExtractor.cpp
index 0ca1fa2425a53..caf3309cb4c92 100644
--- a/llvm/lib/Transforms/Utils/CodeExtractor.cpp
+++ b/llvm/lib/Transforms/Utils/CodeExtractor.cpp
@@ -749,7 +749,7 @@ void CodeExtractor::severSplitPHINodesOfEntry(BasicBlock *&Header) {
// Loop over all of the incoming value in PN, moving them to NewPN if they
// are from the extracted region.
- for (unsigned i = 0; i != PN->getNumIncomingValues(); ++i) {
+ for (int i = PN->getNumIncomingValues() - 1; i >= 0; --i) {
if (Blocks.count(PN->getIncomingBlock(i))) {
NewPN->addIncoming(PN->getIncomingValue(i), PN->getIncomingBlock(i));
PN->removeIncomingValue(i);
>From 2b1ae1e07fd4c0a39503e5847f0d3cbdd048fc54 Mon Sep 17 00:00:00 2001
From: int-zjt <zhangjiatong.0 at bytedance.com>
Date: Mon, 15 Dec 2025 11:18:26 +0800
Subject: [PATCH 2/2] Fix wrong index
---
llvm/lib/Transforms/Utils/CodeExtractor.cpp | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/llvm/lib/Transforms/Utils/CodeExtractor.cpp b/llvm/lib/Transforms/Utils/CodeExtractor.cpp
index caf3309cb4c92..885c419474cb6 100644
--- a/llvm/lib/Transforms/Utils/CodeExtractor.cpp
+++ b/llvm/lib/Transforms/Utils/CodeExtractor.cpp
@@ -749,11 +749,10 @@ void CodeExtractor::severSplitPHINodesOfEntry(BasicBlock *&Header) {
// Loop over all of the incoming value in PN, moving them to NewPN if they
// are from the extracted region.
- for (int i = PN->getNumIncomingValues() - 1; i >= 0; --i) {
+ for (int64_t i = PN->getNumIncomingValues() - 1; i >= 0; --i) {
if (Blocks.count(PN->getIncomingBlock(i))) {
NewPN->addIncoming(PN->getIncomingValue(i), PN->getIncomingBlock(i));
PN->removeIncomingValue(i);
- --i;
}
}
}
More information about the llvm-commits
mailing list