diff options
author | Feng Xue <fxue@os.amperecomputing.com> | 2019-11-15 15:03:24 +0000 |
---|---|---|
committer | Feng Xue <fxue@gcc.gnu.org> | 2019-11-15 15:03:24 +0000 |
commit | 1c3c3f455021130c429f57b09ef39bc218bd7fff (patch) | |
tree | 1ecf9583636cefedc6db5a8e84f96ae11829943c | |
parent | 3ed8f692900b356996cdcf0f88746018fbda57ff (diff) | |
download | gcc-1c3c3f455021130c429f57b09ef39bc218bd7fff.zip gcc-1c3c3f455021130c429f57b09ef39bc218bd7fff.tar.gz gcc-1c3c3f455021130c429f57b09ef39bc218bd7fff.tar.bz2 |
re PR ipa/92528 (ICE in ipa_get_parm_lattices since r278219)
2019-11-15 Feng Xue <fxue@os.amperecomputing.com>
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
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/ipa-prop.c | 13 |
2 files changed, 13 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7c963cd..fe8daf4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2019-11-15 Feng Xue <fxue@os.amperecomputing.com> + + 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 <kcy@codesourcery.com> * config/gcn/gcn.c (gcn_init_cumulative_args): Call reinit_regs. diff --git a/gcc/ipa-prop.c b/gcc/ipa-prop.c index f56aa32..9a51b29 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; |