[PATCH] D25631: [LV] Avoid emitting trivially dead instructions

Gil Rapaport via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 17 06:56:13 PDT 2016

gilr added inline comments.

Comment at: lib/Transforms/Vectorize/LoopVectorize.cpp:4241
+  // induction variables map. An original update instruction will be dead if it
+  // has no non-dead users other than the induction variable.
+  for (auto &Induction : *Legal->getInductionVars()) {
Perhaps replace the double-negation with "... if all its users except the induction variable are dead"?

Comment at: lib/Transforms/Vectorize/LoopVectorize.cpp:4246
+    if (all_of(IndUpdate->users(),
+               [&](User *U) -> bool { return U == Ind || U == Cmp; }))
+      DeadInstructions.insert(IndUpdate);
The "|| U == Cmp" test seems to kill the update whether or not Cmp is dead. Per the above comment I think you meant here "|| DeadInstructions.count(U)", right?


More information about the llvm-commits mailing list