https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81318
--- Comment #23 from Jan Hubicka <hubicka at gcc dot gnu.org> --- determine_unlikely_bbs is intended to propagate known to be cold bbs (profile_count::zero) rather than guessed_zero so it seems to do the job correctly here, because we decide to trust the cold attribute (I am still undecided if we don't want to invent unlikely attribute for that). I will take a look why this leads to ICE on propagating frequencies.