aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorFeng Xue <fxue@os.amperecomputing.com>2019-11-15 15:03:24 +0000
committerFeng Xue <fxue@gcc.gnu.org>2019-11-15 15:03:24 +0000
commit1c3c3f455021130c429f57b09ef39bc218bd7fff (patch)
tree1ecf9583636cefedc6db5a8e84f96ae11829943c /gcc
parent3ed8f692900b356996cdcf0f88746018fbda57ff (diff)
downloadgcc-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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/ipa-prop.c13
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;