check.
Also hoist this into the enqueue process as it is faster even than
testing the worklist set, we should just directly filter these out much
like we filter out constants and such.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229056
91177308-0d34-0410-b5e6-
96231b3b80d8
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.
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);