[llvm-branch-commits] [llvm-branch] r310634 - Merging r310481, r310492 and r310510:

Hans Wennborg via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Thu Aug 10 10:33:55 PDT 2017


Author: hans
Date: Thu Aug 10 10:33:55 2017
New Revision: 310634

URL: http://llvm.org/viewvc/llvm-project?rev=310634&view=rev
Log:
Merging r310481, r310492 and r310510:
------------------------------------------------------------------------
r310481 | davide | 2017-08-09 08:13:50 -0700 (Wed, 09 Aug 2017) | 8 lines

[ValueTracking] Honour recursion limit.

The recently improved support for `icmp` in ValueTracking
(r307304) exposes the fact that `isImplied` condition doesn't
really bail out if we hit the recursion limit (and calls
`computeKnownBits` which increases the depth and asserts).

Differential Revision:  https://reviews.llvm.org/D36512
------------------------------------------------------------------------

------------------------------------------------------------------------
r310492 | davide | 2017-08-09 09:06:04 -0700 (Wed, 09 Aug 2017) | 1 line

[ValueTracking] Update tests to unbreak the bots.
------------------------------------------------------------------------

------------------------------------------------------------------------
r310510 | spatel | 2017-08-09 11:56:26 -0700 (Wed, 09 Aug 2017) | 6 lines

[SimplifyCFG] remove checks for crasher test from r310481

Not sure why the earlier version would fail, but trying to get the bots
(and my local machine) to pass again.


------------------------------------------------------------------------

Added:
    llvm/branches/release_50/test/Transforms/SimplifyCFG/pr34131.ll
      - copied, changed from r310481, llvm/trunk/test/Transforms/SimplifyCFG/pr34131.ll
Modified:
    llvm/branches/release_50/   (props changed)
    llvm/branches/release_50/lib/Analysis/ValueTracking.cpp

Propchange: llvm/branches/release_50/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Aug 10 10:33:55 2017
@@ -1,3 +1,3 @@
 /llvm/branches/Apple/Pertwee:110850,110961
 /llvm/branches/type-system-rewrite:133420-134817
-/llvm/trunk:155241,308483-308484,308503,308808,308813,308847,308891,308906,308950,308963,308978,308986,309113,309302,309321,309323,309325,309330,309343,309353,309355,309422,309481,309483,309495,309555,309561,309594,309651,309744,309758,309849,309928,309930,310071,310190,310240-310242,310250,310253,310267,310534
+/llvm/trunk:155241,308483-308484,308503,308808,308813,308847,308891,308906,308950,308963,308978,308986,309113,309302,309321,309323,309325,309330,309343,309353,309355,309422,309481,309483,309495,309555,309561,309594,309651,309744,309758,309849,309928,309930,310071,310190,310240-310242,310250,310253,310267,310481,310492,310510,310534

