diff options
Diffstat (limited to 'llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp')
| -rw-r--r-- | llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp b/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp index d1daaa684ad..37851ba87da 100644 --- a/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp +++ b/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp @@ -519,7 +519,8 @@ public: auto EnqueueOperands = [&](Instruction &I) { for (auto *Op : I.operand_values()) if (auto *OpI = dyn_cast<Instruction>(Op)) - Worklist.insert(OpI); + if (!OpI->use_empty()) + Worklist.insert(OpI); }; // Start by initializing worklist with simplified instructions. @@ -541,8 +542,6 @@ public: continue; if (DeadInstructions.count(I)) continue; - if (I->getNumUses() == 0) - continue; bool AllUsersFolded = true; for (User *U : I->users()) { Instruction *UI = dyn_cast<Instruction>(U); |

