summaryrefslogtreecommitdiff
path: root/omega/examples/old_test/emit
diff options
context:
space:
mode:
authorDerick Huth <derickhuth@gmail.com>2014-10-06 12:42:34 -0600
committerDerick Huth <derickhuth@gmail.com>2014-10-06 12:42:34 -0600
commit8d73c8fcc75556c1df71dd39dd99783f8f86fc3e (patch)
tree157d627863d76a4c256a27cae27ce2e8566c7ea0 /omega/examples/old_test/emit
parente87b55ad69f0ac6211daae741b32c8ee9dcbe470 (diff)
parent8c646f24570079eac53e58fcf42d0d4fbc437ee3 (diff)
downloadchill-8d73c8fcc75556c1df71dd39dd99783f8f86fc3e.tar.gz
chill-8d73c8fcc75556c1df71dd39dd99783f8f86fc3e.tar.bz2
chill-8d73c8fcc75556c1df71dd39dd99783f8f86fc3e.zip
Merge pull request #2 from dhuth/master
Moved omega into chill.
Diffstat (limited to 'omega/examples/old_test/emit')
-rw-r--r--omega/examples/old_test/emit38
1 files changed, 38 insertions, 0 deletions
diff --git a/omega/examples/old_test/emit b/omega/examples/old_test/emit
new file mode 100644
index 0000000..3b33a98
--- /dev/null
+++ b/omega/examples/old_test/emit
@@ -0,0 +1,38 @@
+#
+# A problem that arises during the analysis of emit.t
+# We are trying to find the dependences to the read 58: rhs(i)
+# There are memory-based deps from the write 58: rhs(j)
+# and the write 50: rhs(i0+k)
+# Due to some screwy stuff, we do not realize that the first is
+# a partial cover for the second, and do the real kill test.
+#
+# line_49_expr is nwall(l)
+#
+
+symbolic matdim_E, i0_1(1), line_49_expr(1);
+
+is_58 := { [i,j] : i+1 <= j <= matdim_E && 1 <= i <= matdim_E };
+is_50 := { [l,k] : 1 <= k <= line_49_expr(Set) && 1 <= l <= 5 };
+
+plus_plus := { [i,j] -> [i',j'] : i < i' && j < j' };
+plus_zero := { [i,j] -> [i',j'] : i < i' && j = j' };
+plus_star := { [i,j] -> [i',j'] : i < i' };
+
+mo_50_50 := (is_50 * is_50) intersection plus_star
+ intersection { [l1,k1]->[l2,k2] : i0_1(In)+k1 = i0_1(Out)+k2 };
+mo_50_58 := (is_50 * is_58)
+ intersection { [l,k] -> [i,j] : i0_1(In)+k = j };
+mo_58_58 := (is_58 * is_58) intersection plus_zero
+ intersection { [i,j] -> [i',j'] : j = j' };
+
+mf_58_58 := (is_58 * is_58) intersection plus_plus
+ intersection { [iw,jw] -> [ir,jr] : jw = ir };
+mf_50_58 := (is_50 * is_58)
+ intersection { [l,k] -> [i,j] : i0_1(In)+k = i };
+
+vf_58_58 := mf_58_58 - (mf_58_58 compose mo_58_58);
+vf_58_58;
+
+vf_50_58 := mf_50_58 intersection ( complement (mf_58_58 compose mo_50_58) )
+ intersection ( complement (mf_50_58 compose mo_50_50) );
+vf_50_58;