From 1c3c3f455021130c429f57b09ef39bc218bd7fff Mon Sep 17 00:00:00 2001 From: Feng Xue Date: Fri, 15 Nov 2019 15:03:24 +0000 Subject: [PATCH] re PR ipa/92528 (ICE in ipa_get_parm_lattices since r278219) 2019-11-15 Feng Xue PR ipa/92528 * ipa-prop.c (update_jump_functions_after_inlining): Invalidate aggregate jump function when inlined-to caller has no edge summary. From-SVN: r278300 --- gcc/ChangeLog | 6 ++++++ gcc/ipa-prop.c | 13 +++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7c963cde7ba..fe8daf40888 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2019-11-15 Feng Xue + + PR ipa/92528 + * ipa-prop.c (update_jump_functions_after_inlining): Invalidate + aggregate jump function when inlined-to caller has no edge summary. + 2019-11-15 Kwok Cheung Yeung * config/gcn/gcn.c (gcn_init_cumulative_args): Call reinit_regs. diff --git a/gcc/ipa-prop.c b/gcc/ipa-prop.c index f56aa3240d2..9a51b299678 100644 --- a/gcc/ipa-prop.c +++ b/gcc/ipa-prop.c @@ -2923,11 +2923,6 @@ update_jump_functions_after_inlining (struct cgraph_edge *cs, for (i = 0; i < count; i++) { struct ipa_jump_func *dst = ipa_get_ith_jump_func (args, i); - if (!top) - { - ipa_set_jf_unknown (dst); - continue; - } class ipa_polymorphic_call_context *dst_ctx = ipa_get_ith_polymorhic_call_context (args, i); @@ -2946,7 +2941,7 @@ update_jump_functions_after_inlining (struct cgraph_edge *cs, continue; dst_fid = item->value.pass_through.formal_id; - if (dst_fid >= ipa_get_cs_argument_count (top)) + if (!top || dst_fid >= ipa_get_cs_argument_count (top)) { item->jftype = IPA_JF_UNKNOWN; continue; @@ -2997,6 +2992,12 @@ update_jump_functions_after_inlining (struct cgraph_edge *cs, } } + if (!top) + { + ipa_set_jf_unknown (dst); + continue; + } + if (dst->type == IPA_JF_ANCESTOR) { struct ipa_jump_func *src; -- 2.30.2