Hi, Fix internal compiler error when using -fprofile-partial-training with AutoFDO by skipping annotation of basic blocks with zero counts to avoid profile incompatibilities.
The ICE manifests as:
gcc/optabs.cc: In function 'int shift_amt_for_vec_perm_mask()':
gcc/optabs.cc:7863:1: internal compiler error: in to_sreal_scale, at
profile-count.cc:352
0x3d91ad3 internal_error(char const*, ...)
../../gcc/gcc/diagnostic-global-context.cc:786
0x3da0e07 fancy_abort(char const*, int, char const*)
../../gcc/gcc/diagnostics/context.cc:1787
0x1e8e5d7 profile_count::to_sreal_scale(profile_count, bool*) const
../../gcc/gcc/profile-count.cc:352
0x1bceb43 analyze_function_body
../../gcc/gcc/ipa-fnsummary.cc:2941
0x1bd0c23 compute_fn_summary(cgraph_node*, bool)
../../gcc/gcc/ipa-fnsummary.cc:3491
This occurs during IPA analysis when basic blocks have incompatible profile
qualities due to forced zero annotations during
partial training, causing to_sreal_scale to fail when computing relative
scaling factors.
Thanks,
Kugan
0001-AutoFDO-Skip-zero-BB-annotation-for-partial-training.patch
Description: 0001-AutoFDO-Skip-zero-BB-annotation-for-partial-training.patch
