diff --git a/juno_samples/fork_join_tests/src/blah.sch b/juno_samples/fork_join_tests/src/blah.sch deleted file mode 100644 index 52dea702fc0c9057d764eb25f60a27aa52c7a530..0000000000000000000000000000000000000000 --- a/juno_samples/fork_join_tests/src/blah.sch +++ /dev/null @@ -1,34 +0,0 @@ - -xdot[true](*); - -fixpoint panic after 20 { - forkify(*); - fork-guard-elim(*); - fork-coalesce(*); - dce(*); -} - -xdot[true](*); - -//gvn(*); -//phi-elim(*); -//dce(*); - -//gvn(*); -//phi-elim(*); -//dce(*); - -//fixpoint panic after 20 { -// infer-schedules(*); -//} - -//fork-split(*); -//gvn(*); -//phi-elim(*); -//dce(*); -//unforkify(*); -//gvn(*); -//phi-elim(*); -//dce(*); - -//gcm(*); diff --git a/juno_samples/fork_join_tests/src/cpu.sch b/juno_samples/fork_join_tests/src/cpu.sch index 3b672846fbf5ff73bdb688e2bcc3167c9e22814f..fd3fc0ff350fb158fbedb55bf0eb6e5c9182ab89 100644 --- a/juno_samples/fork_join_tests/src/cpu.sch +++ b/juno_samples/fork_join_tests/src/cpu.sch @@ -5,7 +5,7 @@ gvn(*); phi-elim(*); dce(*); -let auto = auto-outline(test1, test2, test3, test4, test5, test7); +let auto = auto-outline(test1, test2, test3, test4, test5, test7, test8); cpu(auto.test1); cpu(auto.test2); cpu(auto.test3); @@ -50,12 +50,8 @@ gvn(*); phi-elim(*); dce(*); - fork-tile[32, 0, true](test6@loop); let out = fork-split(test6@loop); - -let fission = fork-fission-bufferize[test8@loop, test8@bufferize1](auto.test8); - let out = outline(out.test6.fj1); cpu(out); ip-sroa(*); @@ -75,4 +71,10 @@ dce(auto.test7); simplify-cfg(auto.test7); dce(auto.test7); +let fission = fork-fission-bufferize[test8@loop, test8@bufferize1](auto.test8); +dce(auto.test8); +unforkify(auto.test8); +ccp(auto.test8); +dce(auto.test8); + gcm(*); diff --git a/juno_samples/fork_join_tests/src/fork_join_tests.jn b/juno_samples/fork_join_tests/src/fork_join_tests.jn index bc89b2e2aa78f4aba908838cfb8314bb3b9171b6..a765726f84070769153117bbaa644626b87a44a8 100644 --- a/juno_samples/fork_join_tests/src/fork_join_tests.jn +++ b/juno_samples/fork_join_tests/src/fork_join_tests.jn @@ -82,7 +82,7 @@ fn test6(input: i32) -> i32[1024] { return arr; } - +#[entry] fn test7(input: i32) -> i32 { let arr : i32[32]; for i = 0 to 32 { diff --git a/juno_scheduler/src/pm.rs b/juno_scheduler/src/pm.rs index f762e5ffd1bb6f5fa7a32d88ebd8d4f2260e2244..58ff399f7acb7e2093a226de7ecb551a88d835c2 100644 --- a/juno_scheduler/src/pm.rs +++ b/juno_scheduler/src/pm.rs @@ -2094,7 +2094,7 @@ fn run_pass( let nodes_in_fork_joins = pm.nodes_in_fork_joins.take().unwrap(); // assert only one function is in the selection. - let num_functions = build_selection(pm, selection.clone()) + let num_functions = build_selection(pm, selection.clone(), false) .iter() .filter(|func| func.is_some()) .count(); @@ -2106,9 +2106,8 @@ fn run_pass( let fork_label = fork_labels[0].label; let data_label = fork_data_labels[0].label; - // Only one func is_some(). for ((((func, fork_join_map), loop_tree), typing), nodes_in_fork_joins) in - build_selection(pm, selection) + build_selection(pm, selection, false) .into_iter() .zip(fork_join_maps.iter()) .zip(loops.iter())