Skip to content
Snippets Groups Projects

Support delete unused in scheduler

Merged Aaron Councilman requested to merge scheduler-delete-unused into main
5 files
+ 230
13
Compare changes
  • Side-by-side
  • Inline
Files
5
@@ -73,6 +73,9 @@ struct MacroInfo {
enum Appliable {
Pass(ir::Pass),
// DeleteUncalled requires special handling because it changes FunctionIDs, so it is not
// treated like a pass
DeleteUncalled,
Schedule(Schedule),
Device(Device),
}
@@ -81,7 +84,7 @@ impl Appliable {
fn num_args(&self) -> usize {
match self {
Appliable::Pass(pass) => pass.num_args(),
// Schedules and devices do not arguments (at the moment)
// Delete uncalled, Schedules, and devices do not take arguments
_ => 0,
}
}
@@ -97,7 +100,7 @@ impl FromStr for Appliable {
"ccp" => Ok(Appliable::Pass(ir::Pass::CCP)),
"crc" | "collapse-read-chains" => Ok(Appliable::Pass(ir::Pass::CRC)),
"dce" => Ok(Appliable::Pass(ir::Pass::DCE)),
"delete-uncalled" => Ok(Appliable::Pass(ir::Pass::DeleteUncalled)),
"delete-uncalled" => Ok(Appliable::DeleteUncalled),
"float-collections" | "collections" => Ok(Appliable::Pass(ir::Pass::FloatCollections)),
"fork-guard-elim" => Ok(Appliable::Pass(ir::Pass::ForkGuardElim)),
"fork-split" => Ok(Appliable::Pass(ir::Pass::ForkSplit)),
@@ -323,6 +326,11 @@ fn compile_expr(
args: arg_vals,
on: selection,
})),
Appliable::DeleteUncalled => {
Ok(ExprResult::Expr(ir::ScheduleExp::DeleteUncalled {
on: selection,
}))
}
Appliable::Schedule(sched) => Ok(ExprResult::Stmt(ir::ScheduleStmt::AddSchedule {
sched,
on: selection,
Loading