This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug ipa/58721] [4.9 Regression] The subroutine perdida is no longer inlined in fatigue.f90


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]