aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-inline-analysis.c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2019-11-13 22:02:11 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2019-11-13 21:02:11 +0000
commitb914768c1968d924d77bbe3f4e707c6105f3682c (patch)
tree8f86df5d2117969032167f987ff195a4f553fe26 /gcc/ipa-inline-analysis.c
parent7b34a284cab5d533552c1df995a88f7167d243bd (diff)
downloadgcc-b914768c1968d924d77bbe3f4e707c6105f3682c.zip
gcc-b914768c1968d924d77bbe3f4e707c6105f3682c.tar.gz
gcc-b914768c1968d924d77bbe3f4e707c6105f3682c.tar.bz2
re PR ipa/92421 (ICE in inline_small_functions, at ipa-inline.c:2001 since r277759)
PR c++/92421 * ipa-prop.c (update_indirect_edges_after_inlining): Mark parameter as used. * ipa-inline.c (recursive_inlining): Reset node cache after inlining. (inline_small_functions): Remove checking ifdef. * ipa-inline-analysis.c (do_estimate_edge_time): Verify cache consistency. * g++.dg/torture/pr92421.C: New testcase. From-SVN: r278159
Diffstat (limited to 'gcc/ipa-inline-analysis.c')
-rw-r--r--gcc/ipa-inline-analysis.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/ipa-inline-analysis.c b/gcc/ipa-inline-analysis.c
index 2acb2be..b45063b 100644
--- a/gcc/ipa-inline-analysis.c
+++ b/gcc/ipa-inline-analysis.c
@@ -210,6 +210,19 @@ do_estimate_edge_time (struct cgraph_edge *edge)
time = e->entry.time;
nonspec_time = e->entry.nonspec_time;
hints = e->entry.hints;
+ if (flag_checking)
+ {
+ sreal chk_time, chk_nonspec_time;
+ int chk_size, chk_min_size;
+
+ ipa_hints chk_hints;
+ ctx.estimate_size_and_time (&chk_size, &chk_min_size,
+ &chk_time, &chk_nonspec_time,
+ &chk_hints);
+ gcc_assert (chk_size == size && chk_time == time
+ && chk_nonspec_time == nonspec_time
+ && chk_hints == hints);
+ }
}
else
{