[PATCH] D19646: DivergenceAnalysis: Fix crash with unreachable blocks

Jingyue Wu via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 28 10:45:46 PDT 2016


jingyue added inline comments.

================
Comment at: lib/Analysis/DivergenceAnalysis.cpp:189
@@ +188,3 @@
+    DomTreeNode *InfluenceNode = DT.getNode(InfluencedBB);
+    if (!InfluenceNode)
+      break;
----------------
arsenm wrote:
> jingyue wrote:
> > This seems unnecessary. ThisBB is guaranteed reachable according to the check you added above. InfluenceBB is guaranteed to dominate ThisBB, so it must be reachable too. 
> > 
> > If you agree, maybe change this if to an assert. 
> I hit the first one, and then hit another crash here
Looking at your code more, the first check `PDT.getNode` doesn't really guard against unreachable basic blocks. You may want to use `DT.getNode()` or `DT.isReachableFromEntry` (I prefer the latter because it's more explicit) there. Then, I believe the second check here is unnecessary. 


http://reviews.llvm.org/D19646





More information about the llvm-commits mailing list