What happens when a hot loop runs through more code than the instruction cache can hold, and why batching work is a design decision the compiler won’t make for you.
Summing a power-of-two-sized matrix column by column is eight times slower than the same loop with one extra element per row. Why cache sets make some addresses collide, and how to spot it.