Awesome
compilers-resources
A list of compiler (mostly) and programming language related resources
Index
General
Books
Crafting Interpreters - Awesome guide that covers lexing, parsing, compiling the ast to bytecode, garbage collection and a bit of optimization. Extremely useful resource even if it is centered around interpreters.
Compilers, Principles, Techniques and Tools (2nd Edition) (also known as The Dragon's Book) - One of the most popular books ever about compiler design. It covers almost every possible area there is, from the frontend to the backend.
Acwj - A compiler writing journey. A step-to-step introduction to compiler design.
Frontend
Lexers
Parsers
Type systems
Backend
IRs
Sea of Nodes
https://darksi.de/d.sea-of-nodes/
https://github.com/SeaOfNodes/Simple
Implementations
v8 (not sure if this is the right file)
RVSDG
Implementations
JLM - RVSDG's reference implementation.
Rain - An RVSDG implementation in Rust
Optir - An attempt to combine RVSDG and Equivalence graphs
Optimizations
Mem2Reg under the hood - Explains more indepth about mem2reg
Equivalence Graphs (egraphs)
https://bernsteinbear.com/blog/whats-in-an-egraph/
Analysis
Liveness analysis
https://www.cl.cam.ac.uk/teaching/1718/OptComp/slides/lecture03.pdf
https://www.inf.ed.ac.uk/teaching/courses/ct/17-18/slides/llvm-4-liveness.pdf
https://klasses.cs.uchicago.edu/archive/2004/spring/22620-1/docs/liveness.pdf
Assemblers
X86 WinFastCall Reference - A reference for the x86 Windows Fastcall Calling Convention Wasm instruction Reference - Reference of wasm instructions and their encoding
Linkers
General Implementations
LLVM Cranelift Qbe Ygen B3 and B3-rs TurboFan Maglev LibFirm