Skip to content
Snippets Groups Projects

Misc.

Merged rarbore2 requested to merge rt_fork_tweak into main
3 files
+ 54
1
Compare changes
  • Side-by-side
  • Inline
Files
3
+ 25
0
@@ -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
}
Loading