Imported Upstream version 6.10.0.49

Former-commit-id: 1d6753294b2993e1fbf92de9366bb9544db4189b
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2020-01-16 16:38:04 +00:00
parent d94e79959b
commit 468663ddbb
48518 changed files with 2789335 additions and 61176 deletions

View File

@@ -0,0 +1,64 @@
; RUN: not opt %loadPolly -polly-import-jscop -polly-ast -polly-ast-detect-parallel < %s 2>&1 >/dev/null | FileCheck %s
;
; CHECK: The access was not parsed successfully by ISL.
;
; Verify that the JSONImporter checks if the relation is valid.
;
; void ia6(int *A, long n) {
; for (long i = 0; i < 2 * n; i++)
; S0: A[0] += i;
; for (long i = 0; i < 2 * n; i++)
; S1: A[i + 1] = 1;
; }
;
target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-n32-S64"
define void @ia6(i32* %A, i32 %n) {
entry:
br label %for.cond
for.cond: ; preds = %for.inc, %entry
%i.0 = phi i32 [ 0, %entry ], [ %inc, %for.inc ]
%mul = shl nsw i32 %n, 1
%cmp = icmp slt i32 %i.0, %mul
br i1 %cmp, label %for.body, label %for.end
for.body: ; preds = %for.cond
br label %S0
S0: ; preds = %for.body
%tmp = load i32, i32* %A, align 4
%add = add nsw i32 %tmp, %i.0
store i32 %add, i32* %A, align 4
br label %for.inc
for.inc: ; preds = %S0
%inc = add nsw i32 %i.0, 1
br label %for.cond
for.end: ; preds = %for.cond
br label %for.cond2
for.cond2: ; preds = %for.inc8, %for.end
%i1.0 = phi i32 [ 0, %for.end ], [ %inc9, %for.inc8 ]
%mul3 = shl nsw i32 %n, 1
%cmp4 = icmp slt i32 %i1.0, %mul3
br i1 %cmp4, label %for.body5, label %for.end10
for.body5: ; preds = %for.cond2
br label %S1
S1: ; preds = %for.body5
%add6 = add nsw i32 %i1.0, 1
%arrayidx7 = getelementptr inbounds i32, i32* %A, i32 %add6
store i32 1, i32* %arrayidx7, align 4
br label %for.inc8
for.inc8: ; preds = %S1
%inc9 = add nsw i32 %i1.0, 1
br label %for.cond2
for.end10: ; preds = %for.cond2
ret void
}

View File

@@ -0,0 +1,64 @@
; RUN: not opt %loadPolly -polly-import-jscop -polly-ast -polly-ast-detect-parallel < %s 2>&1 >/dev/null | FileCheck %s
;
; CHECK: Statement from JScop file has no key name 'accesses' for index 1.
;
; Verify that the JSONImporter checks if there is a key name "accesses" for each statement.
;
; void ia3(int *A, long n) {
; for (long i = 0; i < 2 * n; i++)
; S0: A[0] += i;
; for (long i = 0; i < 2 * n; i++)
; S1: A[i + 1] = 1;
; }
;
target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-n32-S64"
define void @ia3(i32* %A, i32 %n) {
entry:
br label %for.cond
for.cond: ; preds = %for.inc, %entry
%i.0 = phi i32 [ 0, %entry ], [ %inc, %for.inc ]
%mul = shl nsw i32 %n, 1
%cmp = icmp slt i32 %i.0, %mul
br i1 %cmp, label %for.body, label %for.end
for.body: ; preds = %for.cond
br label %S0
S0: ; preds = %for.body
%tmp = load i32, i32* %A, align 4
%add = add nsw i32 %tmp, %i.0
store i32 %add, i32* %A, align 4
br label %for.inc
for.inc: ; preds = %S0
%inc = add nsw i32 %i.0, 1
br label %for.cond
for.end: ; preds = %for.cond
br label %for.cond2
for.cond2: ; preds = %for.inc8, %for.end
%i1.0 = phi i32 [ 0, %for.end ], [ %inc9, %for.inc8 ]
%mul3 = shl nsw i32 %n, 1
%cmp4 = icmp slt i32 %i1.0, %mul3
br i1 %cmp4, label %for.body5, label %for.end10
for.body5: ; preds = %for.cond2
br label %S1
S1: ; preds = %for.body5
%add6 = add nsw i32 %i1.0, 1
%arrayidx7 = getelementptr inbounds i32, i32* %A, i32 %add6
store i32 1, i32* %arrayidx7, align 4
br label %for.inc8
for.inc8: ; preds = %S1
%inc9 = add nsw i32 %i1.0, 1
br label %for.cond2
for.end10: ; preds = %for.cond2
ret void
}

View File

