Skip to content
Snippets Groups Projects
Commit dc0ebc25 authored by Russel Arbore's avatar Russel Arbore
Browse files

fix bfs

parent ef4797ad
No related branches found
No related tags found
1 merge request!217Misc.
Pipeline #202063 passed
...@@ -221,6 +221,31 @@ fn preliminary_fixups( ...@@ -221,6 +221,31 @@ fn preliminary_fixups(
} }
} }
// Add region nodes between join nodes and loop headers to aid in block
// placement.
for (_, join) in fork_join_map {
let control_user = editor
.get_users(*join)
.filter(|id| nodes[id.idx()].is_control())
.next()
.unwrap();
if nodes[control_user.idx()].is_fork()
|| nodes[control_user.idx()]
.try_region()
.map(|preds| preds.len() > 1)
.unwrap_or(false)
{
let success = editor.edit(|mut edit| {
let region = edit.add_node(Node::Region {
preds: Box::new([*join]),
});
edit.replace_all_uses_where(*join, region, |id| *id == control_user)
});
assert!(success);
return true;
}
}
false false
} }
......
...@@ -50,7 +50,7 @@ fork-tile[32, 0, false, true](init); ...@@ -50,7 +50,7 @@ fork-tile[32, 0, false, true](init);
let (outer, inner) = fork-reshape[[1], [0]](init); let (outer, inner) = fork-reshape[[1], [0]](init);
let init_body = outline(inner); let init_body = outline(inner);
inline(bfs@loop1, bfs@loop2); inline(bfs@cost_init, bfs@loop1, bfs@loop2);
delete-uncalled(*); delete-uncalled(*);
const-inline(*); const-inline(*);
simpl!(*); simpl!(*);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment