From dd2a8b7d7033211b08dc5fb447b6865b627b43ba Mon Sep 17 00:00:00 2001
From: Russel Arbore <rarbore2@illinois.edu>
Date: Wed, 5 Mar 2025 16:07:23 -0600
Subject: [PATCH 1/4] tweaks of cfd

---
 juno_samples/rodinia/cfd/src/cpu_euler.sch | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/juno_samples/rodinia/cfd/src/cpu_euler.sch b/juno_samples/rodinia/cfd/src/cpu_euler.sch
index 13125961..d9d3eb8c 100644
--- a/juno_samples/rodinia/cfd/src/cpu_euler.sch
+++ b/juno_samples/rodinia/cfd/src/cpu_euler.sch
@@ -57,5 +57,10 @@ if !feature("seq") {
   copy_vars = copy_vars_body;
 }
 
+const-inline[false](*);
+simpl!(*);
+fork-split(compute_step_factor, compute_flux, time_step, copy_vars);
 unforkify(compute_step_factor, compute_flux, time_step, copy_vars);
+simpl!(*);
+
 gcm(*);
-- 
GitLab


From e91a6a9e43543038dcb8f5e69c413052e513b16b Mon Sep 17 00:00:00 2001
From: Russel Arbore <rarbore2@illinois.edu>
Date: Wed, 5 Mar 2025 16:17:15 -0600
Subject: [PATCH 2/4] more tweaks

---
 juno_samples/rodinia/cfd/src/cpu_euler.sch     | 1 +
 juno_samples/rodinia/cfd/src/cpu_pre_euler.sch | 6 ++++++
 2 files changed, 7 insertions(+)

diff --git a/juno_samples/rodinia/cfd/src/cpu_euler.sch b/juno_samples/rodinia/cfd/src/cpu_euler.sch
index d9d3eb8c..baf45b8a 100644
--- a/juno_samples/rodinia/cfd/src/cpu_euler.sch
+++ b/juno_samples/rodinia/cfd/src/cpu_euler.sch
@@ -57,6 +57,7 @@ if !feature("seq") {
   copy_vars = copy_vars_body;
 }
 
+fork-tile[13, 0, false, true](compute_flux);
 const-inline[false](*);
 simpl!(*);
 fork-split(compute_step_factor, compute_flux, time_step, copy_vars);
diff --git a/juno_samples/rodinia/cfd/src/cpu_pre_euler.sch b/juno_samples/rodinia/cfd/src/cpu_pre_euler.sch
index 858be5ba..cd9ae6a0 100644
--- a/juno_samples/rodinia/cfd/src/cpu_pre_euler.sch
+++ b/juno_samples/rodinia/cfd/src/cpu_pre_euler.sch
@@ -64,5 +64,11 @@ if !feature("seq") {
   copy_vars = copy_vars_body;
 }
 
+fork-tile[13, 0, false, true](compute_flux);
+const-inline[false](*);
+simpl!(*);
+fork-split(compute_step_factor, compute_flux_contributions, compute_flux, time_step, copy_vars);
 unforkify(compute_step_factor, compute_flux_contributions, compute_flux, time_step, copy_vars);
+simpl!(*);
+
 gcm(*);
-- 
GitLab


From 91eeb3b7a5642ac23ae367040dc96b93e8540e1f Mon Sep 17 00:00:00 2001
From: Russel Arbore <rarbore2@illinois.edu>
Date: Wed, 5 Mar 2025 17:39:11 -0600
Subject: [PATCH 3/4] parallelize sum reduction in srad

---
 juno_samples/rodinia/srad/src/cpu.sch | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/juno_samples/rodinia/srad/src/cpu.sch b/juno_samples/rodinia/srad/src/cpu.sch
index 8fa22aaa..5487355d 100644
--- a/juno_samples/rodinia/srad/src/cpu.sch
+++ b/juno_samples/rodinia/srad/src/cpu.sch
@@ -28,14 +28,28 @@ fixpoint {
   fork-guard-elim(*);
   fork-coalesce(*);
 }
+fork-dim-merge(loop1);
 simpl!(*);
-fork-interchange[0, 1](loop1);
 reduce-slf(*);
 simpl!(*);
 slf(*);
 simpl!(*);
 
 if !feature("seq") {
+  fork-tile[32, 0, false, false](loop1);
+  simpl!(loop1);
+  let split = fork-split(loop1);
+  simpl!(loop1);
+  clean-monoid-reduces(loop1);
+  let loop1_body = outline(split.srad_0.fj1);
+  simpl!(loop1, loop1_body);
+  unforkify(loop1_body);
+  let fission = fork-fission[split.srad_0.fj0](loop1);
+  simpl!(loop1, loop1_body);
+  unforkify(fission.srad_0.fj_bottom);
+  simpl!(loop1, loop1_body);
+  loop1 = loop1_body;
+
   fork-tile[32, 0, false, false](loop2);
   let split = fork-split(loop2);
   let loop2_body = outline(split.srad_1.fj1);
-- 
GitLab


From b29576dad642cb8952ecb2b2dc0475d50850b0b4 Mon Sep 17 00:00:00 2001
From: Russel Arbore <rarbore2@illinois.edu>
Date: Wed, 5 Mar 2025 17:42:08 -0600
Subject: [PATCH 4/4] sigh

---
 juno_samples/rodinia/cfd/src/cpu_euler.sch     | 1 -
 juno_samples/rodinia/cfd/src/cpu_pre_euler.sch | 1 -
 2 files changed, 2 deletions(-)

diff --git a/juno_samples/rodinia/cfd/src/cpu_euler.sch b/juno_samples/rodinia/cfd/src/cpu_euler.sch
index baf45b8a..d9d3eb8c 100644
--- a/juno_samples/rodinia/cfd/src/cpu_euler.sch
+++ b/juno_samples/rodinia/cfd/src/cpu_euler.sch
@@ -57,7 +57,6 @@ if !feature("seq") {
   copy_vars = copy_vars_body;
 }
 
-fork-tile[13, 0, false, true](compute_flux);
 const-inline[false](*);
 simpl!(*);
 fork-split(compute_step_factor, compute_flux, time_step, copy_vars);
diff --git a/juno_samples/rodinia/cfd/src/cpu_pre_euler.sch b/juno_samples/rodinia/cfd/src/cpu_pre_euler.sch
index cd9ae6a0..3acee55b 100644
--- a/juno_samples/rodinia/cfd/src/cpu_pre_euler.sch
+++ b/juno_samples/rodinia/cfd/src/cpu_pre_euler.sch
@@ -64,7 +64,6 @@ if !feature("seq") {
   copy_vars = copy_vars_body;
 }
 
-fork-tile[13, 0, false, true](compute_flux);
 const-inline[false](*);
 simpl!(*);
 fork-split(compute_step_factor, compute_flux_contributions, compute_flux, time_step, copy_vars);
-- 
GitLab