summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Utils/CloneFunction.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Transforms/Utils/CloneFunction.cpp')
-rw-r--r--llvm/lib/Transforms/Utils/CloneFunction.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/llvm/lib/Transforms/Utils/CloneFunction.cpp b/llvm/lib/Transforms/Utils/CloneFunction.cpp
index 314c990293c..b61017f37ca 100644
--- a/llvm/lib/Transforms/Utils/CloneFunction.cpp
+++ b/llvm/lib/Transforms/Utils/CloneFunction.cpp
@@ -325,10 +325,11 @@ void PruningFunctionCloner::CloneBlock(const BasicBlock *BB,
// the basic block.
if (Value *V =
SimplifyInstruction(NewInst, BB->getModule()->getDataLayout())) {
- // On the off-chance that this simplifies to an instruction in the old
- // function, map it back into the new function.
- if (Value *MappedV = VMap.lookup(V))
- V = MappedV;
+ assert((!isa<Instruction>(V) ||
+ cast<Instruction>(V)->getParent() == nullptr ||
+ cast<Instruction>(V)->getFunction() != OldFunc ||
+ OldFunc == NewFunc) &&
+ "Simplified Instruction should not be in the old function.");
if (!NewInst->mayHaveSideEffects()) {
VMap[&*II] = V;
OpenPOWER on IntegriCloud