@@ -0,0 +1,64 @@
; RUN: not opt %loadPolly -polly-import-jscop -polly-ast -polly-ast-detect-parallel < %s 2>&1 >/dev/null | FileCheck %s
;
; CHECK: The number of memory accesses in the JSop file and the number of memory accesses differ for index 0.
;
; Verify that the JSONImporter checks if there is the correct number of memory accesses.
;
; void ia4(int *A, long n) {
; for (long i = 0; i < 2 * n; i++)
; S0: A[0] += i;
; for (long i = 0; i < 2 * n; i++)
; S1: A[i + 1] = 1;
; }
;
target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-n32-S64"
define void @ia4(i32* %A, i32 %n) {
entry:
br label %for.cond
for.cond: ; preds = %for.inc, %entry
%i.0 = phi i32 [ 0, %entry ], [ %inc, %for.inc ]
%mul = shl nsw i32 %n, 1
%cmp = icmp slt i32 %i.0, %mul
br i1 %cmp, label %for.body, label %for.end
for.body: ; preds = %for.cond
br label %S0
S0: ; preds = %for.body
%tmp = load i32, i32* %A, align 4
%add = add nsw i32 %tmp, %i.0
store i32 %add, i32* %A, align 4
br label %for.inc
for.inc: ; preds = %S0
%inc = add nsw i32 %i.0, 1
br label %for.cond
for.end: ; preds = %for.cond
br label %for.cond2
for.cond2: ; preds = %for.inc8, %for.end
%i1.0 = phi i32 [ 0, %for.end ], [ %inc9, %for.inc8 ]
%mul3 = shl nsw i32 %n, 1
%cmp4 = icmp slt i32 %i1.0, %mul3
br i1 %cmp4, label %for.body5, label %for.end10
for.body5: ; preds = %for.cond2
br label %S1
S1: ; preds = %for.body5
%add6 = add nsw i32 %i1.0, 1
%arrayidx7 = getelementptr inbounds i32, i32* %A, i32 %add6
store i32 1, i32* %arrayidx7, align 4
br label %for.inc8
for.inc8: ; preds = %S1
%inc9 = add nsw i32 %i1.0, 1
br label %for.cond2
for.end10: ; preds = %for.cond2
ret void
}

View File

@@ -0,0 +1,64 @@
; RUN: not opt %loadPolly -polly-import-jscop -polly-ast -polly-ast-detect-parallel < %s 2>&1 >/dev/null | FileCheck %s
;
; CHECK: The number of indices and the number of statements differ.
;
; Verify that the JSONImporter checks if the number of indices and the number of statements differ.
;
; void ia2(int *A, long n) {
; for (long i = 0; i < 2 * n; i++)
; S0: A[0] += i;
; for (long i = 0; i < 2 * n; i++)
; S1: A[i + 1] = 1;
; }
;
target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-n32-S64"
define void @ia2(i32* %A, i32 %n) {
entry:
br label %for.cond
for.cond: ; preds = %for.inc, %entry
%i.0 = phi i32 [ 0, %entry ], [ %inc, %for.inc ]
%mul = shl nsw i32 %n, 1
%cmp = icmp slt i32 %i.0, %mul
br i1 %cmp, label %for.body, label %for.end
for.body: ; preds = %for.cond
br label %S0
S0: ; preds = %for.body
%tmp = load i32, i32* %A, align 4
%add = add nsw i32 %tmp, %i.0
store i32 %add, i32* %A, align 4
br label %for.inc
for.inc: ; preds = %S0
%inc = add nsw i32 %i.0, 1
br label %for.cond
for.end: ; preds = %for.cond
br label %for.cond2
for.cond2: ; preds = %for.inc8, %for.end
%i1.0 = phi i32 [ 0, %for.end ], [ %inc9, %for.inc8 ]
%mul3 = shl nsw i32 %n, 1
%cmp4 = icmp slt i32 %i1.0, %mul3
br i1 %cmp4, label %for.body5, label %for.end10
for.body5: ; preds = %for.cond2
br label %S1
S1: ; preds = %for.body5
%add6 = add nsw i32 %i1.0, 1
%arrayidx7 = getelementptr inbounds i32, i32* %A, i32 %add6
store i32 1, i32* %arrayidx7, align 4
br label %for.inc8
for.inc8: ; preds = %S1
%inc9 = add nsw i32 %i1.0, 1
br label %for.cond2
for.end10: ; preds = %for.cond2
ret void
}

View File

