TECH Signal 389
LLVM 23 cuts compile time by 6.75% through hash map and allocator refinements
Illustration only Photo by Parsoa Khorsand on Unsplash
The release notes a 6.75% overall compile-time reduction in -O3 builds, driven by hash-map probing changes, SmallVector push_back tweaks, BumpAllocator clean-ups, dominator-tree representation shifts, and IR data-structure refinements.
Shorter compile times tighten the feedback loop for developers, letting them test changes more quickly. In CI environments the reduction can lower compute consumption and shorten queue wait times.
Written by elseif from the cluster below · every claim links back to a sourceThe three things worth knowing
Hash-map updates moved from quadratic probing to linear probing with better deletion, stored occupancy in a compact bit array, and adopted xxh3 hashing, delivering up to -1.27% compile-time gain.
Moving SmallVector’s trivially-copyable push_back path out-of-line to enable tail-call optimization cut register live ranges and gave a -0.50% improvement.
Changing the dominator tree to a child-sibling representation and using a bump allocator reduced malloc/free calls, contributing -0.50% and -0.21% savings.
THE CLUSTER