Revert "[SimplifyLibCalls] Erase replaced instructions"
This reverts commit 2a77544ad5911a38f81c0300385033fced1cc66d. This
introduces a use-after-free in Transforms/InstCombine/sincospi.ll.
Found by asan.
diff --git a/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp b/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
index 10eb121..77fe6c1 100644
--- a/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
+++ b/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
@@ -832,7 +832,6 @@
B.CreateICmp(Old->getPredicate(), StrNCmp,
ConstantInt::getNullValue(StrNCmp->getType()), "cmp");
replaceAllUsesWith(Old, Cmp);
- eraseFromParent(Old);
}
return CI;
}
@@ -2171,10 +2170,8 @@
auto replaceTrigInsts = [this](SmallVectorImpl<CallInst *> &Calls,
Value *Res) {
- for (CallInst *C : Calls) {
+ for (CallInst *C : Calls)
replaceAllUsesWith(C, Res);
- eraseFromParent(C);
- }
};
replaceTrigInsts(SinCalls, Sin);