From: Martin Jambor Date: Tue, 22 Nov 2022 17:22:03 +0000 (+0100) Subject: ipa-cp: Do not consider useless aggregate constants X-Git-Tag: basepoints/gcc-14~2967 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=feeb0d68f1c7085199c3734e6517a3a4b58309ef;p=thirdparty%2Fgcc.git ipa-cp: Do not consider useless aggregate constants When building vectors of known aggregate values, there is no point in including those for parameters which are not used in any way whatsoever. This patch avoids that together with also other kinds of constants. gcc/ChangeLog: 2022-11-13 Martin Jambor * ipa-cp.cc (push_agg_values_from_edge): Do not consider constants in unused aggregate parameters. --- diff --git a/gcc/ipa-cp.cc b/gcc/ipa-cp.cc index f0feb4beb8f6..d5230c7c5e6b 100644 --- a/gcc/ipa-cp.cc +++ b/gcc/ipa-cp.cc @@ -5785,7 +5785,8 @@ push_agg_values_from_edge (struct cgraph_edge *cs, } ipcp_param_lattices *plats = ipa_get_parm_lattices (dest_info, index); - if (plats->aggs_bottom) + if (!ipa_is_param_used (dest_info, index) + || plats->aggs_bottom) continue; push_agg_values_for_index_from_edge (cs, index, res, optimize_self_recursion ? interim @@ -6151,6 +6152,9 @@ decide_whether_version_node (struct cgraph_node *node) for (i = 0; i < count;i++) { + if (!ipa_is_param_used (info, i)) + continue; + class ipcp_param_lattices *plats = ipa_get_parm_lattices (info, i); ipcp_lattice *lat = &plats->itself; ipcp_lattice *ctxlat = &plats->ctxlat;