@@ -0,0 +1,64 @@
; RUN: not opt %loadPolly -polly-import-jscop -polly-ast -polly-ast-detect-parallel < %s 2>&1 >/dev/null | FileCheck %s
;
; CHECK: Memory access number 0 has no key name 'relation' for statement number 1.
;
; Verify that the JSONImporter checks if there is a key name 'relation' for each MemAcc.
;
; void ia5(int *A, long n) {
; for (long i = 0; i < 2 * n; i++)
; S0: A[0] += i;
; for (long i = 0; i < 2 * n; i++)
; S1: A[i + 1] = 1;
; }
;
target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-n32-S64"
define void @ia5(i32* %A, i32 %n) {
entry:
br label %for.cond
for.cond: ; preds = %for.inc, %entry
%i.0 = phi i32 [ 0, %entry ], [ %inc, %for.inc ]
%mul = shl nsw i32 %n, 1
%cmp = icmp slt i32 %i.0, %mul
br i1 %cmp, label %for.body, label %for.end
for.body: ; preds = %for.cond
br label %S0
S0: ; preds = %for.body
%tmp = load i32, i32* %A, align 4
%add = add nsw i32 %tmp, %i.0
store i32 %add, i32* %A, align 4
br label %for.inc
for.inc: ; preds = %S0
%inc = add nsw i32 %i.0, 1
br label %for.cond
for.end: ; preds = %for.cond
br label %for.cond2
for.cond2: ; preds = %for.inc8, %for.end
%i1.0 = phi i32 [ 0, %for.end ], [ %inc9, %for.inc8 ]
%mul3 = shl nsw i32 %n, 1
%cmp4 = icmp slt i32 %i1.0, %mul3
br i1 %cmp4, label %for.body5, label %for.end10
for.body5: ; preds = %for.cond2
br label %S1
S1: ; preds = %for.body5
%add6 = add nsw i32 %i1.0, 1
%arrayidx7 = getelementptr inbounds i32, i32* %A, i32 %add6
store i32 1, i32* %arrayidx7, align 4
br label %for.inc8
for.inc8: ; preds = %S1
%inc9 = add nsw i32 %i1.0, 1
br label %for.cond2
for.end10: ; preds = %for.cond2
ret void
}

View File

@@ -0,0 +1,64 @@
; RUN: not opt %loadPolly -polly-import-jscop -polly-ast -polly-ast-detect-parallel < %s 2>&1 >/dev/null | FileCheck %s
;
; CHECK: JScop file has no key name 'statements'.
;
; Verify that the JSONImporter checks if there is a key name 'statements'.
;
; void ia(int *A, long n) {
; for (long i = 0; i < 2 * n; i++)
; S0: A[0] += i;
; for (long i = 0; i < 2 * n; i++)
; S1: A[i + 1] = 1;
; }
;
target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-n32-S64"
define void @ia(i32* %A, i32 %n) {
entry:
br label %for.cond
for.cond: ; preds = %for.inc, %entry
%i.0 = phi i32 [ 0, %entry ], [ %inc, %for.inc ]
%mul = shl nsw i32 %n, 1
%cmp = icmp slt i32 %i.0, %mul
br i1 %cmp, label %for.body, label %for.end
for.body: ; preds = %for.cond
br label %S0
S0: ; preds = %for.body
%tmp = load i32, i32* %A, align 4
%add = add nsw i32 %tmp, %i.0
store i32 %add, i32* %A, align 4
br label %for.inc
for.inc: ; preds = %S0
%inc = add nsw i32 %i.0, 1
br label %for.cond
for.end: ; preds = %for.cond
br label %for.cond2
for.cond2: ; preds = %for.inc8, %for.end
%i1.0 = phi i32 [ 0, %for.end ], [ %inc9, %for.inc8 ]
%mul3 = shl nsw i32 %n, 1
%cmp4 = icmp slt i32 %i1.0, %mul3
br i1 %cmp4, label %for.body5, label %for.end10
for.body5: ; preds = %for.cond2
br label %S1
S1: ; preds = %for.body5
%add6 = add nsw i32 %i1.0, 1
%arrayidx7 = getelementptr inbounds i32, i32* %A, i32 %add6
store i32 1, i32* %arrayidx7, align 4
br label %for.inc8
for.inc8: ; preds = %S1
%inc9 = add nsw i32 %i1.0, 1
br label %for.cond2
for.end10: ; preds = %for.cond2
ret void
}

View File

