aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/Local.cpp
diff options
context:
space:
mode:
authorNikita Popov <npopov@redhat.com>2025-08-04 12:58:13 +0200
committerNikita Popov <npopov@redhat.com>2025-08-04 14:22:17 +0200
commite833bb0991dd20655dae1c3812bd84f0fb36ea25 (patch)
treea1160c2954778fea0b4e5bf01f4a8f1c166a0630 /llvm/lib/Transforms/Utils/Local.cpp
parented5bd23867eacaa3789060f9250ba6fcece2a3de (diff)
downloadllvm-e833bb0991dd20655dae1c3812bd84f0fb36ea25.zip
llvm-e833bb0991dd20655dae1c3812bd84f0fb36ea25.tar.gz
llvm-e833bb0991dd20655dae1c3812bd84f0fb36ea25.tar.bz2
[Local] Do not pass Root to replaceDominatedUsesWith (NFC)
Capture it in the lambdas instead.
Diffstat (limited to 'llvm/lib/Transforms/Utils/Local.cpp')
-rw-r--r--llvm/lib/Transforms/Utils/Local.cpp31
1 files changed, 12 insertions, 19 deletions
diff --git a/llvm/lib/Transforms/Utils/Local.cpp b/llvm/lib/Transforms/Utils/Local.cpp
index 3852f1a..2619e73 100644
--- a/llvm/lib/Transforms/Utils/Local.cpp
+++ b/llvm/lib/Transforms/Utils/Local.cpp
@@ -3183,9 +3183,8 @@ void llvm::patchReplacementInstruction(Instruction *I, Value *Repl) {
combineMetadataForCSE(ReplInst, I, false);
}
-template <typename RootType, typename ShouldReplaceFn>
+template <typename ShouldReplaceFn>
static unsigned replaceDominatedUsesWith(Value *From, Value *To,
- const RootType &Root,
const ShouldReplaceFn &ShouldReplace) {
assert(From->getType() == To->getType());
@@ -3194,7 +3193,7 @@ static unsigned replaceDominatedUsesWith(Value *From, Value *To,
auto *II = dyn_cast<IntrinsicInst>(U.getUser());
if (II && II->getIntrinsicID() == Intrinsic::fake_use)
continue;
- if (!ShouldReplace(Root, U))
+ if (!ShouldReplace(U))
continue;
LLVM_DEBUG(dbgs() << "Replace dominated use of '";
From->printAsOperand(dbgs());
@@ -3223,39 +3222,33 @@ unsigned llvm::replaceNonLocalUsesWith(Instruction *From, Value *To) {
unsigned llvm::replaceDominatedUsesWith(Value *From, Value *To,
DominatorTree &DT,
const BasicBlockEdge &Root) {
- auto Dominates = [&DT](const BasicBlockEdge &Root, const Use &U) {
- return DT.dominates(Root, U);
- };
- return ::replaceDominatedUsesWith(From, To, Root, Dominates);
+ auto Dominates = [&](const Use &U) { return DT.dominates(Root, U); };
+ return ::replaceDominatedUsesWith(From, To, Dominates);
}
unsigned llvm::replaceDominatedUsesWith(Value *From, Value *To,
DominatorTree &DT,
const BasicBlock *BB) {
- auto Dominates = [&DT](const BasicBlock *BB, const Use &U) {
- return DT.dominates(BB, U);
- };
- return ::replaceDominatedUsesWith(From, To, BB, Dominates);
+ auto Dominates = [&](const Use &U) { return DT.dominates(BB, U); };
+ return ::replaceDominatedUsesWith(From, To, Dominates);
}
unsigned llvm::replaceDominatedUsesWithIf(
Value *From, Value *To, DominatorTree &DT, const BasicBlockEdge &Root,
function_ref<bool(const Use &U, const Value *To)> ShouldReplace) {
- auto DominatesAndShouldReplace =
- [&DT, &ShouldReplace, To](const BasicBlockEdge &Root, const Use &U) {
- return DT.dominates(Root, U) && ShouldReplace(U, To);
- };
- return ::replaceDominatedUsesWith(From, To, Root, DominatesAndShouldReplace);
+ auto DominatesAndShouldReplace = [&](const Use &U) {
+ return DT.dominates(Root, U) && ShouldReplace(U, To);
+ };
+ return ::replaceDominatedUsesWith(From, To, DominatesAndShouldReplace);
}
unsigned llvm::replaceDominatedUsesWithIf(
Value *From, Value *To, DominatorTree &DT, const BasicBlock *BB,
function_ref<bool(const Use &U, const Value *To)> ShouldReplace) {
- auto DominatesAndShouldReplace = [&DT, &ShouldReplace,
- To](const BasicBlock *BB, const Use &U) {
+ auto DominatesAndShouldReplace = [&](const Use &U) {
return DT.dominates(BB, U) && ShouldReplace(U, To);
};
- return ::replaceDominatedUsesWith(From, To, BB, DominatesAndShouldReplace);
+ return ::replaceDominatedUsesWith(From, To, DominatesAndShouldReplace);
}
bool llvm::callsGCLeafFunction(const CallBase *Call,