Blame 0001-Revert-SCEV-add-no-wrap-flag-for-SCEVAddExpr.patch

dde61f5
From 58e8c793d0e43150a6452e971a32d7407a8a7401 Mon Sep 17 00:00:00 2001
dde61f5
From: Tim Northover <tnorthover@apple.com>
dde61f5
Date: Mon, 30 Sep 2019 07:46:52 +0000
dde61f5
Subject: [PATCH] Revert "[SCEV] add no wrap flag for SCEVAddExpr."
dde61f5
dde61f5
This reverts r366419 because the analysis performed is within the context of
dde61f5
the loop and it's only valid to add wrapping flags to "global" expressions if
dde61f5
they're always correct.
dde61f5
dde61f5
llvm-svn: 373184
dde61f5
---
dde61f5
 llvm/lib/Analysis/ScalarEvolution.cpp              | 2 +-
dde61f5
 llvm/test/Analysis/ScalarEvolution/limit-depth.ll  | 2 +-
dde61f5
 llvm/test/Analysis/ScalarEvolution/nsw.ll          | 2 +-
dde61f5
 llvm/test/Analysis/ScalarEvolution/trip-count12.ll | 2 +-
dde61f5
 llvm/test/Analysis/ScalarEvolution/trip-count9.ll  | 8 ++++----
dde61f5
 5 files changed, 8 insertions(+), 8 deletions(-)
dde61f5
dde61f5
diff --git a/llvm/lib/Analysis/ScalarEvolution.cpp b/llvm/lib/Analysis/ScalarEvolution.cpp
dde61f5
index 354ae05bb841..c29fc5dbccfb 100644
dde61f5
--- a/llvm/lib/Analysis/ScalarEvolution.cpp
dde61f5
+++ b/llvm/lib/Analysis/ScalarEvolution.cpp
dde61f5
@@ -4992,7 +4992,7 @@ const SCEV *ScalarEvolution::createSimpleAffineAddRec(PHINode *PN,
dde61f5
   // overflow.
dde61f5
   if (auto *BEInst = dyn_cast<Instruction>(BEValueV))
dde61f5
     if (isLoopInvariant(Accum, L) && isAddRecNeverPoison(BEInst, L))
dde61f5
-      (void)getAddRecExpr(getAddExpr(StartVal, Accum, Flags), Accum, L, Flags);
dde61f5
+      (void)getAddRecExpr(getAddExpr(StartVal, Accum), Accum, L, Flags);
dde61f5
 
dde61f5
   return PHISCEV;
dde61f5
 }
