[PATCH] D23939: IfConversion: Fix branch predication bug.

David Li via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 26 15:21:36 PDT 2016


davidxl added inline comments.

================
Comment at: lib/CodeGen/IfConversion.cpp:1807
@@ -1807,1 +1806,3 @@
+    DI2++;
+  }
   while (NumDups2 != 0) {
----------------
iteratee wrote:
> davidxl wrote:
> > Why  skipping debug value here? Does that affect the NumDups2 adjustment below?
> > Does that affect the NumDups2 adjustment below?
> No. NumDups2 doesn't count debug values.
> 
> Would it be clearer if it read (DI2->isBranch() || DI2->isDebugValue())?
> 
> The goal is to skip all the branch instructions, because they have been checked to match MBB1 and don't need to predicated.
> This is where the actual crash was occurring. We were attempting to predicate the branch instruction when we didn't need to.
Ok. Can you add some comments?

Can you also add assertion to make sure that the instructions from two blocks are indeed common? 


Repository:
  rL LLVM

https://reviews.llvm.org/D23939





More information about the llvm-commits mailing list