From dc16e89f6bbdd55143e766644bffc44221767169 Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Wed, 21 Jan 2015 19:22:16 +0100 Subject: [PATCH] add dependence analysis tests for iscc The way dependence analysis is performed will be changed in the next commit. Add some tests to check the basic functionality. Signed-off-by: Sven Verdoolaege --- tests/iscc/dep1 | 6 ++++++ tests/iscc/dep2 | 6 ++++++ 2 files changed, 12 insertions(+) create mode 100644 tests/iscc/dep1 create mode 100644 tests/iscc/dep2 diff --git a/tests/iscc/dep1 b/tests/iscc/dep1 new file mode 100644 index 0000000..dea2bcf --- /dev/null +++ b/tests/iscc/dep1 @@ -0,0 +1,6 @@ +Write := [n] -> { F[i, j] -> t[j] : i >= 0 and j >= 0 and j <= -1 + n - i and j <= -1 + n; T[i] -> t[i] : i >= 0 and i <= -1 + n; B[i] -> b[i] : i >= 0 and i <= -1 + n }; +Read := [n] -> { F[i, j] -> t[1 + j] : i >= 0 and j >= 0 and j <= -1 + n - i and j <= -2 + n; F[i, j] -> t[j] : i >= 0 and j >= 0 and j <= -1 + n - i and j <= -1 + n; B[i] -> t[i] : i >= 0 and i <= -1 + n; T[i] -> a[i] : i >= 0 and i <= -1 + n }; +Sched := [n] -> { T[i] -> [0, i, 0]; B[i] -> [2, i, 0]; F[i, j] -> [1, i, j] }; +Dep1 := [n] -> { T[i] -> B[i] : i >= 0 and i <= -1 + n; F[i, j] -> B[j] : i >= 0 and j >= 0 and j <= -1 + n - i and j <= -1 + n; T[i] -> F[i', i] : i >= 0 and i' >= 0 and i' <= -1 + n - i and i <= -1 + n; T[i] -> F[i', -1 + i] : i >= 1 and i <= -1 + n and i' >= 0 and i' <= n - i; F[i, j] -> F[i', j] : i >= 0 and j >= 0 and i' >= 1 + i and i' <= -1 + n - j and i' >= 0 and j <= -1 + n; F[i, j] -> F[i', -1 + j] : i >= 0 and j >= 1 and i' >= 1 + i and i' <= n - j and i' >= 0 and j <= -1 + n }; +Dep2 := any Write before Read under Sched; +assert(Dep1 = Dep2); diff --git a/tests/iscc/dep2 b/tests/iscc/dep2 new file mode 100644 index 0000000..b26594c --- /dev/null +++ b/tests/iscc/dep2 @@ -0,0 +1,6 @@ +Write := [n] -> { F[i, j] -> t[j] : i >= 0 and j >= 0 and j <= -1 + n - i and j <= -1 + n; T[i] -> t[i] : i >= 0 and i <= -1 + n; B[i] -> b[i] : i >= 0 and i <= -1 + n }; +Read := [n] -> { F[i, j] -> t[1 + j] : i >= 0 and j >= 0 and j <= -1 + n - i and j <= -2 + n; F[i, j] -> t[j] : i >= 0 and j >= 0 and j <= -1 + n - i and j <= -1 + n; B[i] -> t[i] : i >= 0 and i <= -1 + n; T[i] -> a[i] : i >= 0 and i <= -1 + n }; +Sched := [n] -> { T[i] -> [0, i, 0]; B[i] -> [2, i, 0]; F[i, j] -> [1, i, j] }; +Dep1 := [n] -> { F[i, -1 + n - i] -> B[-1 + n - i] : i <= -1 + n and i >= 0; T[i] -> F[0, i] : i <= -1 + n and i >= 0; T[i] -> F[0, -1 + i] : i <= -1 + n and i >= 1; F[i, j] -> F[1 + i, j] : i >= 0 and j >= 0 and j <= -2 + n - i and j <= -1 + n; F[i, j] -> F[1 + i, -1 + j] : i >= 0 and j >= 1 and j <= -1 + n - i and j <= -1 + n }; +Dep2 := (last Write before Read under Sched)[0]; +assert(Dep1 = Dep2); -- 2.11.4.GIT