Ping? Thanks, Kugan
> On 2 Mar 2026, at 6:33 pm, Kugan Vivekanandarajah <[email protected]> > wrote: > > External email: Use caution opening links or attachments > > > Ping ? > > > We've seen several instances of this intermittent issue. Given the > profile-dependent nature of the data, the best approach is to ensure > robustness is to check nonzero_p() before the call. This effectively > mitigates the risk of a division by zero. > > Thanks, > Kugan > > > > > >> On 18 Feb 2026, at 2:40 pm, Kugan Vivekanandarajah <[email protected]> >> wrote: >> >> External email: Use caution opening links or attachments >> Hi, >> >> In symbol merging, ipa_merge_profiles() can encounter functions >> where the entry block has an initialized but zero profile count. When >> such counts are used as denominators in apply_scale(), it triggers an >> assertion failure in profile-count.h:1192 (gcc_checking_assert(den.m_val)). >> >> This patch adds nonzero_p checks before attempting to scale profile >> counts, preventing division by zero. >> >> This issue shows up randomly with AutoFDO (including profile bootstrap). >> Tested with bootstrap and regression testing. Also tested with some >> large applications where this first showed up. >> >> gcc/ChangeLog: >> >> * ipa-utils.cc (ipa_merge_profiles): Add nonzero_p() checks >> for srcden and dstden before using them as denominators in >> apply_scale to prevent ICE. >> >> This is hitting quite a few times including in: >> >> during IPA pass: modref >> lto1: internal compiler error: in apply_scale, at profile-count.h:1192 >> 0x2230c13 internal_error(char const*, ...) >> >> /var/jenkins/workspace/GCC_oss-main/gcc/diagnostic-global-context.cc:787 >> 0x899ebf fancy_abort(char const*, int, char const*) >> /var/jenkins/workspace/GCC_oss-main/gcc/diagnostics/context.cc:1812 >> 0x98620f profile_count::apply_scale(profile_count, profile_count) const >> /var/jenkins/workspace/GCC_oss-main/gcc/profile-count.h:1192 >> 0xd190cb ipa_merge_profiles(cgraph_node*, cgraph_node*, bool) >> /var/jenkins/workspace/GCC_oss-main/gcc/ipa-utils.cc:637 >> 0x8f303b lto_symtab_merge_symbols_1 >> /var/jenkins/workspace/GCC_oss-main/gcc/lto/lto-symtab.cc:934 >> 0x8f303b lto_symtab_merge_symbols() >> /var/jenkins/workspace/GCC_oss-main/gcc/lto/lto-symtab.cc:996 >> 0x9027d7 read_cgraph_and_symbols(unsigned int, char const**) >> /var/jenkins/workspace/GCC_oss-main/gcc/lto/lto-common.cc:3003 >> 0x8dce9f lto_main() >> /var/jenkins/workspace/GCC_oss-main/gcc/lto/lto.cc:663 >> <http://lto.cc:663/> >> >> Bootstrapped and regression tested on aavch64-linux-gnu with no new >> regressions. Is this OK? >> >> Thanks, >> Kugan >> >> >> >> >> >> >> <0001-AutoFDO-Fix-ICE-in-ipa_merge_profiles-when-entry-blo.patch> >
