notes
Cranelift mid-end optimizers
RFCs and key developments in the evolution of optimizers in Cranelift’s mid-end.
Peepmatic
Introduce peepmatic: a peephole optimizations DSL and peephole optimizer compiler
(2020-05-01)
Remove Peepmatic!!!
(2021-11-17)
CLIF
A New Backend for Cranelift, Part 1: Instruction Selection
(2020-09-18)
ISLE
RFC: design of ISLE instruction-selector DSL
[
PR
] (2021-08-18)
ISLE tutorial from
2021-10-04 Cranelift meeting
(
slides
,
text
)
Cranelift’s Instruction Selector DSL, ISLE: Term-Rewriting Made Practical
(2023-01-20)
RFC: Extended Patterns in ISLE
[
PR
] (2022-04-24)
Lightweight, Modular Verification for WebAssembly-to-Native Instruction Selection
by Alexa VanHattum, Monica Pardeshi,
Chris Fallin
, Adrian Sampson, and Fraser Brown, ASPLOS 2024
æ-graphs
RFC: Cranelift: Using E-Graphs for Verified, Cooperating Middle-End Optimizations
[
PR
] (2022-06-29)
egraph-based midend: draw the rest of the owl (productionized)
(2022-09-23)
ægraphs: Acyclic E-graphs for Efficient Optimization in a Production Compiler
(2023-06-18)
Issues:
cranelift/egraphs: allow simplifying trapping arithmetic
(2023-03-01)
Port divide-by-constant magic number optimizations from simple_preopt to ISLE mid-end
(2023-03-17)
cranelift: Better heuristics for instruction scheduling
(2023-04-20)