summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2016-06-20 02:33:29 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2016-06-20 02:33:29 +0000
commita705843f23ce7277fb1cffaa9f55447e91059594 (patch)
tree8233a4731ff85895ba435f986d319cf6532dfa30 /llvm/lib/Transforms
parentfd92154b20d729d79d70b6854f8949cac2658b44 (diff)
downloadbcm5719-llvm-a705843f23ce7277fb1cffaa9f55447e91059594.tar.gz
bcm5719-llvm-a705843f23ce7277fb1cffaa9f55447e91059594.zip
[LoopIdiom] Don't remove dead operands manually
Removing dead instructions requires remembering which operands have already been removed. RecursivelyDeleteTriviallyDeadInstructions has this logic, don't partially reimplement it in LoopIdiomRecognize. This fixes PR28196. llvm-svn: 273132
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r--llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp3
1 files changed, 1 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp b/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
index f923673484f..6c0ae31309a 100644
--- a/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
@@ -159,8 +159,7 @@ static void deleteDeadInstruction(Instruction *I,
SmallVector<Value *, 16> Operands(I->value_op_begin(), I->value_op_end());
I->replaceAllUsesWith(UndefValue::get(I->getType()));
I->eraseFromParent();
- for (Value *Op : Operands)
- RecursivelyDeleteTriviallyDeadInstructions(Op, TLI);
+ RecursivelyDeleteTriviallyDeadInstructions(I, TLI);
}
//===----------------------------------------------------------------------===//
OpenPOWER on IntegriCloud