Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
13 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,19 @@ | ||
Another Scheme Compiler | ||
|
||
Design | ||
====== | ||
Still in early development! | ||
|
||
* CPS HL-IR | ||
* SSA LL-IR | ||
* Code generator emits x86-64 | ||
* Graph-colouring register allocator (TODO) | ||
Current design | ||
============== | ||
|
||
* CPS high-level IR [DONE] | ||
Raw scheme source code undergoes macro-expansion, alpha-conversion, CPS conversion, | ||
lambda lifting, closure conversion, and then conversion to the Tree IR | ||
* Tree-based low-level IR [DONE] | ||
Currently only used as a convenient source IR for near-optimal instruction selection | ||
* x86-64 code generator [DONE] | ||
Uses a near-optimal maximal munch algorithm | ||
* linear-scan register allocator [TODO] | ||
* Assembler [TODO] | ||
|
||
Written in Scheme! | ||
|