@@ -0,0 +1,64 @@
; RUN: not opt %loadPolly -polly-import-jscop -polly-ast -polly-ast-detect-parallel < %s 2>&1 >/dev/null | FileCheck %s
;
; CHECK: JScop file contains access function with undeclared ScopArrayInfo
;
; Verify that the JSONImporter checks if the access function have a declared ScopArrayInfo.
;
; void ia8(int *A, long n) {
; for (long i = 0; i < 2 * n; i++)
; S0: A[0] += i;
; for (long i = 0; i < 2 * n; i++)
; S1: A[i + 1] = 1;
; }
;
target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-n32-S64"
define void @ia8(i32* %A, i32 %n) {
entry:
br label %for.cond
for.cond: ; preds = %for.inc, %entry
%i.0 = phi i32 [ 0, %entry ], [ %inc, %for.inc ]
%mul = shl nsw i32 %n, 1
%cmp = icmp slt i32 %i.0, %mul
br i1 %cmp, label %for.body, label %for.end
for.body: ; preds = %for.cond
br label %S0
S0: ; preds = %for.body
%tmp = load i32, i32* %A, align 4
%add = add nsw i32 %tmp, %i.0
store i32 %add, i32* %A, align 4
br label %for.inc
for.inc: ; preds = %S0
%inc = add nsw i32 %i.0, 1
br label %for.cond
for.end: ; preds = %for.cond
br label %for.cond2
for.cond2: ; preds = %for.inc8, %for.end
%i1.0 = phi i32 [ 0, %for.end ], [ %inc9, %for.inc8 ]
%mul3 = shl nsw i32 %n, 1
%cmp4 = icmp slt i32 %i1.0, %mul3
br i1 %cmp4, label %for.body5, label %for.end10
for.body5: ; preds = %for.cond2
br label %S1
S1: ; preds = %for.body5
%add6 = add nsw i32 %i1.0, 1
%arrayidx7 = getelementptr inbounds i32, i32* %A, i32 %add6
store i32 1, i32* %arrayidx7, align 4
br label %for.inc8
for.inc8: ; preds = %S1
%inc9 = add nsw i32 %i1.0, 1
br label %for.cond2
for.end10: ; preds = %for.cond2
ret void
}

View File

@@ -0,0 +1,64 @@
; RUN: not opt %loadPolly -polly-import-jscop -polly-ast -polly-ast-detect-parallel < %s 2>&1 >/dev/null | FileCheck %s
;
; CHECK: JScop file changes the number of parameter dimensions.
;
; Verify that the JSONImporter checks if there is the right parameter dimensions.
;
; void ia7(int *A, long n) {
; for (long i = 0; i < 2 * n; i++)
; S0: A[0] += i;
; for (long i = 0; i < 2 * n; i++)
; S1: A[i + 1] = 1;
; }
;
target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-n32-S64"
define void @ia7(i32* %A, i32 %n) {
entry:
br label %for.cond
for.cond: ; preds = %for.inc, %entry
%i.0 = phi i32 [ 0, %entry ], [ %inc, %for.inc ]
%mul = shl nsw i32 %n, 1
%cmp = icmp slt i32 %i.0, %mul
br i1 %cmp, label %for.body, label %for.end
for.body: ; preds = %for.cond
br label %S0
S0: ; preds = %for.body
%tmp = load i32, i32* %A, align 4
%add = add nsw i32 %tmp, %i.0
store i32 %add, i32* %A, align 4
br label %for.inc
for.inc: ; preds = %S0
%inc = add nsw i32 %i.0, 1
br label %for.cond
for.end: ; preds = %for.cond
br label %for.cond2
for.cond2: ; preds = %for.inc8, %for.end
%i1.0 = phi i32 [ 0, %for.end ], [ %inc9, %for.inc8 ]
%mul3 = shl nsw i32 %n, 1
%cmp4 = icmp slt i32 %i1.0, %mul3
br i1 %cmp4, label %for.body5, label %for.end10
for.body5: ; preds = %for.cond2
br label %S1
S1: ; preds = %for.body5
%add6 = add nsw i32 %i1.0, 1
%arrayidx7 = getelementptr inbounds i32, i32* %A, i32 %add6
store i32 1, i32* %arrayidx7, align 4
br label %for.inc8
for.inc8: ; preds = %S1
%inc9 = add nsw i32 %i1.0, 1
br label %for.cond2
for.end10: ; preds = %for.cond2
ret void
}

View File

@@ -0,0 +1,21 @@
{
"context" : "[n] -> { : n >= -2147483648 and n <= 2147483647 }",
"name" : "for.cond => for.end10",
"statements" : [
{
"accesses" : [
{
"kind" : "read",
"relation" : "[n] -> { Stmt_S0[i0] -> MemRef_A[0] }"
},
{
"kind" : "write",
"relation" : "[n] -> { Stmt_S0[i0] -> MemRef_A[0] }"
}
],
"domain" : "[n] -> { Stmt_S0[i0] : i0 >= 0 and i0 <= -1 + 2n and n >= 1 }",
"name" : "Stmt_S0",
"schedule" : "[n] -> { Stmt_S0[i0] -> [0, n - i0, 0] }"
}
]
}

View File

@@ -0,0 +1,26 @@
{
"context" : "[n] -> { : n >= -2147483648 and n <= 2147483647 }",
"name" : "for.cond => for.end10",
"statements" : [
{
"accesses" : [
{
"kind" : "read",
"relation" : "[n] -> { Stmt_S0[i0] -> MemRef_A[0] }"
},
{
"kind" : "write",
"relation" : "[n] -> { Stmt_S0[i0] -> MemRef_A[0] }"
}
],
"domain" : "[n] -> { Stmt_S0[i0] : i0 >= 0 and i0 <= -1 + 2n and n >= 1 }",
"name" : "Stmt_S0",
"schedule" : "[n] -> { Stmt_S0[i0] -> [0, n - i0, 0] }"
},
{
"domain" : "[n] -> { Stmt_S1[i0] : i0 >= 0 and i0 <= -1 + 2n and n >= 1 }",
"name" : "Stmt_S1",
"schedule" : "[n] -> { Stmt_S1[i0] -> [1, n - i0, 0] }"
}
]
}

View File

@@ -0,0 +1,28 @@
{
"context" : "[n] -> { : n >= -2147483648 and n <= 2147483647 }",
"name" : "for.cond => for.end10",
"statements" : [
{
"accesses" : [
{
"kind" : "read",
"relation" : "[n] -> { Stmt_S0[i0] -> MemRef_A[0] }"
}
],
"domain" : "[n] -> { Stmt_S0[i0] : i0 >= 0 and i0 <= -1 + 2n and n >= 1 }",
"name" : "Stmt_S0",
"schedule" : "[n] -> { Stmt_S0[i0] -> [0, n - i0, 0] }"
},
{
"accesses" : [
{
"kind" : "write",
"relation" : "[n] -> { Stmt_S1[i0] -> MemRef_A[1 + i0] }"
}
],
"domain" : "[n] -> { Stmt_S1[i0] : i0 >= 0 and i0 <= -1 + 2n and n >= 1 }",
"name" : "Stmt_S1",
"schedule" : "[n] -> { Stmt_S1[i0] -> [1, n - i0, 0] }"
}
]
}

View File

@@ -0,0 +1,31 @@
{
"context" : "[n] -> { : n >= -2147483648 and n <= 2147483647 }",
"name" : "for.cond => for.end10",
"statements" : [
{
"accesses" : [
{
"kind" : "read",
"relation" : "[n] -> { Stmt_S0[i0] -> MemRef_A[0] }"
},
{
"kind" : "write",
"relation" : "[n] -> { Stmt_S0[i0] -> MemRef_A[0] }"
}
],
"domain" : "[n] -> { Stmt_S0[i0] : i0 >= 0 and i0 <= -1 + 2n and n >= 1 }",
"name" : "Stmt_S0",
"schedule" : "[n] -> { Stmt_S0[i0] -> [0, n - i0, 0] }"
},
{
"accesses" : [
{
"kind" : "write"
}
],
"domain" : "[n] -> { Stmt_S1[i0] : i0 >= 0 and i0 <= -1 + 2n and n >= 1 }",
"name" : "Stmt_S1",
"schedule" : "[n] -> { Stmt_S1[i0] -> [1, n - i0, 0] }"
}
]
}

View File

@@ -0,0 +1,32 @@
{
"context" : "[n] -> { : n >= -2147483648 and n <= 2147483647 }",
"name" : "for.cond => for.end10",
"statements" : [
{
"accesses" : [
{
"kind" : "read",
"relation" : "[n -> { Stmt_S0[i0] -> MemRef_A[0] }"
},
{
"kind" : "write",
"relation" : "[n] -> { Stmt_S0[i0] -> MemRef_A[0] }"
}
],
"domain" : "[n] -> { Stmt_S0[i0] : i0 >= 0 and i0 <= -1 + 2n and n >= 1 }",
"name" : "Stmt_S0",
"schedule" : "[n] -> { Stmt_S0[i0] -> [0, n - i0, 0] }"
},
{
"accesses" : [
{
"kind" : "write",
"relation" : "[n] -> { Stmt_S1[i0] -> MemRef_A[1 + i0] }"
}
],
"domain" : "[n] -> { Stmt_S1[i0] : i0 >= 0 and i0 <= -1 + 2n and n >= 1 }",
"name" : "Stmt_S1",
"schedule" : "[n] -> { Stmt_S1[i0] -> [1, n - i0, 0] }"
}
]
}

View File

@@ -0,0 +1,32 @@
{
"context" : "[n] -> { : n >= -2147483648 and n <= 2147483647 }",
"name" : "for.cond => for.end10",
"statements" : [
{
"accesses" : [
{
"kind" : "read",
"relation" : "[n] -> { Stmt_S0[i0] -> MemRef_A[0] }"
},
{
"kind" : "write",
"relation" : "[n, m] -> { Stmt_S0[i0] -> MemRef_A[0] }"
}
],
"domain" : "[n] -> { Stmt_S0[i0] : i0 >= 0 and i0 <= -1 + 2n and n >= 1 }",
"name" : "Stmt_S0",
"schedule" : "[n] -> { Stmt_S0[i0] -> [0, n - i0, 0] }"
},
{
"accesses" : [
{
"kind" : "write",
"relation" : "[n] -> { Stmt_S1[i0] -> MemRef_A[1 + i0] }"
}
],
"domain" : "[n] -> { Stmt_S1[i0] : i0 >= 0 and i0 <= -1 + 2n and n >= 1 }",
"name" : "Stmt_S1",
"schedule" : "[n] -> { Stmt_S1[i0] -> [1, n - i0, 0] }"
}
]
}

View File

