Commit 1c3c3f45 by Feng Xue Committed by Feng Xue

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
parent 3ed8f692
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> 2019-11-15 Kwok Cheung Yeung <kcy@codesourcery.com>
* config/gcn/gcn.c (gcn_init_cumulative_args): Call reinit_regs. * config/gcn/gcn.c (gcn_init_cumulative_args): Call reinit_regs.
...@@ -2923,11 +2923,6 @@ update_jump_functions_after_inlining (struct cgraph_edge *cs, ...@@ -2923,11 +2923,6 @@ update_jump_functions_after_inlining (struct cgraph_edge *cs,
for (i = 0; i < count; i++) for (i = 0; i < count; i++)
{ {
struct ipa_jump_func *dst = ipa_get_ith_jump_func (args, 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 class ipa_polymorphic_call_context *dst_ctx
= ipa_get_ith_polymorhic_call_context (args, i); = ipa_get_ith_polymorhic_call_context (args, i);
...@@ -2946,7 +2941,7 @@ update_jump_functions_after_inlining (struct cgraph_edge *cs, ...@@ -2946,7 +2941,7 @@ update_jump_functions_after_inlining (struct cgraph_edge *cs,
continue; continue;
dst_fid = item->value.pass_through.formal_id; 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; item->jftype = IPA_JF_UNKNOWN;
continue; continue;
...@@ -2997,6 +2992,12 @@ update_jump_functions_after_inlining (struct cgraph_edge *cs, ...@@ -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) if (dst->type == IPA_JF_ANCESTOR)
{ {
struct ipa_jump_func *src; struct ipa_jump_func *src;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment