summaryrefslogtreecommitdiffstats
path: root/polly/test/CodeGen
diff options
context:
space:
mode:
authorRaghesh Aloor <raghesh.a@gmail.com>2011-07-12 17:14:03 +0000
committerRaghesh Aloor <raghesh.a@gmail.com>2011-07-12 17:14:03 +0000
commit3cb6628d7c0ac94f4ddba28ac374c74a672284aa (patch)
tree4b424116693eaf9a0a54108ed88dd54e8af94d8b /polly/test/CodeGen
parentd16e1e596a8db9ff6200bf2f58cc6cd0b78d0d0d (diff)
downloadbcm5719-llvm-3cb6628d7c0ac94f4ddba28ac374c74a672284aa.tar.gz
bcm5719-llvm-3cb6628d7c0ac94f4ddba28ac374c74a672284aa.zip
MemAccess: Reading Change in Access Function
This patch reads the change in access functions from imported JSCOP file. A test case is also added. llvm-svn: 134991
Diffstat (limited to 'polly/test/CodeGen')
-rw-r--r--polly/test/CodeGen/MemAccess/memaccess_simple.c17
-rw-r--r--polly/test/CodeGen/MemAccess/memaccess_simple.ll47
-rw-r--r--polly/test/CodeGen/MemAccess/memaccess_simple___%for.cond---%for.end.jscop17
-rw-r--r--polly/test/CodeGen/MemAccess/memaccess_simple___%for.cond---%for.end.jscop.transformed17
-rw-r--r--polly/test/CodeGen/MemAccess/memaccess_simple___%for.cond4---%for.end14.jscop17
-rw-r--r--polly/test/CodeGen/MemAccess/memaccess_simple___%for.cond4---%for.end14.jscop.transformed17
6 files changed, 132 insertions, 0 deletions
diff --git a/polly/test/CodeGen/MemAccess/memaccess_simple.c b/polly/test/CodeGen/MemAccess/memaccess_simple.c
new file mode 100644
index 00000000000..b9dd8f00202
--- /dev/null
+++ b/polly/test/CodeGen/MemAccess/memaccess_simple.c
@@ -0,0 +1,17 @@
+int A[100];
+int B[100];
+
+int memaccess_simple()
+{
+ int i, j;
+ for (i = 0; i < 12; i++) {
+ A[i] = i;
+ }
+
+ for (i = 0; i < 12; i++) {
+ B[i] = i;
+ }
+
+ return 0;
+}
+
diff --git a/polly/test/CodeGen/MemAccess/memaccess_simple.ll b/polly/test/CodeGen/MemAccess/memaccess_simple.ll
new file mode 100644
index 00000000000..538d86150af
--- /dev/null
+++ b/polly/test/CodeGen/MemAccess/memaccess_simple.ll
@@ -0,0 +1,47 @@
+;RUN: opt %loadPolly -polly-import-jscop -polly-import-jscop-dir=`dirname %s` -polly-import-jscop-postfix=transformed -stats %s 2>&1 | FileCheck %s
+; ModuleID = 'memaccess_simple.ll'
+target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32"
+target triple = "i386-pc-linux-gnu"
+
+@A = common global [100 x i32] zeroinitializer, align 4
+@B = common global [100 x i32] zeroinitializer, align 4
+
+define i32 @memaccess_simple() nounwind {
+entry:
+ br label %for.cond
+
+for.cond: ; preds = %for.inc, %entry
+ %0 = phi i32 [ 0, %entry ], [ %inc, %for.inc ]
+ %arrayidx = getelementptr [100 x i32]* @A, i32 0, i32 %0
+ %exitcond1 = icmp ne i32 %0, 12
+ br i1 %exitcond1, label %for.body, label %for.end
+
+for.body: ; preds = %for.cond
+ store i32 %0, i32* %arrayidx
+ br label %for.inc
+
+for.inc: ; preds = %for.body
+ %inc = add nsw i32 %0, 1
+ br label %for.cond
+
+for.end: ; preds = %for.cond
+ br label %for.cond4
+
+for.cond4: ; preds = %for.inc11, %for.end
+ %1 = phi i32 [ 0, %for.end ], [ %inc13, %for.inc11 ]
+ %arrayidx10 = getelementptr [100 x i32]* @B, i32 0, i32 %1
+ %exitcond = icmp ne i32 %1, 12
+ br i1 %exitcond, label %for.body7, label %for.end14
+
+for.body7: ; preds = %for.cond4
+ store i32 %1, i32* %arrayidx10
+ br label %for.inc11
+
+for.inc11: ; preds = %for.body7
+ %inc13 = add nsw i32 %1, 1
+ br label %for.cond4
+
+for.end14: ; preds = %for.cond4
+ ret i32 0
+}
+; CHECK: 2 polly-import-jscop
diff --git a/polly/test/CodeGen/MemAccess/memaccess_simple___%for.cond---%for.end.jscop b/polly/test/CodeGen/MemAccess/memaccess_simple___%for.cond---%for.end.jscop
new file mode 100644
index 00000000000..ccee1cbde12
--- /dev/null
+++ b/polly/test/CodeGen/MemAccess/memaccess_simple___%for.cond---%for.end.jscop
@@ -0,0 +1,17 @@
+{
+ "context" : "{ [] }",
+ "name" : "for.cond => for.end",
+ "statements" : [
+ {
+ "accesses" : [
+ {
+ "kind" : "write",
+ "relation" : "{ Stmt_for_body[i0] -> MemRef_A[i0] }"
+ }
+ ],
+ "domain" : "{ Stmt_for_body[i0] : i0 >= 0 and i0 <= 11 }",
+ "name" : "Stmt_for_body",
+ "schedule" : "{ Stmt_for_body[i0] -> scattering[0, i0, 0] }"
+ }
+ ]
+}
diff --git a/polly/test/CodeGen/MemAccess/memaccess_simple___%for.cond---%for.end.jscop.transformed b/polly/test/CodeGen/MemAccess/memaccess_simple___%for.cond---%for.end.jscop.transformed
new file mode 100644
index 00000000000..a9853bd2bd8
--- /dev/null
+++ b/polly/test/CodeGen/MemAccess/memaccess_simple___%for.cond---%for.end.jscop.transformed
@@ -0,0 +1,17 @@
+{
+ "context" : "{ [] }",
+ "name" : "for.cond => for.end",
+ "statements" : [
+ {
+ "accesses" : [
+ {
+ "kind" : "write",
+ "relation" : "{ Stmt_for_body[i0] -> MemRef_A[0] }"
+ }
+ ],
+ "domain" : "{ Stmt_for_body[i0] : i0 >= 0 and i0 <= 11 }",
+ "name" : "Stmt_for_body",
+ "schedule" : "{ Stmt_for_body[i0] -> scattering[0, i0, 0] }"
+ }
+ ]
+}
diff --git a/polly/test/CodeGen/MemAccess/memaccess_simple___%for.cond4---%for.end14.jscop b/polly/test/CodeGen/MemAccess/memaccess_simple___%for.cond4---%for.end14.jscop
new file mode 100644
index 00000000000..0794c01dce7
--- /dev/null
+++ b/polly/test/CodeGen/MemAccess/memaccess_simple___%for.cond4---%for.end14.jscop
@@ -0,0 +1,17 @@
+{
+ "context" : "{ [] }",
+ "name" : "for.cond4 => for.end14",
+ "statements" : [
+ {
+ "accesses" : [
+ {
+ "kind" : "write",
+ "relation" : "{ Stmt_for_body7[i0] -> MemRef_B[i0] }"
+ }
+ ],
+ "domain" : "{ Stmt_for_body7[i0] : i0 >= 0 and i0 <= 11 }",
+ "name" : "Stmt_for_body7",
+ "schedule" : "{ Stmt_for_body7[i0] -> scattering[0, i0, 0] }"
+ }
+ ]
+}
diff --git a/polly/test/CodeGen/MemAccess/memaccess_simple___%for.cond4---%for.end14.jscop.transformed b/polly/test/CodeGen/MemAccess/memaccess_simple___%for.cond4---%for.end14.jscop.transformed
new file mode 100644
index 00000000000..5df6c367512
--- /dev/null
+++ b/polly/test/CodeGen/MemAccess/memaccess_simple___%for.cond4---%for.end14.jscop.transformed
@@ -0,0 +1,17 @@
+{
+ "context" : "{ [] }",
+ "name" : "for.cond4 => for.end14",
+ "statements" : [
+ {
+ "accesses" : [
+ {
+ "kind" : "write",
+ "relation" : "{ Stmt_for_body7[i0] -> MemRef_B[0] }"
+ }
+ ],
+ "domain" : "{ Stmt_for_body7[i0] : i0 >= 0 and i0 <= 11 }",
+ "name" : "Stmt_for_body7",
+ "schedule" : "{ Stmt_for_body7[i0] -> scattering[0, i0, 0] }"
+ }
+ ]
+}
OpenPOWER on IntegriCloud