The server compiler currently computes block frequencies based on branch estimates and probabilities collected from profiling data.
The frequency data can be leveraged create a block layout that:
- reduces the number of branches emitted
- improves icache locality
- rotates loops to end with a conditional branch
- naturally moves uncommon code sequences out of line without using an arbitrary frequency cutoff
While only modest improvement in performance should be expected, a reduction in the methods for which "spaghetti code" is emitted, should make assembly code more readable.