@@ -3183,9 +3183,8 @@ void llvm::patchReplacementInstruction(Instruction *I, Value *Repl) {
31833183 combineMetadataForCSE (ReplInst, I, false );
31843184}
31853185
3186- template <typename RootType, typename ShouldReplaceFn>
3186+ template <typename ShouldReplaceFn>
31873187static unsigned replaceDominatedUsesWith (Value *From, Value *To,
3188- const RootType &Root,
31893188 const ShouldReplaceFn &ShouldReplace) {
31903189 assert (From->getType () == To->getType ());
31913190
@@ -3194,7 +3193,7 @@ static unsigned replaceDominatedUsesWith(Value *From, Value *To,
31943193 auto *II = dyn_cast<IntrinsicInst>(U.getUser ());
31953194 if (II && II->getIntrinsicID () == Intrinsic::fake_use)
31963195 continue ;
3197- if (!ShouldReplace (Root, U))
3196+ if (!ShouldReplace (U))
31983197 continue ;
31993198 LLVM_DEBUG (dbgs () << " Replace dominated use of '" ;
32003199 From->printAsOperand (dbgs ());
@@ -3223,39 +3222,33 @@ unsigned llvm::replaceNonLocalUsesWith(Instruction *From, Value *To) {
32233222unsigned llvm::replaceDominatedUsesWith (Value *From, Value *To,
32243223 DominatorTree &DT,
32253224 const BasicBlockEdge &Root) {
3226- auto Dominates = [&DT](const BasicBlockEdge &Root, const Use &U) {
3227- return DT.dominates (Root, U);
3228- };
3229- return ::replaceDominatedUsesWith (From, To, Root, Dominates);
3225+ auto Dominates = [&](const Use &U) { return DT.dominates (Root, U); };
3226+ return ::replaceDominatedUsesWith (From, To, Dominates);
32303227}
32313228
32323229unsigned llvm::replaceDominatedUsesWith (Value *From, Value *To,
32333230 DominatorTree &DT,
32343231 const BasicBlock *BB) {
3235- auto Dominates = [&DT](const BasicBlock *BB, const Use &U) {
3236- return DT.dominates (BB, U);
3237- };
3238- return ::replaceDominatedUsesWith (From, To, BB, Dominates);
3232+ auto Dominates = [&](const Use &U) { return DT.dominates (BB, U); };
3233+ return ::replaceDominatedUsesWith (From, To, Dominates);
32393234}
32403235
32413236unsigned llvm::replaceDominatedUsesWithIf (
32423237 Value *From, Value *To, DominatorTree &DT, const BasicBlockEdge &Root,
32433238 function_ref<bool (const Use &U, const Value *To)> ShouldReplace) {
3244- auto DominatesAndShouldReplace =
3245- [&DT, &ShouldReplace, To](const BasicBlockEdge &Root, const Use &U) {
3246- return DT.dominates (Root, U) && ShouldReplace (U, To);
3247- };
3248- return ::replaceDominatedUsesWith (From, To, Root, DominatesAndShouldReplace);
3239+ auto DominatesAndShouldReplace = [&](const Use &U) {
3240+ return DT.dominates (Root, U) && ShouldReplace (U, To);
3241+ };
3242+ return ::replaceDominatedUsesWith (From, To, DominatesAndShouldReplace);
32493243}
32503244
32513245unsigned llvm::replaceDominatedUsesWithIf (
32523246 Value *From, Value *To, DominatorTree &DT, const BasicBlock *BB,
32533247 function_ref<bool (const Use &U, const Value *To)> ShouldReplace) {
3254- auto DominatesAndShouldReplace = [&DT, &ShouldReplace,
3255- To](const BasicBlock *BB, const Use &U) {
3248+ auto DominatesAndShouldReplace = [&](const Use &U) {
32563249 return DT.dominates (BB, U) && ShouldReplace (U, To);
32573250 };
3258- return ::replaceDominatedUsesWith (From, To, BB, DominatesAndShouldReplace);
3251+ return ::replaceDominatedUsesWith (From, To, DominatesAndShouldReplace);
32593252}
32603253
32613254bool llvm::callsGCLeafFunction (const CallBase *Call,
0 commit comments