dde61f5
diff --git a/llvm/test/Analysis/ScalarEvolution/limit-depth.ll b/llvm/test/Analysis/ScalarEvolution/limit-depth.ll
dde61f5
index db68a4f84c91..6fdf8c5df974 100644
dde61f5
--- a/llvm/test/Analysis/ScalarEvolution/limit-depth.ll
dde61f5
+++ b/llvm/test/Analysis/ScalarEvolution/limit-depth.ll
dde61f5
@@ -46,7 +46,7 @@ define void @test_mul(i32 %a, i32 %b, i32 %c, i32 %d, i32 %e, i32 %f) {
dde61f5
 define void @test_sext(i32 %a, i32 %b, i32 %c, i32 %d, i32 %e, i32 %f) {
dde61f5
 ; CHECK-LABEL: @test_sext
dde61f5
 ; CHECK:        %se2 = sext i64 %iv2.inc to i128
dde61f5
-; CHECK-NEXT:   -->  {(1 + (sext i64 {(sext i32 (1 + %a)<nsw> to i64),+,1}<nsw><%loop> to i128))<nsw>,+,1}<nsw><%loop2>
dde61f5
+; CHECK-NEXT:   -->  {(1 + (sext i64 {(sext i32 (1 + %a) to i64),+,1}<nsw><%loop> to i128))<nsw>,+,1}<nsw><%loop2>
dde61f5
 entry:
dde61f5
   br label %loop
dde61f5
 
dde61f5
diff --git a/llvm/test/Analysis/ScalarEvolution/nsw.ll b/llvm/test/Analysis/ScalarEvolution/nsw.ll
dde61f5
index 69427368625d..ca24f9d4a04b 100644
dde61f5
--- a/llvm/test/Analysis/ScalarEvolution/nsw.ll
dde61f5
+++ b/llvm/test/Analysis/ScalarEvolution/nsw.ll
dde61f5
@@ -163,7 +163,7 @@ bb5:                                              ; preds = %bb2
dde61f5
 declare void @f(i32)
dde61f5
 
dde61f5
 ; CHECK-LABEL: nswnowrap
dde61f5
-; CHECK: --> {(1 + %v)<nsw>,+,1}<nsw><%for.body>{{ U: [^ ]+ S: [^ ]+}}{{ *}}Exits: (2 + %v)
dde61f5
+; CHECK: --> {(1 + %v)<nsw>,+,1}<nsw><%for.body>{{ U: [^ ]+ S: [^ ]+}}{{ *}}Exits: (1 + ((1 + %v)<nsw> smax %v))
dde61f5
 define void @nswnowrap(i32 %v, i32* %buf) {
dde61f5
 entry:
dde61f5
   %add = add nsw i32 %v, 1
dde61f5
diff --git a/llvm/test/Analysis/ScalarEvolution/trip-count12.ll b/llvm/test/Analysis/ScalarEvolution/trip-count12.ll
dde61f5
index 5e7d72d5e4f3..d0086ee2e6ac 100644
dde61f5
--- a/llvm/test/Analysis/ScalarEvolution/trip-count12.ll
dde61f5
+++ b/llvm/test/Analysis/ScalarEvolution/trip-count12.ll
dde61f5
@@ -1,7 +1,7 @@
dde61f5
 ; RUN: opt < %s -analyze -scalar-evolution | FileCheck %s
dde61f5
 
dde61f5
 ; CHECK: Determining loop execution counts for: @test
dde61f5
-; CHECK: Loop %for.body: backedge-taken count is ((-2 + %len)<nsw> /u 2)
dde61f5
+; CHECK: Loop %for.body: backedge-taken count is ((-2 + %len) /u 2)
dde61f5
 ; CHECK: Loop %for.body: max backedge-taken count is 1073741823
dde61f5
 
dde61f5
 define zeroext i16 @test(i16* nocapture %p, i32 %len) nounwind readonly {
dde61f5
diff --git a/llvm/test/Analysis/ScalarEvolution/trip-count9.ll b/llvm/test/Analysis/ScalarEvolution/trip-count9.ll
dde61f5
index c0a1d12fa00e..9a080b34743f 100644
dde61f5
--- a/llvm/test/Analysis/ScalarEvolution/trip-count9.ll
dde61f5
+++ b/llvm/test/Analysis/ScalarEvolution/trip-count9.ll
dde61f5
@@ -179,7 +179,7 @@ exit:
dde61f5
 }
dde61f5
 
dde61f5
 ; CHECK: Determining loop execution counts for: @nsw_startx
dde61f5
-; CHECK: Loop %loop: backedge-taken count is (-1 + (-1 * %x) + ((1 + %x)<nsw> smax %n))
dde61f5
+; CHECK: Loop %loop: backedge-taken count is (-1 + (-1 * %x) + ((1 + %x) smax %n))
dde61f5
 ; CHECK: Loop %loop: max backedge-taken count is -1
dde61f5
 define void @nsw_startx(i4 %n, i4 %x) {
dde61f5
 entry:
dde61f5
@@ -195,7 +195,7 @@ exit:
dde61f5
 }
dde61f5
 
dde61f5
 ; CHECK: Determining loop execution counts for: @nsw_startx_step2
dde61f5
-; CHECK: Loop %loop: backedge-taken count is ((-1 + (-1 * %x) + ((2 + %x)<nsw> smax %n)) /u 2)
dde61f5
+; CHECK: Loop %loop: backedge-taken count is ((-1 + (-1 * %x) + ((2 + %x) smax %n)) /u 2)
dde61f5
 ; CHECK: Loop %loop: max backedge-taken count is 7
dde61f5
 define void @nsw_startx_step2(i4 %n, i4 %x) {
dde61f5
 entry:
dde61f5
@@ -381,7 +381,7 @@ exit:
dde61f5
 }
dde61f5
 
dde61f5
 ; CHECK: Determining loop execution counts for: @even_nsw_startx
dde61f5
-; CHECK: Loop %loop: backedge-taken count is (-1 + (-1 * %x) + ((1 + %x)<nsw> smax (2 * %n)))
dde61f5
+; CHECK: Loop %loop: backedge-taken count is (-1 + (-1 * %x) + ((1 + %x) smax (2 * %n)))
dde61f5
 ; CHECK: Loop %loop: max backedge-taken count is -2
dde61f5
 define void @even_nsw_startx(i4 %n, i4 %x) {
dde61f5
 entry:
dde61f5
@@ -398,7 +398,7 @@ exit:
dde61f5
 }
dde61f5
 
dde61f5
 ; CHECK: Determining loop execution counts for: @even_nsw_startx_step2
dde61f5
-; CHECK: Loop %loop: backedge-taken count is ((-1 + (-1 * %x) + ((2 + %x)<nsw> smax (2 * %n))) /u 2)
dde61f5
+; CHECK: Loop %loop: backedge-taken count is ((-1 + (-1 * %x) + ((2 + %x) smax (2 * %n))) /u 2)
dde61f5
 ; CHECK: Loop %loop: max backedge-taken count is 7
dde61f5
 define void @even_nsw_startx_step2(i4 %n, i4 %x) {
dde61f5
 entry:
dde61f5
-- 
dde61f5
2.24.1
dde61f5