[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