Go to file
Enrico Lumetti a858cbee76 RInt -> Lint 2024-01-18 09:53:11 +01:00
complete-tests Add simpler full test 2022-08-15 01:59:11 +02:00
tests RInt -> Lint 2024-01-18 09:53:11 +01:00
.editorconfig Implement and test explicate-control 2021-05-01 00:08:46 +02:00
LICENSE License 2020-05-28 11:35:01 +02:00
README.md Fix link in README 2021-05-05 01:01:02 +02:00
aarch64-hello.s Experiments with aarch64 stack 2021-05-06 16:53:18 +02:00
aarch64var.rkt wip: start working on trivial register allocation 2022-08-21 00:29:45 +02:00
allocate-regs.rkt wip: Improve register allocations and its test coverage 2022-08-21 01:35:35 +02:00
c1.rkt Convert c1 to new EoC data structures 2021-10-05 15:12:14 +02:00
complete-tests.rkt Instruction selection: basic bril->AArch64Var conversion 2022-08-15 01:56:24 +02:00
cvar-to-bril.rkt Fix two-operands subtraction 2022-08-12 23:03:55 +02:00
cvar.rkt Introduce different remove-complex-opera* pass 2022-05-01 22:46:36 +02:00
explicate-control.rkt Rewrite explicate-control 2022-05-01 16:09:35 +02:00
lint.rkt RInt -> Lint 2024-01-18 09:53:11 +01:00
print-rvar-to-bril.rkt Add utility to print bril from a CVar program 2022-08-10 23:45:43 +02:00
remove-complex-oper.rkt Fix comment 2022-08-10 23:44:20 +02:00
run-all-tests.rkt Revamp tests 2022-08-13 23:47:05 +02:00
runtime.s Experiments with aarch64 stack 2021-05-06 16:53:18 +02:00
rvar.rkt Fix rvar subtraction, convert tests to rackunit 2022-08-10 23:33:20 +02:00
select-instr.rkt add more tests 2022-08-15 02:30:34 +02:00
uniquify.rkt Port uniquify to new structures 2021-11-14 12:20:08 +01:00

README.md

Essentials of Compilation

Tracking the Essentials of Compilation course, with my own solutions and code here and there. Requires racket.

The compiler emits aarch64 assembly; I use the aarch64 linux cross-compiler and qemu to run them.