public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Richard Guenther <richard.guenther@gmail.com>
To: Nathan Froyd <froydnj@codesourcery.com>
Cc: gcc-patches@gcc.gnu.org, fortran@gcc.gnu.org, java-patches@gcc.gnu.org
Subject: Re: [4.7 PATCH 00/18] slim down a number of tree nodes
Date: Fri, 11 Mar 2011 13:25:00 -0000	[thread overview]
Message-ID: <AANLkTinwUiaEzKQ6sNttEfXBQ+qQXxDJq43y15ZAAqDi@mail.gmail.com> (raw)
In-Reply-To: <1299817406-16745-1-git-send-email-froydnj@codesourcery.com>

On Fri, Mar 11, 2011 at 5:23 AM, Nathan Froyd <froydnj@codesourcery.com> wrote:
> This patch series does something similar to what:
>
> http://gcc.gnu.org/ml/gcc-patches/2010-11/msg02491.html
>
> did, only it does it in a cleaner way and it addresses the problem more
> generally.  It introduces a separate substructure (base class) for tree
> nodes that include TREE_TYPE so that a tree node can use TREE_TYPE
> without having to deal with TREE_CHAIN.  It then goes about making
> changes where necessary to both use this new substructure and eliminate
> unnecessary TREE_CHAIN usage.
>
> Eliminating the block field from tree_exp would be another nice-to-have
> for 4.7, but that's not on my radar of things to address at the moment.
> (Matz, you want to do that? :)  Eliminating TREE_TYPE from tree_exp as
> suggested on the wiki would be another interesting project, but not one
> I plan on tackling.

