http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58721
--- Comment #11 from Jan Hubicka <hubicka at gcc dot gnu.org> --- The inlining of perdida also happens with --param large-function-insns=100000. perhaps it indicates we shoud bump this parameter up little bit. The reason why inlining order changed is iztaccihuatl that calls perdida. The function has 78 checks that leads to early exit (because of out of memory I believe). Before the __builtin_expect change we predicted them all with 0.01% probability to exit, while now we predict them with 0.1. Obviously 0.9^78 is a lot less than 0.99^78. Fortran fronend should probably stop using builtin_expect where we can derive the same info from noreturn (as it seems to be the case here), but it is not always. I wonder if we want to add optional probability argument to builtlin_expect? It is not completely trvial addition since expr_expected_value_1 does some propagation and it will need to be extended to handle the probablities, too. Honza