Lightning Talk Slot #2: An SSA-based Register Allocator for GHC
summary
Prototype SSA-based allocator for GHC NCG is built from two Castle University papers with a separate spilling phase and combined coloring/coalescing, compared against linear-scan and legacy graph-coloring. Evaluation uses static spill-code counts and runtime benchmarks: overall code is about 0.5% slower, but some benchmarks show up to 60% slowdown and a 25% hotspot slowdown tied to spilling a critical live range. Experiments find loop-invariant spills can be hoisted and that renumbering (a “Chaitin” variant) reduces static spills, so work on spill heuristics and hoisting is the next step.
AI-written summary · about
chapters (11)
- 0:00Introduction
- 0:54Interference graphs
- 1:33Design
- 1:55Benchmark
- 2:11Results
- 2:45Spellcode counts
- 3:17Runtime results
- 3:47Shootout Academy
- 4:22Scatter Plot
- 4:33Imaginary Kahan
- 6:35Outro
related talks
33mLightning Talks II
15mUsing MMTk Garbage Collection in GHC (Lightning Talk)
21mFlow-Analysis-Based Closure Optimization
50mAn insight into Go Garbage Collection
14mOn-Stack Replacement for Program Generators and Source-to-Source Compilers
01h 12mLightning Talks by Simons Institute Fellows
53mFROM SCALA TO ASSEMBLY THE COST OF ABSTACTION REVISITED
25mThe Road Not Taken: Exploring Alias Analysis Based Optimizations Missed by the Compiler
