Skip to content
Snippets Groups Projects

Intraprocedural SROA

Merged Aaron Councilman requested to merge sroa into main
2 files
+ 19
2
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 11
1
@@ -634,7 +634,17 @@ pub fn repair_plan(plan: &mut Plan, new_function: &Function, edits: &[Edit]) {
new_partitions[data_id.idx()] = new_partitions[bbs[data_id.idx()].idx()];
}
// Step 6: wrap everything up.
// Step 6: create a solitary gravestone partition. This will get removed
// when gravestone nodes are removed.
let gravestone_partition = PartitionID::new(plan.num_partitions);
plan.num_partitions += 1;
for (idx, node) in new_function.nodes.iter().enumerate() {
if idx > 0 && node.is_start() {
new_partitions[idx] = Some(gravestone_partition);
}
}
// Step 7: wrap everything up.
plan.partitions = new_partitions.into_iter().map(|id| id.unwrap()).collect();
plan.partition_devices
.resize(plan.num_partitions, Device::CPU);
Loading