[PATCH] D21613: [DSE] Avoid iterator invalidation bugs.

Eli Friedman via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 27 11:24:41 PDT 2016


eli.friedman added inline comments.

================
Comment at: lib/Transforms/Scalar/DeadStoreElimination.cpp:69
@@ -70,1 +68,3 @@
+deleteDeadInstruction(Instruction *I, Instruction *CurrInst,
+                      MemoryDependenceResults &MD, const TargetLibraryInfo &TLI,
                       SmallSetVector<Value *, 16> *ValueSet = nullptr) {
----------------
Maybe it would make sense to pass in a BasicBlock::iterator* and make this function update it, rather than returning a BasicBlock::iterator?

================
Comment at: lib/Transforms/Scalar/DeadStoreElimination.cpp:110
@@ -101,2 +109,3 @@
   } while (!NowDeadInsts.empty());
+    return NewIter;
 }
----------------
Wrong indentation.

================
Comment at: lib/Transforms/Scalar/DeadStoreElimination.cpp:822
@@ -814,3 +821,3 @@
     if (CallInst *F = isFreeCall(Inst, TLI)) {
       MadeChange |= handleFree(F, AA, MD, DT, TLI);
       continue;
----------------
handleFree can invalidate BBI, I think?


http://reviews.llvm.org/D21613





More information about the llvm-commits mailing list