[PATCH] D19002: [LazyValueInfo] Fix for a nasty compile-time problem with questions

Philip Reames via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 26 17:53:31 PDT 2016


reames added a comment.

I'm 99% sure this patch is no longer needed after "267642: [LVI] Reduce compile time by lazily scanning blocks if needed.".  Can you test and confirm?


================
Comment at: lib/Analysis/LazyValueInfo.cpp:65
@@ +64,3 @@
+/// constantrange applies only to integers. constant/notconstant applies to
+/// non-integers, too.
+
----------------
I landed a change which clarifies this.  Please rebase.

================
Comment at: lib/Analysis/LazyValueInfo.cpp:246
@@ -241,2 +245,3 @@
     if (isNotConstant()) {
       if (RHS.isConstant()) {
+        // A value is different on two paths -> mark as bottom (overdefined)
----------------
I re-read my previous comment and realized I was wrong.  This code path is in the conservative meet (i.e. merge two paths at a phi).  Conflicting facts here merely imply we can't reason precisely about the values flowing through the merge.  It does not imply unreachable code.  Sorry for the confusion.  


http://reviews.llvm.org/D19002





More information about the llvm-commits mailing list