home
blog
show
lab
fav
res
ideas
tools
Resources
Collection of my favourite CS-related resources.
Compiler backends:
LLVM
TPDE
A Fast Adaptable Compiler Back-End Framework
QBE
TB
CS gems:
Matters Computational
Compiler IRs:
Efficiently Computing SSA Form and the Control Dependence Graph
Simple and Efficient Construction of Static Single Assignment Form
An Efficient Method of Computing Static Single Assignment Form
Compiler Representations for Heterogeneous Processing
A Simple Graph-Based Intermediate Representation
FIRM - A Graph-Based Intermediate Representation
Lecture Notes on Static Single Assignment Form
Combining Analyses, Combining Optimizations
SSA Translation is an Abstract Interpretation
Semantic reasoning about the sea of nodes
Static Single Assignment Book
SSA - Final
Simple
Code optimization:
Exploiting Superword Level Parallelism with Multimedia Instruction Sets
Linear Scan Register Allocation for SSA Form and Register Constraints
Tailoring Graph-coloring Register Allocation For Runtime Compilation
Optimizing compilation with the Value State Dependence Graph
A Generalized Algorithm for Graph-Coloring Register Allocation
Optimized Interval Splitting in a Linear Scan Register Allocator
Implementation Strategies for Mutable Value Semantics
A Theory of Formal Synthesis via Inductive Learning
Constant Propagation with Conditional Branches
Fast Liveness Checking for SSA-Form Programs
Linear Scan Register Allocation on SSA Form
Common Misconceptions about Compilers
Branch/cmove and compiler optimizations
SSA Elimination after Register Allocation
A Data Locality Optimizing Algorithm
A Simple, Fast Dominance Algorithm
The Solid-State Register Allocator
Linear Scan Register Allocation
A Synthesizing Superoptimizer
Stochastic Superoptimization
Iterated Register Coalescing
Global Value Numbering
Code Factoring in GCC
Function Outlining
Code generation:
Accurate Throughput Prediction of BBs on Recent Intel Microarchitectures
Engineering a Simple, Efficient Code Generator Generator
Perceus: Garbage Free Reference Counting with Reuse
Near-Optimal Instruction Selection on DAGs
Instruction Selection on SSA Graphs
Copy-and-Patch Compilation
X86-64 Instruction Encoding
Assembly Optimization Tips
Modern Microprocessors
Instruction Scheduling
Books on compilers:
Compilers - Principles, Techniques, & Tools
Understanding and Writing Compilers
Compiler Construction
Compiler Design in C