https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83474
--- Comment #3 from Luis Machado <luis.machado at linaro dot org> --- Another bit of information... On an early investigation (with an unoptimized compiler and unreduced testcase), this bit in profile-count.h was causing the assertion to fail: /* Return true if vlaue can be operated inter-procedurally. */ bool ipa_p () const { return !initialized_p () || m_quality >= profile_guessed_global0; } m_quality was profile_guessed_local, so it was less than profile_guessed_global0.