https://gcc.gnu.org/bugzilla/show_bug.cgi?id=45273

Jan Hubicka <hubicka at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hubicka at gcc dot gnu.org

--- Comment #23 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Note that with the introduction of profile-count.h I chased away most of uses
of double for profile calculation. In predict.c we have last occurence when
combinindg probabilities from predictors:

          combined_probability = (((double) combined_probability) * probability 
                                  * REG_BR_PROB_BASE / d + 0.5);                

These are still REG_BR_PROB_BASE based (unlike rest of code that uses
profile_probability datatype) since that was easier to have in .def file.

Cast to double is there only to get type wide enough for REG_BR_PROB_BASE third
power in the 32bit x86 era. It is set to 10000 that is roughly 2^14 so 43 bits
(with sign bits) is enough that should be good for all reasonable double
implementations. However we could easily change it to int64_t.

Reply via email to