@@ -0,0 +1,32 @@
{
"context" : "[n] -> { : n >= -2147483648 and n <= 2147483647 }",
"name" : "for.cond => for.end10",
"statements" : [
{
"accesses" : [
{
"kind" : "read",
"relation" : "[n] -> { Stmt_S0[i0] -> Memef_A[0] }"
},
{
"kind" : "write",
"relation" : "[n] -> { Stmt_S0[i0] -> MemRef_A[0] }"
}
],
"domain" : "[n] -> { Stmt_S0[i0] : i0 >= 0 and i0 <= -1 + 2n and n >= 1 }",
"name" : "Stmt_S0",
"schedule" : "[n] -> { Stmt_S0[i0] -> [0, n - i0, 0] }"
},
{
"accesses" : [
{
"kind" : "write",
"relation" : "[n] -> { Stmt_S1[i0] -> MemRef_A[1 + i0] }"
}
],
"domain" : "[n] -> { Stmt_S1[i0] : i0 >= 0 and i0 <= -1 + 2n and n >= 1 }",
"name" : "Stmt_S1",
"schedule" : "[n] -> { Stmt_S1[i0] -> [1, n - i0, 0] }"
}
]
}

View File

@@ -0,0 +1,32 @@
{
"context" : "[n] -> { : n >= -2147483648 and n <= 2147483647 }",
"name" : "for.cond => for.end10",
"sttements" : [
{
"accesses" : [
{
"kind" : "read",
"relation" : "[n] -> { Stmt_S0[i0] -> MemRef_A[0] }"
},
{
"kind" : "write",
"relation" : "[n] -> { Stmt_S0[i0] -> MemRef_A[0] }"
}
],
"domain" : "[n] -> { Stmt_S0[i0] : i0 >= 0 and i0 <= -1 + 2n and n >= 1 }",
"name" : "Stmt_S0",
"schedule" : "[n] -> { Stmt_S0[i0] -> [0, n - i0, 0] }"
},
{
"accesses" : [
{
"kind" : "write",
"relation" : "[n] -> { Stmt_S1[i0] -> MemRef_A[1 + i0] }"
}
],
"domain" : "[n] -> { Stmt_S1[i0] : i0 >= 0 and i0 <= -1 + 2n and n >= 1 }",
"name" : "Stmt_S1",
"schedule" : "[n] -> { Stmt_S1[i0] -> [1, n - i0, 0] }"
}
]
}

View File

@@ -0,0 +1,58 @@
; RUN: not opt %loadPolly -polly-scops -analyze -polly-import-jscop -polly-import-jscop-postfix=transformed < %s 2>&1 | FileCheck %s
;
; CHECK: Array has not a valid type.
;
; Verify if the JSONImporter checks if the parsed type is valid.
;
; for (i = 0; i < _PB_NI; i++)
; for (j = 0; j < _PB_NJ; j++)
; for (k = 0; k < _PB_NK; ++k)
; B[i][j] = beta * A[i][k];
;
;
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-unknown"
; Function Attrs: nounwind uwtable
define internal void @ia4(i32 %arg, i32 %arg1, i32 %arg2, double %arg3, double %beta, [1056 x double]* %A, [1024 x double]* %B, [1056 x double]* %arg7) #0 {
bb:
br label %bb8
bb8: ; preds = %bb
br label %bb9
bb9: ; preds = %bb23, %bb8
%tmp = phi i64 [ 0, %bb8 ], [ %tmp24, %bb23 ]
br label %bb10
bb10: ; preds = %bb20, %bb9
%tmp11 = phi i64 [ 0, %bb9 ], [ %tmp21, %bb20 ]
br label %bb12
bb12: ; preds = %bb12, %bb10
%tmp13 = phi i64 [ 0, %bb10 ], [ %tmp18, %bb12 ]
%tmp14 = getelementptr inbounds [1024 x double], [1024 x double]* %B, i64 %tmp, i64 %tmp13
%tmp15 = load double, double* %tmp14, align 8
%tmp16 = fmul double %tmp15, %beta
%tmp17 = getelementptr inbounds [1056 x double], [1056 x double]* %A, i64 %tmp, i64 %tmp11
store double %tmp16, double* %tmp17, align 8
%tmp18 = add nuw nsw i64 %tmp13, 1
%tmp19 = icmp ne i64 %tmp18, 1024
br i1 %tmp19, label %bb12, label %bb20
bb20: ; preds = %bb12
%tmp21 = add nuw nsw i64 %tmp11, 1
%tmp22 = icmp ne i64 %tmp21, 1056
br i1 %tmp22, label %bb10, label %bb23
bb23: ; preds = %bb20
%tmp24 = add nuw nsw i64 %tmp, 1
%tmp25 = icmp ne i64 %tmp24, 1056
br i1 %tmp25, label %bb9, label %bb26
bb26: ; preds = %bb23
ret void
}
attributes #0 = { nounwind uwtable "target-cpu"="x86-64" "target-features"="+aes,+avx,+cmov,+cx16,+fxsr,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave,+xsaveopt" }

