From e4b20015a4ee35f1279af4caa983478fa2ff0d4a Mon Sep 17 00:00:00 2001 From: dhuth Date: Mon, 6 Oct 2014 11:56:47 -0600 Subject: Added omega to source --- omega/examples/lu | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 omega/examples/lu (limited to 'omega/examples/lu') diff --git a/omega/examples/lu b/omega/examples/lu new file mode 100644 index 0000000..800d8a0 --- /dev/null +++ b/omega/examples/lu @@ -0,0 +1,41 @@ +# Perform imperfect loop interchange of LU decomposition +# to get jki form and then block the k and i loops +# +#for k = 1 to n do +# for i = k+1 to n do +# a(i,k) = a(i,k) / a(k,k) +# for j = k+1 to n do +# a(i,j) = a(i,j) - a(k,j)*a(i,k) +# endfor +# endfor +#endfor +# +# + +symbolic n; + +IS10 := {[k,i] : 1 <= k <= n && k+1 <= i <= n}; +IS20 := {[k,i,j] : 1 <= k <= n && k+1 <= i <= n && k+1 <= j <= n}; + +T10 := {[k,i] -> [t1,t2,k,k,i]: +exists (alpha,beta: t1 = 64beta+1 && k-1 = alpha + 64 beta && + alpha >= 0 && alpha <= 63) +&& exists (gamma,delta: t2 = 64delta && i = gamma +64delta && + gamma >= 0 && gamma <= 63)}; + +T20 := {[k,i,j] -> [t1,t2,j,k,i]: +exists (alpha,beta: t1 = 64beta+1 && k-1 = alpha + 64 beta && + alpha >= 0 && alpha <= 63) +&& exists (gamma,delta: t2 = 64delta && i = gamma +64delta && + gamma >= 0 && gamma <= 63)}; + +T10; +T20; + +# Generate code with different ammounts of overhead remove +# The more overhead we remove, the more code duplication may occur +codegen 0 T10:IS10,T20:IS20; +codegen 1 T10:IS10,T20:IS20; +codegen 2 T10:IS10,T20:IS20; +codegen 3 T10:IS10,T20:IS20; + -- cgit v1.2.3-70-g09d2