mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-02-10 11:23:52 +00:00
Set Dependences::RED to be non-null once Dependences::calculateDependences()
occurs, even if there is no actual reduction. This ensures correctness with isl operations. llvm-svn: 297981
This commit is contained in:
parent
e959544517
commit
65c4026992
@ -427,6 +427,7 @@ void Dependences::calculateDependences(Scop &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;
|
||||
|
34
polly/test/DependenceInfo/reduction_dependences_not_null.ll
Normal file
34
polly/test/DependenceInfo/reduction_dependences_not_null.ll
Normal file
@ -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: { }
|
Loading…
x
Reference in New Issue
Block a user