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:
Pass
enum in juno_scheduler/src/ir.rs
impl FromStr for Appliable
in juno_scheduler/src/compile.rs
run_pass
in juno_scheduler/src/pm.rs
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).