From c8fb20d8bd45a88c2f000be86936b64ba67ef8e5 Mon Sep 17 00:00:00 2001 From: Yury Gribov Date: Thu, 29 Jun 2017 08:50:21 +0000 Subject: [PATCH] re PR ipa/80565 (ICE at -O2 and -O3 in 32-bit mode (not 64-bit) on x86_64-linux-gnu (in edge_badness, at ipa-inline.c:1028)) 2017-06-29 Yury Gribov PR bootstrap/80565 * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization code. * ipa-inline.h (edge_growth_cache_entry::edge_growth_cache_entry): New function. (reset_edge_growth_cache): Update to use constructor. From-SVN: r249771 --- gcc/ChangeLog | 10 ++++++++++ gcc/ipa-cp.c | 8 ++++++++ gcc/ipa-inline.h | 10 +++++++++- 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5211806..68129a5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2017-06-29 Yury Gribov + + PR bootstrap/80565 + * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization + code. + * ipa-inline.h + (edge_growth_cache_entry::edge_growth_cache_entry): New + function. + (reset_edge_growth_cache): Update to use constructor. + 2017-06-28 Ramana Radhakrishnan * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New. diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c index c7e3c71..ee0aa9f 100644 --- a/gcc/ipa-cp.c +++ b/gcc/ipa-cp.c @@ -159,6 +159,10 @@ public: /* Time benefit and size cost that specializing the function for this value can bring about in it's callees (transitively). */ int prop_time_benefit, prop_size_cost; + + ipcp_value_base () + : local_time_benefit (0), local_size_cost (0), + prop_time_benefit (0), prop_size_cost (0) {} }; /* Describes one particular value stored in struct ipcp_lattice. */ @@ -188,6 +192,10 @@ public: /* True if this valye is currently on the topo-sort stack. */ bool on_stack; + ipcp_value() + : sources (0), next (0), scc_next (0), topo_next (0), + spec_node (0), dfs (0), low_link (0), on_stack (false) {} + void add_source (cgraph_edge *cs, ipcp_value *src_val, int src_idx, HOST_WIDE_INT offset); }; diff --git a/gcc/ipa-inline.h b/gcc/ipa-inline.h index 54c1ed9..4b9a1c2 100644 --- a/gcc/ipa-inline.h +++ b/gcc/ipa-inline.h @@ -28,6 +28,14 @@ struct edge_growth_cache_entry sreal time, nonspec_time; int size; ipa_hints hints; + + edge_growth_cache_entry() + : size (0), hints (0) {} + + edge_growth_cache_entry(int64_t time, int64_t nonspec_time, + int size, ipa_hints hints) + : time (time), nonspec_time (nonspec_time), size (size), + hints (hints) {} }; extern vec edge_growth_cache; @@ -116,7 +124,7 @@ reset_edge_growth_cache (struct cgraph_edge *edge) { if ((int)edge_growth_cache.length () > edge->uid) { - struct edge_growth_cache_entry zero = {0, 0, 0, 0}; + struct edge_growth_cache_entry zero (0, 0, 0, 0); edge_growth_cache[edge->uid] = zero; } } -- 2.7.4