Your code goes here¶
Read ../SPEC.md first. This directory is yours: design how you build the
dependence DAG, how you compute priorities and keep the ready list, how you represent the
reservation table, how you search for the II and how you allocate rotating registers, and
split it into as many files as you like. Every *.cpp here is compiled automatically
(EXERCISE_DIR src in ../CMakeLists.txt; re-run ./course test 23 after adding files).
Stub.cpp defines the two contract functions of
../include/sched/Scheduler.h, sched::scheduleBlock (list
scheduling, E1-E3) and sched::scheduleLoop (modulo scheduling, E4-E5), so the project
builds; each stops with TODO(ch23). Replace or delete it as you implement them.
The provided parser (sched/Program.h) and checker (sched/Check.h) are infrastructure: use
them to read inputs and to debug your output (ch23-check), but build your own dependence
graphs; the checker's are deliberately private.