Compiler passing all Appel cases, as well as custom cases. See the test
folder for additional tests to confirm our extra credit additions.
In the SML repl, build the project and then run Main.compile <foo.tig>
.
- Passing more than 4 arguments to a function by pushing them onto the stack
- Spilling variables onto the stack when there are too many live registers at once
- Register coalescing using the Briggs heuristic
- Reaching definitions including constant propagation and copy propagation
- Dead code elemination