diff options
| author | Raghesh Aloor <raghesh.a@gmail.com> | 2011-07-12 17:14:03 +0000 |
|---|---|---|
| committer | Raghesh Aloor <raghesh.a@gmail.com> | 2011-07-12 17:14:03 +0000 |
| commit | 3cb6628d7c0ac94f4ddba28ac374c74a672284aa (patch) | |
| tree | 4b424116693eaf9a0a54108ed88dd54e8af94d8b /polly/test/CodeGen | |
| parent | d16e1e596a8db9ff6200bf2f58cc6cd0b78d0d0d (diff) | |
| download | bcm5719-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')
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] }" + } + ] +} |

