Scheduler
The Juno scheduler along with the re-written pass manager to interpret schedules.
Modifies Juno build to use the scheduler, with either a schedule provided by the user or the default schedule found in juno_scheduler/src/default.rs
.
Deletes the old Hercules driver and the old pass manager, the behavior of running specific passes can be achieved by defining a custom schedule and adding whatever passes you want to it now.
An example schedule can be found in juno_samples/schedule_test/src/sched.sch
which also demonstrates that we can now specify manual outlining.
Some notes for adding new passes going forward:
- Add the pass to the
Pass
enum injuno_scheduler/src/ir.rs
- Add a parser for the pass name to the
impl FromStr for Appliable
injuno_scheduler/src/compile.rs
- Add the execution of the pass to
run_pass
injuno_scheduler/src/pm.rs
- If the pass should go in the default pass order, add it to
juno_scheduler/src/default.rs
Some additional tasks to improve functionality of the scheduler are described in #17 but I think this has enough functionality to be ready to merge now (especially as other MRs are waiting for it).
Resolves #5 (closed).
Merge request reports
Activity
requested review from @rarbore2
assigned to @aaronjc4
- Resolved by Aaron Councilman
added 7 commits
-
310ce0de...e2f0d4d5 - 6 commits from branch
main
- cfb68357 - Merge branch 'main' into scheduler-pm
-
310ce0de...e2f0d4d5 - 6 commits from branch
mentioned in commit f7b53408