I think removing TREE_TYPE from tree_exp isn't worth it, we do not have
many expression trees left with tuples.  Unifying BLOCK with locations
would indeed be nice (but again we don't have many exp trees left).

> The patch series touches every front-end in various places.  I have CC'd
> the appropriate mailing lists with this introductory email, but I will
> only CC those mailing lists on followup patches that touch the
> appropriate FE.
>
> I have not rigorously measured memory savings with this patch.  Based on
> a (very small) sample, this patch saves ~5% of tree memory according to
> dump_tree_statistics...though the amount of tree memory as reported by
> dump_tree_statistics is somewhat suspect, since it doesn't include
> statistics from copy_node_stat.

I thought I had fixed that ... but appearantly I didn't commit that part.

> The patch series has been bootstrapped on x86_64-unknown-linux-gnu, both
> in its entirety and with sub-patches along the way.  Indeed, the patches
> were not developed in this order; the checking bits were introduced
> first, then any bootstrap or testsuite failures were fixed up, then the
> patches were committed in the proper order.

Did you make sure to enable all languages?  And grep for occurances in
backends?

Thanks,
Richard.

> Nathan Froyd (18):
>  add typed_tree structure
>  enforce TREE_CHAIN and TREE_TYPE accesses
>  remove TREE_CHAIN from *_CST nodes
>  remove TREE_CHAIN from SSA_NAME nodes
>  remove TREE_CHAIN from CONSTRUCTOR nodes
>  define CASE_CHAIN accessor for CASE_LABEL_EXPR
>  generalize build_case_label to the rest of the compiler
>  convert cp *FOR_STMTs to use private scope fields
>  convert cp IF_STMTs to use private scope fields
>  convert cp SWITCH_STMTs to use private scope fields
>  mark EXPR_PACK_EXPANSION as typed only
>  make CASE_LABEL_EXPR not abuse TREE_CHAIN
>  move TS_EXP to be a substructure of TS_TYPED
>  move TS_STATEMENT_LIST to be a substructure of TS_TYPED
>  move REAL_IDENTIFIER_TYPE_VALUE to be a field of lang_identifier
>  make TS_IDENTIFIER be a substructure of TS_BASE
>  introduce block_chainon and use BLOCK_CHAIN more
>  make TS_BLOCK a substructure of TS_BASE
>
>  gcc/ada/gcc-interface/ada-tree.h |    2 +-
>  gcc/ada/gcc-interface/misc.c     |   16 ++++++
>  gcc/ada/gcc-interface/trans.c    |    5 +-
>  gcc/ada/gcc-interface/utils.c    |    4 +-
>  gcc/c-decl.c                     |    8 ++-
>  gcc/c-family/c-common.c          |   14 +++++-
>  gcc/c-family/c-common.h          |   20 +++++---
>  gcc/c-family/c-semantics.c       |   28 ++++-------
>  gcc/c-lang.c                     |    2 +
>  gcc/c-parser.c                   |    2 +-
>  gcc/c-typeck.c                   |    2 +-
>  gcc/cp/cp-lang.c                 |   22 +--------
>  gcc/cp/cp-objcp-common.c         |   74 +++++++++++++++++++++++++++
>  gcc/cp/cp-objcp-common.h         |    1 +
>  gcc/cp/cp-tree.def               |   19 ++++---
>  gcc/cp/cp-tree.h                 |   43 ++++++++++------
>  gcc/cp/decl.c                    |   28 ++++++----
>  gcc/cp/decl2.c                   |   20 ++++---
>  gcc/cp/error.c                   |    2 +-
>  gcc/cp/init.c                    |    6 +-
>  gcc/cp/mangle.c                  |   28 +++++++---
>  gcc/cp/name-lookup.c             |   10 ++--
>  gcc/cp/pt.c                      |   40 +++++++++------
>  gcc/cp/repo.c                    |    2 +-
>  gcc/cp/rtti.c                    |    6 +-
>  gcc/cp/search.c                  |    4 +-
>  gcc/cp/semantics.c               |   41 +++++++++------
>  gcc/cp/typeck.c                  |    4 +-
>  gcc/except.c                     |    5 +-
>  gcc/fortran/f95-lang.c           |    8 ++--
>  gcc/fortran/trans-decl.c         |    2 +-
>  gcc/fortran/trans-io.c           |    2 +-
>  gcc/fortran/trans-stmt.c         |   14 ++---
>  gcc/function.c                   |   28 ++++++++++
>  gcc/function.h                   |    1 +
>  gcc/gimplify.c                   |   14 +++---
>  gcc/go/go-lang.c                 |    2 +-
>  gcc/java/decl.c                  |   13 ++---
>  gcc/java/expr.c                  |    9 ++--
>  gcc/java/java-tree.h             |    2 +-
>  gcc/lto-streamer-in.c            |    2 +-
>  gcc/lto-streamer-out.c           |    2 +-
>  gcc/lto-streamer.c               |    1 +
>  gcc/lto/lto-tree.h               |    2 +-
>  gcc/lto/lto.c                    |    3 +-
>  gcc/objc/objc-act.c              |   18 +++++++
>  gcc/objc/objc-act.h              |    1 +
>  gcc/objc/objc-lang.c             |   32 +-----------
>  gcc/objcp/objcp-lang.c           |   48 +-----------------
>  gcc/omp-low.c                    |    7 +--
>  gcc/print-tree.c                 |   11 +---
>  gcc/tree-cfg.c                   |   12 ++--
>  gcc/tree-eh.c                    |   22 +++-----
>  gcc/tree-flow.h                  |    2 +-
>  gcc/tree-inline.c                |    3 +-
>  gcc/tree-iterator.c              |   17 ++----
>  gcc/tree-ssanames.c              |   28 +++-------
>  gcc/tree.c                       |   96 ++++++++++++-----------------------
>  gcc/tree.def                     |    2 +-
>  gcc/tree.h                       |  103 +++++++++++++++++++++++++++++--------
>  gcc/treestruct.def               |    1 +
>  gcc/varasm.c                     |    1 -
>  62 files changed, 535 insertions(+), 432 deletions(-)
>
>

  parent reply	other threads:[~2011-03-11 13:25 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-11  4:23 Nathan Froyd
2011-03-11  4:23 ` [PATCH 04/18] remove TREE_CHAIN from SSA_NAME nodes Nathan Froyd
2011-03-11 13:06   ` Richard Guenther
2011-03-11  4:23 ` [PATCH 05/18] remove TREE_CHAIN from CONSTRUCTOR nodes Nathan Froyd
2011-03-11 13:05   ` Richard Guenther
2011-03-11  4:24 ` [PATCH 16/18] make TS_IDENTIFIER be a substructure of TS_BASE Nathan Froyd
2011-03-11 13:12   ` Richard Guenther
2011-03-11 17:21     ` Nathan Froyd
2011-03-11  4:24 ` [PATCH 07/18] generalize build_case_label to the rest of the compiler Nathan Froyd
2011-03-11 13:01   ` Joseph S. Myers
2011-03-11 13:10     ` Richard Guenther
2011-03-11 14:56   ` Tom Tromey
2011-03-11  4:24 ` [PATCH 03/18] remove TREE_CHAIN from *_CST nodes Nathan Froyd
2011-03-11 13:05   ` Richard Guenther
2011-03-11  4:24 ` [PATCH 14/18] move TS_STATEMENT_LIST to be a substructure of TS_TYPED Nathan Froyd
2011-03-11  6:01   ` Jason Merrill
2011-03-11 12:23     ` Nathan Froyd
2011-03-11  4:24 ` [PATCH 08/18] convert cp *FOR_STMTs to use private scope fields Nathan Froyd
2011-03-11  4:24 ` [PATCH 06/18] define CASE_CHAIN accessor for CASE_LABEL_EXPR Nathan Froyd
2011-03-11 13:07   ` Richard Guenther
2011-03-11  4:24 ` [PATCH 01/18] add typed_tree structure Nathan Froyd
2011-03-11 13:05   ` Richard Guenther
2011-03-11 15:21   ` Michael Matz
2011-03-11  4:24 ` [PATCH 13/18] move TS_EXP to be a substructure of TS_TYPED Nathan Froyd
2011-05-11  0:34   ` Nathan Froyd
2011-05-17 17:51     ` [PING][PATCH " Nathan Froyd
2011-05-23 14:58       ` Nathan Froyd
2011-05-23 15:34         ` Richard Guenther
2011-05-24 18:52           ` Nathan Froyd
2011-05-25  9:59             ` Richard Guenther
2011-03-11  4:24 ` [PATCH 10/18] convert cp SWITCH_STMTs to use private scope fields Nathan Froyd
2011-03-11  4:24 ` [PATCH 15/18] move REAL_IDENTIFIER_TYPE_VALUE to be a field of lang_identifier Nathan Froyd
2011-03-11 13:40   ` Jason Merrill
2011-03-11 14:04     ` Nathan Froyd
2011-03-11 14:20       ` Nathan Froyd
2011-03-11 15:04         ` Jason Merrill
2011-03-11 16:23           ` Nathan Froyd
2011-03-11 17:17             ` Jason Merrill
2011-03-11 14:41     ` Joseph S. Myers
2011-03-11  4:30 ` [PATCH 11/18] mark EXPR_PACK_EXPANSION as typed only Nathan Froyd
2011-03-11  4:30 ` [PATCH 09/18] convert cp IF_STMTs to use private scope fields Nathan Froyd
2011-03-11  4:31 ` [PATCH 02/18] enforce TREE_CHAIN and TREE_TYPE accesses Nathan Froyd
2011-03-11  8:12   ` Mike Stump
2011-03-11 13:21   ` Richard Guenther
2011-03-11 15:24   ` Tom Tromey
2011-03-12 12:13   ` Eric Botcazou
2011-03-21 13:50     ` Nathan Froyd
2011-03-21 17:50       ` Eric Botcazou
2011-04-13  2:43   ` Nathan Froyd
2011-04-13  2:57     ` Diego Novillo
2011-04-13  4:02     ` Ian Lance Taylor
2011-03-11  4:31 ` [PATCH 18/18] make TS_BLOCK a substructure of TS_BASE Nathan Froyd
2011-05-26 18:30   ` Nathan Froyd
2011-03-11  4:31 ` [PATCH 17/18] introduce block_chainon and use BLOCK_CHAIN more Nathan Froyd
2011-03-11 13:15   ` Richard Guenther
2011-03-11 13:19     ` Nathan Froyd
2011-03-11 15:14   ` Tom Tromey
2011-03-12 12:23   ` Eric Botcazou
2011-03-11  4:50 ` [PATCH 12/18] make CASE_LABEL_EXPR not abuse TREE_CHAIN Nathan Froyd
2011-03-11 13:19   ` Richard Guenther
2011-05-10 20:08     ` Nathan Froyd
2011-05-10 20:19     ` Diego Novillo
2011-05-11  9:21       ` Richard Guenther
2011-05-11 19:22   ` H.J. Lu
2011-03-11  8:18 ` [4.7 PATCH 00/18] slim down a number of tree nodes Mike Stump
2011-03-11 16:00   ` Nathan Froyd
2011-03-11 13:25 ` Richard Guenther [this message]
2011-03-11 13:42   ` Nathan Froyd

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=AANLkTinwUiaEzKQ6sNttEfXBQ+qQXxDJq43y15ZAAqDi@mail.gmail.com \
    --to=richard.guenther@gmail.com \
    --cc=fortran@gcc.gnu.org \
    --cc=froydnj@codesourcery.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=java-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).