[polly] r297981 - Set Dependences::RED to be non-null once Dependences::calculateDependences()
Siddharth Bhat via llvm-commits
llvm-commits at lists.llvm.org
Thu Mar 16 13:06:49 PDT 2017
Author: bollu
Date: Thu Mar 16 15:06:49 2017
New Revision: 297981
URL: http://llvm.org/viewvc/llvm-project?rev=297981&view=rev
Log:
Set Dependences::RED to be non-null once Dependences::calculateDependences()
occurs, even if there is no actual reduction. This ensures correctness
with isl operations.
Added:
polly/trunk/test/DependenceInfo/reduction_dependences_not_null.ll
Modified:
polly/trunk/lib/Analysis/DependenceInfo.cpp
Modified: polly/trunk/lib/Analysis/DependenceInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Analysis/DependenceInfo.cpp?rev=297981&r1=297980&r2=297981&view=diff
==============================================================================
--- polly/trunk/lib/Analysis/DependenceInfo.cpp (original)
+++ polly/trunk/lib/Analysis/DependenceInfo.cpp Thu Mar 16 15:06:49 2017
@@ -427,6 +427,7 @@ void Dependences::calculateDependences(S
// reduction dependences or dependences that are finer than statement
// level dependences.
if (!HasReductions && Level == AL_Statement) {
+ RED = isl_union_map_empty(isl_union_map_get_space(RAW));
TC_RED = isl_union_map_empty(isl_union_set_get_space(TaggedStmtDomain));
isl_union_set_free(TaggedStmtDomain);
return;
Added: polly/trunk/test/DependenceInfo/reduction_dependences_not_null.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/DependenceInfo/reduction_dependences_not_null.ll?rev=297981&view=auto
==============================================================================
--- polly/trunk/test/DependenceInfo/reduction_dependences_not_null.ll (added)
+++ polly/trunk/test/DependenceInfo/reduction_dependences_not_null.ll Thu Mar 16 15:06:49 2017
@@ -0,0 +1,34 @@
+; Test that the reduction dependences are always initialised, even in a case
+; where we have no reduction. If this object is NULL, then isl operations on
+; it will fail.
+; RUN: opt -S %loadPolly -polly-dependences -analyze < %s | FileCheck %s -check-prefix=VALUE
+target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
+
+; for(i = 0; i < 100; i++ )
+; S1: A[i] = 2;
+
+define void @sequential_writes() {
+entry:
+ %A = alloca [200 x i32]
+ br label %S1
+
+S1:
+ %indvar.1 = phi i64 [ 0, %entry ], [ %indvar.next.1, %S1 ]
+ %arrayidx.1 = getelementptr [200 x i32], [200 x i32]* %A, i64 0, i64 %indvar.1
+ store i32 2, i32* %arrayidx.1
+ %indvar.next.1 = add i64 %indvar.1, 1
+ %exitcond.1 = icmp ne i64 %indvar.next.1, 100
+ br i1 %exitcond.1, label %S1, label %exit.1
+
+exit.1:
+ ret void
+}
+
+; VALUE: RAW dependences:
+; VALUE-NEXT: { }
+; VALUE-NEXT: WAR dependences:
+; VALUE-NEXT: { }
+; VALUE-NEXT: WAW dependences:
+; VALUE-NEXT: { }
+; VALUE-NEXT: Reduction dependences:
+; VALUE-NEXT: { }
More information about the llvm-commits
mailing list