Re:CPU branch prediction evolution over years
by Izkata on Saturday December 31, 2022 @10:02PM
(#34203153)
> Maybe there’s some crazy alternative way things could be done
"Branchless programming" is an umbrella term for techniques in existing programming languages to avoid branches.
Re:CPU branch prediction evolution over years
by astrange on Sunday January 01, 2023 @04:08AM
(#34204850)
It almost always doesn’t work; if a branch can eliminate a single uncached memory read you’d want to keep that branch.
It’s mostly used for things like min/max operations in cases when you don’t have cmov. Or bitwise SIMD programming.
Although it’s interesting to think about how software could help with branch prediction, the simple answer about the kernel thing is that software is the wrong place in the architecture for branch prediction to happen. Maybe there’s some crazy alternative way things could be done, but in anything like the current computing model branch prediction has to happen in hardware.