aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2018-07-02 09:04:01 +0200
committerMartin Liska <marxin@gcc.gnu.org>2018-07-02 07:04:01 +0000
commitb412559eaf51e1a6566dcbb16cca3ceba159343e (patch)
treeb12bdf2bd3f800f78c2fd253b1674b509b93fef1
parent24e8271910268b3153a05263c718e7e43b2bb7fb (diff)
downloadgcc-b412559eaf51e1a6566dcbb16cca3ceba159343e.zip
gcc-b412559eaf51e1a6566dcbb16cca3ceba159343e.tar.gz
gcc-b412559eaf51e1a6566dcbb16cca3ceba159343e.tar.bz2
Revert one ipa_call_summaries::get to get_create (PR ipa/86323).
2018-07-02 Martin Liska <mliska@suse.cz> PR ipa/86323 * ipa-inline.c (early_inliner): Revert wrongly added ::get call. 2018-07-02 Martin Liska <mliska@suse.cz> PR ipa/86323 * g++.dg/ipa/pr86323.C: New test. From-SVN: r262297
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/ipa-inline.c13
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/ipa/pr86323.C28
4 files changed, 43 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 64ed2f7..bc9edec 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2018-07-02 Martin Liska <mliska@suse.cz>
+
+ PR ipa/86323
+ * ipa-inline.c (early_inliner): Revert wrongly added ::get call.
+
2018-07-02 David Malcolm <dmalcolm@redhat.com>
* dumpfile.c (dump_generic_expr_loc): Undo removal of this
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c
index a62c1ff..a84d1d9 100644
--- a/gcc/ipa-inline.c
+++ b/gcc/ipa-inline.c
@@ -2802,14 +2802,11 @@ early_inliner (function *fun)
for (edge = node->callees; edge; edge = edge->next_callee)
{
/* We have no summary for new bound store calls yet. */
- ipa_call_summary *es = ipa_call_summaries->get (edge);
- if (es != NULL)
- {
- es->call_stmt_size
- = estimate_num_insns (edge->call_stmt, &eni_size_weights);
- es->call_stmt_time
- = estimate_num_insns (edge->call_stmt, &eni_time_weights);
- }
+ ipa_call_summary *es = ipa_call_summaries->get_create (edge);
+ es->call_stmt_size
+ = estimate_num_insns (edge->call_stmt, &eni_size_weights);
+ es->call_stmt_time
+ = estimate_num_insns (edge->call_stmt, &eni_time_weights);
if (edge->callee->decl
&& !gimple_check_call_matching_types (
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index f8b82b5..967956f 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2018-07-02 Martin Liska <mliska@suse.cz>
+
+ PR ipa/86323
+ * g++.dg/ipa/pr86323.C: New test.
+
2018-07-01 Tom de Vries <tdevries@suse.de>
revert:
diff --git a/gcc/testsuite/g++.dg/ipa/pr86323.C b/gcc/testsuite/g++.dg/ipa/pr86323.C
new file mode 100644
index 0000000..6632f35
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ipa/pr86323.C
@@ -0,0 +1,28 @@
+/* { dg-do compile } */
+/* { dg-options "-O3 --param max-early-inliner-iterations=5" } */
+
+char *s;
+namespace a {
+template <class ae> class af {
+public:
+ af(ae);
+};
+typedef af<char *> b;
+namespace ag {
+class ah {
+public:
+ void ai(b aj) { c(aj); }
+ virtual void c(b);
+};
+class d : public ah {
+ void c(b);
+};
+class e {
+ void f(bool);
+ void ai(b aj) { g.ai(aj); }
+ d g;
+};
+void d::c(b) {}
+void e::f(bool) { ai(s); }
+}
+}