http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59639
--- Comment #2 from Avi Kivity <a...@cloudius-systems.com> --- (In reply to Andrew Pinski from comment #1) > The option you want is -freorder-blocks-and-partition but it only does > something when there are real profiling info (aka > -fprofile-generate/-fprofile-use). No. The function slow_path() will be placed in .text.unlikely, without -freorder-blocks-and-partition, so gcc already knows about cold paths even without this option. Adding -freorder-blocks-and-partition does not change the output, even though gcc knows the probability even without profiling information. This is similar to __builtin_expect(), except that I cannot use __builtin_expect() with asm goto.