diff options
author | Martin Liska <mliska@suse.cz> | 2018-07-02 09:04:01 +0200 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2018-07-02 07:04:01 +0000 |
commit | b412559eaf51e1a6566dcbb16cca3ceba159343e (patch) | |
tree | b12bdf2bd3f800f78c2fd253b1674b509b93fef1 | |
parent | 24e8271910268b3153a05263c718e7e43b2bb7fb (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/ipa-inline.c | 13 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/ipa/pr86323.C | 28 |
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); } +} +} |