[polly] r267552 - [FIX] Adjust assumption space for zext instructions

Johannes Doerfert via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 26 05:44:02 PDT 2016


Author: jdoerfert
Date: Tue Apr 26 07:44:01 2016
New Revision: 267552

URL: http://llvm.org/viewvc/llvm-project?rev=267552&view=rev
Log:
[FIX] Adjust assumption space for zext instructions

Added:
    polly/trunk/test/ScopInfo/zero_ext_space_mismatch.ll
Modified:
    polly/trunk/lib/Support/SCEVAffinator.cpp
    polly/trunk/test/ScopInfo/multidim_only_ivs_3d_cast.ll

Modified: polly/trunk/lib/Support/SCEVAffinator.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Support/SCEVAffinator.cpp?rev=267552&r1=267551&r2=267552&view=diff
==============================================================================
--- polly/trunk/lib/Support/SCEVAffinator.cpp (original)
+++ polly/trunk/lib/Support/SCEVAffinator.cpp Tue Apr 26 07:44:01 2016
@@ -338,8 +338,9 @@ SCEVAffinator::visitZeroExtendExpr(const
     auto *NegDom = isl_pw_aff_pos_set(NegOpPWA);
     auto *ExprDomain = BB ? S->getDomainConditions(BB) : nullptr;
     NegDom = ExprDomain ? isl_set_intersect(NegDom, ExprDomain) : NegDom;
-    auto DL = BB ? BB->getTerminator()->getDebugLoc() : DebugLoc();
     OpPWAC.second = isl_set_union(OpPWAC.second, isl_set_copy(NegDom));
+    NegDom = BB ? NegDom : isl_set_params(NegDom);
+    auto DL = BB ? BB->getTerminator()->getDebugLoc() : DebugLoc();
     S->recordAssumption(UNSIGNED, NegDom, DL, AS_RESTRICTION, BB);
     return OpPWAC;
   }

Modified: polly/trunk/test/ScopInfo/multidim_only_ivs_3d_cast.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/multidim_only_ivs_3d_cast.ll?rev=267552&r1=267551&r2=267552&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/multidim_only_ivs_3d_cast.ll (original)
+++ polly/trunk/test/ScopInfo/multidim_only_ivs_3d_cast.ll Tue Apr 26 07:44:01 2016
@@ -11,7 +11,7 @@
 ; CHECK:      Assumed Context:
 ; CHECK-NEXT: [o, m, n] -> {  :  }
 ; CHECK-NEXT: Invalid Context:
-; CHECK-NEXT: [o, m, n] -> { : o < 0 or (o >= 0 and m < 0) or (o >= 0 and m >= 0 and n <= 0) or (m = 0 and o >= 0 and n > 0) or (o = 0 and m > 0 and n > 0) }
+; CHECK-NEXT: [o, m, n] -> { : o < 0 or m < 0 or (o >= 0 and m >= 0 and n <= 0) or (m = 0 and o >= 0 and n > 0) or (o = 0 and m > 0 and n > 0) }
 
 ;
 ; CHECK:      p0: %o

Added: polly/trunk/test/ScopInfo/zero_ext_space_mismatch.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/zero_ext_space_mismatch.ll?rev=267552&view=auto
==============================================================================
--- polly/trunk/test/ScopInfo/zero_ext_space_mismatch.ll (added)
+++ polly/trunk/test/ScopInfo/zero_ext_space_mismatch.ll Tue Apr 26 07:44:01 2016
@@ -0,0 +1,30 @@
+; RUN: opt %loadPolly -polly-scops -analyze < %s | FileCheck %s
+;
+; CHECK:         Assumed Context:
+; CHECK-NEXT:    [dim] -> {  : dim > 0 }
+; CHECK-NEXT:    Invalid Context:
+; CHECK-NEXT:    [dim] -> {  : dim < 0 }
+;
+target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
+
+; Function Attrs: nounwind uwtable
+define void @horner_bezier_curve(float* %cp, i32 %dim) #0 {
+entry:
+  br label %for.body18.lr.ph
+
+for.body18.lr.ph:                                 ; preds = %entry
+  %add.ptr = getelementptr inbounds float, float* %cp, i64 0
+  br label %for.body18
+
+for.body18:                                       ; preds = %for.body18, %for.body18.lr.ph
+  %cp.addr.052 = phi float* [ %add.ptr, %for.body18.lr.ph ], [ %add.ptr43, %for.body18 ]
+  %arrayidx31 = getelementptr inbounds float, float* %cp.addr.052, i64 0
+  %0 = load float, float* %arrayidx31, align 4
+  store float %0, float* %arrayidx31, align 4
+  %idx.ext42 = zext i32 %dim to i64
+  %add.ptr43 = getelementptr inbounds float, float* %cp.addr.052, i64 %idx.ext42
+  br i1 false, label %for.body18, label %if.end
+
+if.end:                                           ; preds = %for.body18
+  ret void
+}




More information about the llvm-commits mailing list