@@ -3183,9 +3183,8 @@ void llvm::patchReplacementInstruction(Instruction *I, Value *Repl) {
3183
3183
combineMetadataForCSE (ReplInst, I, false );
3184
3184
}
3185
3185
3186
- template <typename RootType, typename ShouldReplaceFn>
3186
+ template <typename ShouldReplaceFn>
3187
3187
static unsigned replaceDominatedUsesWith (Value *From, Value *To,
3188
- const RootType &Root,
3189
3188
const ShouldReplaceFn &ShouldReplace) {
3190
3189
assert (From->getType () == To->getType ());
3191
3190
@@ -3194,7 +3193,7 @@ static unsigned replaceDominatedUsesWith(Value *From, Value *To,
3194
3193
auto *II = dyn_cast<IntrinsicInst>(U.getUser ());
3195
3194
if (II && II->getIntrinsicID () == Intrinsic::fake_use)
3196
3195
continue ;
3197
- if (!ShouldReplace (Root, U))
3196
+ if (!ShouldReplace (U))
3198
3197
continue ;
3199
3198
LLVM_DEBUG (dbgs () << " Replace dominated use of '" ;
3200
3199
From->printAsOperand (dbgs ());
@@ -3223,39 +3222,33 @@ unsigned llvm::replaceNonLocalUsesWith(Instruction *From, Value *To) {
3223
3222
unsigned llvm::replaceDominatedUsesWith (Value *From, Value *To,
3224
3223
DominatorTree &DT,
3225
3224
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);
3230
3227
}
3231
3228
3232
3229
unsigned llvm::replaceDominatedUsesWith (Value *From, Value *To,
3233
3230
DominatorTree &DT,
3234
3231
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);
3239
3234
}
3240
3235
3241
3236
unsigned llvm::replaceDominatedUsesWithIf (
3242
3237
Value *From, Value *To, DominatorTree &DT, const BasicBlockEdge &Root,
3243
3238
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);
3249
3243
}
3250
3244
3251
3245
unsigned llvm::replaceDominatedUsesWithIf (
3252
3246
Value *From, Value *To, DominatorTree &DT, const BasicBlock *BB,
3253
3247
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) {
3256
3249
return DT.dominates (BB, U) && ShouldReplace (U, To);
3257
3250
};
3258
- return ::replaceDominatedUsesWith (From, To, BB, DominatesAndShouldReplace);
3251
+ return ::replaceDominatedUsesWith (From, To, DominatesAndShouldReplace);
3259
3252
}
3260
3253
3261
3254
bool llvm::callsGCLeafFunction (const CallBase *Call,
0 commit comments