View File

@@ -0,0 +1,77 @@
; RUN: not opt %loadPolly -polly-scops -analyze -polly-import-jscop -polly-import-jscop-postfix=transformed < %s 2>&1 | FileCheck %s
;
; #define Ni 1056
; #define Nj 1056
; #define Nk 1024
;
; void ImportArray_Negative_size(double beta, double A[Ni][Nk], double B[Ni][Nj]) {
; int i,j,k;
;
; for (i = 0; i < Ni; i++) {
; for (j = 0; j < Nj; j++) {
; for (k = 0; k < Nk; ++k) {
; B[i][j] = beta * A[i][k];
; }
; }
; }
; }
;
; Verify if the JSONImporter checks if the size of the new array is positive.
; CHECK: The size at index 0 is =< 0.
;
; ModuleID = 'ImportArrays-Negative-size.ll'
;
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
; Function Attrs: nounwind uwtable
define void @ImportArrays_Negative_Size(double %beta, [1024 x double]* nocapture readonly %A, [1056 x double]* nocapture %B) local_unnamed_addr {
entry:
br label %for.cond1.preheader
for.cond1.preheader: ; preds = %for.inc16, %entry
%indvars.iv35 = phi i64 [ 0, %entry ], [ %indvars.iv.next36, %for.inc16 ]
br label %for.cond4.preheader
for.cond4.preheader: ; preds = %for.inc13, %for.cond1.preheader
%indvars.iv32 = phi i64 [ 0, %for.cond1.preheader ], [ %indvars.iv.next33, %for.inc13 ]
%arrayidx12 = getelementptr inbounds [1056 x double], [1056 x double]* %B, i64 %indvars.iv35, i64 %indvars.iv32
br label %for.body6
for.body6: ; preds = %for.body6, %for.cond4.preheader
%indvars.iv = phi i64 [ 0, %for.cond4.preheader ], [ %indvars.iv.next.3, %for.body6 ]
%arrayidx8 = getelementptr inbounds [1024 x double], [1024 x double]* %A, i64 %indvars.iv35, i64 %indvars.iv
%0 = load double, double* %arrayidx8, align 8
%mul = fmul double %0, %beta
store double %mul, double* %arrayidx12, align 8
%indvars.iv.next = or i64 %indvars.iv, 1
%arrayidx8.1 = getelementptr inbounds [1024 x double], [1024 x double]* %A, i64 %indvars.iv35, i64 %indvars.iv.next
%1 = load double, double* %arrayidx8.1, align 8
%mul.1 = fmul double %1, %beta
store double %mul.1, double* %arrayidx12, align 8
%indvars.iv.next.1 = or i64 %indvars.iv, 2
%arrayidx8.2 = getelementptr inbounds [1024 x double], [1024 x double]* %A, i64 %indvars.iv35, i64 %indvars.iv.next.1
%2 = load double, double* %arrayidx8.2, align 8
%mul.2 = fmul double %2, %beta
store double %mul.2, double* %arrayidx12, align 8
%indvars.iv.next.2 = or i64 %indvars.iv, 3
%arrayidx8.3 = getelementptr inbounds [1024 x double], [1024 x double]* %A, i64 %indvars.iv35, i64 %indvars.iv.next.2
%3 = load double, double* %arrayidx8.3, align 8
%mul.3 = fmul double %3, %beta
store double %mul.3, double* %arrayidx12, align 8
%indvars.iv.next.3 = add nsw i64 %indvars.iv, 4
%exitcond.3 = icmp eq i64 %indvars.iv.next.3, 1024
br i1 %exitcond.3, label %for.inc13, label %for.body6
for.inc13: ; preds = %for.body6
%indvars.iv.next33 = add nuw nsw i64 %indvars.iv32, 1
%exitcond34 = icmp eq i64 %indvars.iv.next33, 1056
br i1 %exitcond34, label %for.inc16, label %for.cond4.preheader
for.inc16: ; preds = %for.inc13
%indvars.iv.next36 = add nuw nsw i64 %indvars.iv35, 1
%exitcond37 = icmp eq i64 %indvars.iv.next36, 1056
br i1 %exitcond37, label %for.end18, label %for.cond1.preheader
for.end18: ; preds = %for.inc16
ret void
}

View File

