diff --git a/juno_samples/rodinia/cfd/src/cpu_euler.sch b/juno_samples/rodinia/cfd/src/cpu_euler.sch index 13125961275b8982b7fc7c589198bc83bd36c420..d9d3eb8c0ebe133acd9daf3e9505eeb06b1be062 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(*); diff --git a/juno_samples/rodinia/cfd/src/cpu_pre_euler.sch b/juno_samples/rodinia/cfd/src/cpu_pre_euler.sch index 858be5baec53ea93e5658cfed6b9290cc4010c1f..3acee55bfee6d413a479edb771bb0c36a7036205 100644 --- a/juno_samples/rodinia/cfd/src/cpu_pre_euler.sch +++ b/juno_samples/rodinia/cfd/src/cpu_pre_euler.sch @@ -64,5 +64,10 @@ if !feature("seq") { copy_vars = copy_vars_body; } +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(*); diff --git a/juno_samples/rodinia/srad/src/cpu.sch b/juno_samples/rodinia/srad/src/cpu.sch index 8fa22aaa9f1213777439d153cef25cbf5b88ab8b..5487355d3011502316415f8ef5b17f1ab62906f4 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);