public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Martin Liska <mliska@suse.cz>
To: gcc-patches@gcc.gnu.org
Subject: [PATCH 0/9] IPA ICF overhaul
Date: Tue, 06 Aug 2019 15:44:00 -0000	[thread overview]
Message-ID: <cover.1565105736.git.mliska@suse.cz> (raw)
In-Reply-To: <1286db9e-572c-556f-5298-3d301264de95@suse.cz>

Hi.

It's some time I implemented first version of IPA ICF pass. Since that
I experienced more with the GCC internals and now is the right time
to do an overhaul.

Main motivation of changes is to share as many as possible in between
current operand_equal_p and ipa_icf::compare_operand. That's achieved
by a new class operand_compare. That allows use to share and unify
a lot of code. Apart from that I would like to learn current operand_equal_p
to handle new tree types.

Patch can bootstrap on x86_64-linux-gnu and survives regression tests. I also
built Firefox, Godot engine.

Thanks,
Martin

Martin Liska (9):
  Replace int with boolean in predicate functions.
  operand_equal_p: add support for FIELD_DECL
  operand_equal_p: add support for OBJ_TYPE_REF.
  Strengthen alias_ptr_types_compatible_p in LTO mode.
  Come up with an abstraction.
  Integrate that for IPA ICF.
  IPA ICF: remove dead code
  Remove comparison for polymorphic types.
  Remove alias set comparison.

 gcc/alias.c                                   |   7 +-
 gcc/fold-const.c                              | 547 +++++++++++++++---
 gcc/fold-const.h                              |  30 +-
 gcc/ipa-icf-gimple.c                          | 328 ++---------
 gcc/ipa-icf-gimple.h                          |  16 +-
 gcc/ipa-icf.c                                 |  19 +-
 gcc/ipa-icf.h                                 |   3 -
 .../c-c++-common/Wstringop-truncation-4.c     |   2 +-
 gcc/testsuite/gcc.dg/ipa/ipa-icf-40.c         |  32 +
 gcc/testsuite/gcc.dg/{torture => }/pr70740.c  |   3 +-
 gcc/testsuite/gcc.dg/tree-ssa/pr64910-2.c     |   2 +-
 gcc/testsuite/gcc.dg/tree-ssa/pr79352.c       |   2 +-
 gcc/testsuite/gcc.dg/vect/vect-35-big-array.c |   3 +-
 gcc/testsuite/gcc.dg/vect/vect-35.c           |   3 +-
 gcc/testsuite/gfortran.dg/vect/vect-8.f90     |   2 +-
 gcc/tree.c                                    | 273 ---------
 16 files changed, 588 insertions(+), 684 deletions(-)
 create mode 100644 gcc/testsuite/gcc.dg/ipa/ipa-icf-40.c
 rename gcc/testsuite/gcc.dg/{torture => }/pr70740.c (77%)

-- 
2.22.0

  reply	other threads:[~2019-08-06 15:43 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-22 12:50 [RFC] operand_equal_p with valueization Jan Hubicka
2015-05-22 13:40 ` Richard Biener
2015-05-22 14:12   ` Jan Hubicka
2015-05-26  8:18     ` Richard Biener
2015-05-26 19:09       ` Jan Hubicka
2015-05-27  8:49         ` Richard Biener
2019-06-18 11:10           ` [RFC] " Martin Liška
2019-08-06 15:44             ` Martin Liska [this message]
2019-08-06 15:43               ` [PATCH 2/9] operand_equal_p: add support for FIELD_DECL Martin Liska
2019-08-07 12:21                 ` Richard Biener
2019-08-15 14:19                   ` Jan Hubicka
2019-08-16  9:28                     ` Richard Biener
2019-08-16 12:17                       ` Jan Hubicka
2019-09-11 12:58                         ` Martin Liška
2019-08-06 15:43               ` [PATCH 4/9] Strengthen alias_ptr_types_compatible_p in LTO mode Martin Liska
2019-08-07 12:05                 ` Richard Biener
2019-08-08 12:09                   ` Martin Liška
2019-08-09 11:20                     ` Richard Biener
2019-08-06 15:43               ` [PATCH 8/9] Remove comparison for polymorphic types Martin Liska
2019-08-06 15:43               ` [PATCH 1/9] Replace int with boolean in predicate functions Martin Liska
2019-08-07 12:38                 ` Richard Biener
2019-08-06 15:43               ` [PATCH 7/9] IPA ICF: remove dead code Martin Liska
2019-08-08 14:44                 ` Jeff Law
2019-08-06 15:43               ` [PATCH 6/9] Integrate that for IPA ICF Martin Liska
2019-08-16 11:10                 ` Martin Liška
2019-08-06 15:43               ` [PATCH 5/9] Come up with an abstraction Martin Liska
2019-08-08 16:29                 ` Michael Matz
2019-08-12 11:49                   ` Martin Liška
2019-08-12 12:27                     ` Richard Biener
2019-08-12 12:43                       ` Martin Liška
2019-08-12 13:26                         ` Richard Biener
2019-08-12 14:48                           ` Martin Liška
2019-08-14 13:17                             ` Richard Biener
2019-08-14 13:50                               ` Martin Liška
2019-08-14 14:38                                 ` Richard Biener
2019-08-16 11:06                                   ` Martin Liška
2019-09-18  7:56                                     ` Martin Liška
2019-09-19 11:30                                       ` Richard Biener
2019-08-12 13:40                     ` Michael Matz
2019-08-09 11:48                 ` Richard Biener
2019-08-06 15:43               ` [PATCH 9/9] Remove alias set comparison Martin Liska
2019-08-07 15:58                 ` Martin Sebor
2019-08-08  8:43                   ` Martin Liška
2019-08-08 15:21                     ` Martin Sebor
2019-08-08 14:44                 ` Jeff Law
2019-08-06 15:55               ` [PATCH 3/9] operand_equal_p: add support for OBJ_TYPE_REF Martin Liska
2019-08-07 12:09                 ` Richard Biener
2019-08-15 15:44                   ` Jan Hubicka
2019-08-16  9:25                     ` Richard Biener
2019-08-16 12:11                       ` Jan Hubicka
2019-08-19 14:03                         ` Richard Biener
2019-08-19 15:12                           ` Jan Hubicka
2019-08-20 14:29                             ` Richard Biener
2019-08-20 14:42                               ` Jan Hubicka
2019-09-13 12:30                               ` Martin Liška
2019-09-16  6:45                                 ` Richard Biener
2019-08-16 11:53               ` [PATCH 10/N] Use const_tree more in IPA ICF Martin Liška
2019-08-19 13:57                 ` Richard Biener
2019-10-30 11:54               ` [PATCH 0/9] IPA ICF overhaul Martin Liška

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover.1565105736.git.mliska@suse.cz \
    --to=mliska@suse.cz \
    --cc=gcc-patches@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).