diff --git a/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp b/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp index 77fe6c1cb12a78..10eb1212a59159 100644 --- a/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp +++ b/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp @@ -832,6 +832,7 @@ Value *LibCallSimplifier::optimizeStrStr(CallInst *CI, IRBuilderBase &B) { B.CreateICmp(Old->getPredicate(), StrNCmp, ConstantInt::getNullValue(StrNCmp->getType()), "cmp"); replaceAllUsesWith(Old, Cmp); + eraseFromParent(Old); } return CI; } @@ -2170,8 +2171,10 @@ Value *LibCallSimplifier::optimizeSinCosPi(CallInst *CI, IRBuilderBase &B) { auto replaceTrigInsts = [this](SmallVectorImpl &Calls, Value *Res) { - for (CallInst *C : Calls) + for (CallInst *C : Calls) { replaceAllUsesWith(C, Res); + eraseFromParent(C); + } }; replaceTrigInsts(SinCalls, Sin);