@@ -0,0 +1,58 @@
; RUN: not opt %loadPolly -polly-scops -analyze -polly-import-jscop -polly-import-jscop-postfix=transformed < %s 2>&1 | FileCheck %s
;
; CHECK: Array has no key 'name'.
;
; Verify if the JSONImporter checks if the arrays have a key name 'name'.
;
; for (i = 0; i < _PB_NI; i++)
; for (j = 0; j < _PB_NJ; j++)
; for (k = 0; k < _PB_NK; ++k)
; B[i][j] = beta * A[i][k];
;
;
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-unknown"
; Function Attrs: nounwind uwtable
define internal void @ia3(i32 %arg, i32 %arg1, i32 %arg2, double %arg3, double %beta, [1056 x double]* %A, [1024 x double]* %B, [1056 x double]* %arg7) #0 {
bb:
br label %bb8
bb8: ; preds = %bb
br label %bb9
bb9: ; preds = %bb23, %bb8
%tmp = phi i64 [ 0, %bb8 ], [ %tmp24, %bb23 ]
br label %bb10
bb10: ; preds = %bb20, %bb9
%tmp11 = phi i64 [ 0, %bb9 ], [ %tmp21, %bb20 ]
br label %bb12
bb12: ; preds = %bb12, %bb10
%tmp13 = phi i64 [ 0, %bb10 ], [ %tmp18, %bb12 ]
%tmp14 = getelementptr inbounds [1024 x double], [1024 x double]* %B, i64 %tmp, i64 %tmp13
%tmp15 = load double, double* %tmp14, align 8
%tmp16 = fmul double %tmp15, %beta
%tmp17 = getelementptr inbounds [1056 x double], [1056 x double]* %A, i64 %tmp, i64 %tmp11
store double %tmp16, double* %tmp17, align 8
%tmp18 = add nuw nsw i64 %tmp13, 1
%tmp19 = icmp ne i64 %tmp18, 1024
br i1 %tmp19, label %bb12, label %bb20
bb20: ; preds = %bb12
%tmp21 = add nuw nsw i64 %tmp11, 1
%tmp22 = icmp ne i64 %tmp21, 1056
br i1 %tmp22, label %bb10, label %bb23
bb23: ; preds = %bb20
%tmp24 = add nuw nsw i64 %tmp, 1
%tmp25 = icmp ne i64 %tmp24, 1056
br i1 %tmp25, label %bb9, label %bb26
bb26: ; preds = %bb23
ret void
}
attributes #0 = { nounwind uwtable "target-cpu"="x86-64" "target-features"="+aes,+avx,+cmov,+cx16,+fxsr,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave,+xsaveopt" }

View File

@@ -0,0 +1,58 @@
; RUN: not opt %loadPolly -polly-scops -analyze -polly-import-jscop -polly-import-jscop-postfix=transformed < %s 2>&1 | FileCheck %s
;
; CHECK: Array has no key 'sizes'.
;
; Verify if the JSONImporter checks if the arrays have a key name 'sizes'.
;
; for (i = 0; i < _PB_NI; i++)
; for (j = 0; j < _PB_NJ; j++)
; for (k = 0; k < _PB_NK; ++k)
; B[i][j] = beta * A[i][k];
;
;
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-unknown"
; Function Attrs: nounwind uwtable
define internal void @ia2(i32 %arg, i32 %arg1, i32 %arg2, double %arg3, double %beta, [1056 x double]* %A, [1024 x double]* %B, [1056 x double]* %arg7) #0 {
bb:
br label %bb8
bb8: ; preds = %bb
br label %bb9
bb9: ; preds = %bb23, %bb8
%tmp = phi i64 [ 0, %bb8 ], [ %tmp24, %bb23 ]
br label %bb10
bb10: ; preds = %bb20, %bb9
%tmp11 = phi i64 [ 0, %bb9 ], [ %tmp21, %bb20 ]
br label %bb12
bb12: ; preds = %bb12, %bb10
%tmp13 = phi i64 [ 0, %bb10 ], [ %tmp18, %bb12 ]
%tmp14 = getelementptr inbounds [1024 x double], [1024 x double]* %B, i64 %tmp, i64 %tmp13
%tmp15 = load double, double* %tmp14, align 8
%tmp16 = fmul double %tmp15, %beta
%tmp17 = getelementptr inbounds [1056 x double], [1056 x double]* %A, i64 %tmp, i64 %tmp11
store double %tmp16, double* %tmp17, align 8
%tmp18 = add nuw nsw i64 %tmp13, 1
%tmp19 = icmp ne i64 %tmp18, 1024
br i1 %tmp19, label %bb12, label %bb20
bb20: ; preds = %bb12
%tmp21 = add nuw nsw i64 %tmp11, 1
%tmp22 = icmp ne i64 %tmp21, 1056
br i1 %tmp22, label %bb10, label %bb23
bb23: ; preds = %bb20
%tmp24 = add nuw nsw i64 %tmp, 1
%tmp25 = icmp ne i64 %tmp24, 1056
br i1 %tmp25, label %bb9, label %bb26
bb26: ; preds = %bb23
ret void
}
attributes #0 = { nounwind uwtable "target-cpu"="x86-64" "target-features"="+aes,+avx,+cmov,+cx16,+fxsr,+mmx,+pclmul,+popcnt,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+ssse3,+x87,+xsave,+xsaveopt" }

Some files were not shown because too many files have changed in this diff Show More