Code layout algorithm rework.
The gist of this is:
- Use dominator analysis to determine loop levels.
- Based on loop information and branching probabilities determine edge frequencies.
- Use edge frequencies to create a better code layout.
Currently this results in 1.9% better performance at the cost of 2% longer compile times on nofib.