Unswitching loops for fun and profit
Loop unswitching is a compiler optimization technique that duplicates loops to eliminate conditional branches inside them. This can yield performance improvements by reducing branching overhead and enabling better instruction-level parallelism.