An AI interview about explaining hard things simply, conducted on a dog walk
Matt Godbolt’s blog
- Author
- Matt Godbolt
- Rights
- Copyright 2026 Matt Godbolt. Unless otherwise stated, all content is licensed under the Creative Commons Attribution-NonCommercial 2.5 License.
- Public lists
- davewiner/hackerNewsStars
- Fetched
2025 in Review
What has this year all been about, eh?
Thank you
The end of the 2025 Advent of Compiler Optimisation
When compilers surprise you
Sometimes compilers can surprise and delight even a jaded old engineer like me
Switching it up a bit
Taking a look at the various ways the compiler can optimise switch statements
Clever memory tricks
We learn that compilers have tricks to access memory efficiently
When SIMD Fails: Floating Point Associativity
Why floating point maths doesn't vectorise like integers, and what to do about it
SIMD City: Auto-vectorisation
Doing more with less: vectorising can speed your code up 8x or more!
Chasing your tail
The art of not (directly) coming back: tail call optimisation
Partial inlining
Inlining doesn't have to be all-or-nothing
Inlining - the ultimate optimisation
Copy paste can sometimes be a good thing, at least if the compiler does it for you
Calling all arguments
Knowing how compilers call functions can help with design - and optimisation
Aliasing
Knowing when the compiler can't optimise is important too
When LICM fails us
When aliasing can prevent loop-invariant code motion
Loop-Invariant Code Motion
The compiler can move code outside of loops to speed things up
Unswitching loops for fun and profit
Duplicating loops around can yield some decent optimisations
Pop goes the...population count?
Compilers can take advantage of some very specific instructions
Unrolling loops
Learning when the compiler decides to unroll loops for performance
Induction variables and loops
Compilers can rewrite loops to avoid expensive calculations
Going loopy
Exploring the ways optimisers deal with loop constructs