diff options
author | Nikita Popov <npopov@redhat.com> | 2025-08-04 12:58:13 +0200 |
---|---|---|
committer | Nikita Popov <npopov@redhat.com> | 2025-08-04 14:22:17 +0200 |
commit | e833bb0991dd20655dae1c3812bd84f0fb36ea25 (patch) | |
tree | a1160c2954778fea0b4e5bf01f4a8f1c166a0630 /llvm/lib/Transforms/Utils/Local.cpp | |
parent | ed5bd23867eacaa3789060f9250ba6fcece2a3de (diff) | |
download | llvm-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.cpp | 31 |
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, |