diff options
author | David Majnemer <david.majnemer@gmail.com> | 2016-06-20 02:33:29 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2016-06-20 02:33:29 +0000 |
commit | a705843f23ce7277fb1cffaa9f55447e91059594 (patch) | |
tree | 8233a4731ff85895ba435f986d319cf6532dfa30 /llvm/lib/Transforms | |
parent | fd92154b20d729d79d70b6854f8949cac2658b44 (diff) | |
download | bcm5719-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.cpp | 3 |
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); } //===----------------------------------------------------------------------===// |