Modified: llvm/branches/release_50/lib/Analysis/ValueTracking.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_50/lib/Analysis/ValueTracking.cpp?rev=310634&r1=310633&r2=310634&view=diff
==============================================================================
--- llvm/branches/release_50/lib/Analysis/ValueTracking.cpp (original)
+++ llvm/branches/release_50/lib/Analysis/ValueTracking.cpp Thu Aug 10 10:33:55 2017
@@ -4458,6 +4458,10 @@ Optional<bool> llvm::isImpliedCondition(
                                         unsigned Depth, AssumptionCache *AC,
                                         const Instruction *CxtI,
                                         const DominatorTree *DT) {
+  // Bail out when we hit the limit.
+  if (Depth == MaxDepth)
+    return None;
+
   // A mismatch occurs when we compare a scalar cmp to a vector cmp, for example.
   if (LHS->getType() != RHS->getType())
     return None;

Copied: llvm/branches/release_50/test/Transforms/SimplifyCFG/pr34131.ll (from r310481, llvm/trunk/test/Transforms/SimplifyCFG/pr34131.ll)
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_50/test/Transforms/SimplifyCFG/pr34131.ll?p2=llvm/branches/release_50/test/Transforms/SimplifyCFG/pr34131.ll&p1=llvm/trunk/test/Transforms/SimplifyCFG/pr34131.ll&r1=310481&r2=310634&rev=310634&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/SimplifyCFG/pr34131.ll (original)
+++ llvm/branches/release_50/test/Transforms/SimplifyCFG/pr34131.ll Thu Aug 10 10:33:55 2017
@@ -1,55 +1,13 @@
-; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
-; RUN: opt -simplifycfg %s -S | FileCheck %s
+; RUN: opt -simplifycfg -S < %s | FileCheck %s
+
+; Just checking for lack of crash here, but we should be able to check the IR?
+; Earlier version using auto-generated checks from utils/update_test_checks.py
+; had bot problems though...
 
 define void @patatino() {
-; CHECK-LABEL: @patatino(
-; CHECK-NEXT:    br label [[BB1:%.*]]
-; CHECK:       bb1:
-; CHECK-NEXT:    br i1 undef, label [[BB4:%.*]], label [[BB9_CRITEDGE:%.*]]
-; CHECK:       bb4:
-; CHECK-NEXT:    [[DOTPR:%.*]] = phi i1 [ undef, [[BB4]] ], [ true, [[BB1]] ]
-; CHECK-NEXT:    br i1 [[DOTPR]], label [[BB4]], label [[BB6:%.*]]
-; CHECK:       bb6:
-; CHECK-NEXT:    [[TMP:%.*]] = or i64 undef, 1
-; CHECK-NEXT:    [[TMP8:%.*]] = icmp ult i64 [[TMP]], 0
-; CHECK-NEXT:    [[OR_COND:%.*]] = and i1 undef, [[TMP8]]
-; CHECK-NEXT:    [[TMP13:%.*]] = icmp ult i64 0, 0
-; CHECK-NEXT:    [[OR_COND2:%.*]] = and i1 [[OR_COND]], [[TMP13]]
-; CHECK-NEXT:    [[TMP15:%.*]] = icmp ult i64 undef, 0
-; CHECK-NEXT:    [[OR_COND3:%.*]] = and i1 [[OR_COND2]], [[TMP15]]
-; CHECK-NEXT:    [[TMP19:%.*]] = or i64 undef, 5
-; CHECK-NEXT:    [[TMP20:%.*]] = icmp ult i64 [[TMP19]], 0
-; CHECK-NEXT:    [[OR_COND4:%.*]] = and i1 [[OR_COND3]], [[TMP20]]
-; CHECK-NEXT:    [[TMP22:%.*]] = or i64 undef, 6
-; CHECK-NEXT:    [[TMP23:%.*]] = icmp ult i64 [[TMP22]], 0
-; CHECK-NEXT:    [[OR_COND5:%.*]] = and i1 [[OR_COND4]], [[TMP23]]
-; CHECK-NEXT:    [[TMP25:%.*]] = or i64 undef, 7
-; CHECK-NEXT:    [[TMP26:%.*]] = icmp ult i64 [[TMP25]], 0
-; CHECK-NEXT:    [[OR_COND6:%.*]] = and i1 [[OR_COND5]], [[TMP26]]
-; CHECK-NEXT:    [[TMP28:%.*]] = or i64 undef, 8
-; CHECK-NEXT:    [[TMP29:%.*]] = icmp ult i64 [[TMP28]], 0
-; CHECK-NEXT:    [[OR_COND7:%.*]] = and i1 [[OR_COND6]], [[TMP29]]
-; CHECK-NEXT:    [[OR_COND7_NOT:%.*]] = xor i1 [[OR_COND7]], true
-; CHECK-NEXT:    [[DOTNOT:%.*]] = xor i1 undef, true
-; CHECK-NEXT:    [[BRMERGE:%.*]] = or i1 [[OR_COND7_NOT]], [[DOTNOT]]
-; CHECK-NEXT:    [[DOTNOT8:%.*]] = xor i1 undef, true
-; CHECK-NEXT:    [[BRMERGE9:%.*]] = or i1 [[BRMERGE]], [[DOTNOT8]]
-; CHECK-NEXT:    [[DOTNOT10:%.*]] = xor i1 undef, true
-; CHECK-NEXT:    [[BRMERGE11:%.*]] = or i1 [[BRMERGE9]], [[DOTNOT10]]
-; CHECK-NEXT:    [[DOTNOT12:%.*]] = xor i1 undef, true
-; CHECK-NEXT:    [[BRMERGE13:%.*]] = or i1 [[BRMERGE11]], [[DOTNOT12]]
-; CHECK-NEXT:    [[DOTNOT14:%.*]] = xor i1 undef, true
-; CHECK-NEXT:    [[BRMERGE15:%.*]] = or i1 [[BRMERGE13]], [[DOTNOT14]]
-; CHECK-NEXT:    [[DOTNOT16:%.*]] = xor i1 undef, true
-; CHECK-NEXT:    [[BRMERGE17:%.*]] = or i1 [[BRMERGE15]], [[DOTNOT16]]
-; CHECK-NEXT:    [[DOTNOT18:%.*]] = xor i1 undef, true
-; CHECK-NEXT:    [[BRMERGE19:%.*]] = or i1 [[BRMERGE17]], [[DOTNOT18]]
-; CHECK-NEXT:    br i1 [[BRMERGE19]], label [[BB11:%.*]], label [[BB1]]
-; CHECK:       bb9.critedge:
-; CHECK-NEXT:    br label [[BB11]]
-; CHECK:       bb11:
-; CHECK-NEXT:    ret void
-;
+
+; CHECK-LABEL: @patatino
+
   br label %bb1
 bb1:                                              ; preds = %bb36, %0
   br label %bb2




More information about the llvm-branch-commits mailing list