From: Richard Guenther <richard.guenther@gmail.com>
To: Nathan Froyd <froydnj@codesourcery.com>
Cc: gcc-patches@gcc.gnu.org
Subject: Re: [PING][PATCH 13/18] move TS_EXP to be a substructure of TS_TYPED
Date: Wed, 25 May 2011 09:59:00 -0000 [thread overview]
Message-ID: <BANLkTinmq0pipwwq8bjTbA6byfW3RnzvDA@mail.gmail.com> (raw)
In-Reply-To: <20110524173443.GA498@nightcrawler>
On Tue, May 24, 2011 at 7:34 PM, Nathan Froyd <froydnj@codesourcery.com> wrote:
> `0On Mon, May 23, 2011 at 04:58:06PM +0200, Richard Guenther wrote:
>> On Mon, May 23, 2011 at 4:18 PM, Nathan Froyd <froydnj@codesourcery.com> wrote:
>> > On 05/17/2011 11:31 AM, Nathan Froyd wrote:
>> >> On 05/10/2011 04:18 PM, Nathan Froyd wrote:
>> >>> On 03/10/2011 11:23 PM, Nathan Froyd wrote:
>> >>>> After all that, we can finally make tree_exp inherit from typed_tree.
>> >>>> Quite anticlimatic.
>> >>>
>> >>> Ping. http://gcc.gnu.org/ml/gcc-patches/2011-03/msg00559.html
>> >>
>> >> Ping^2.
>> >
>> > Ping^3 to put it in Richi's INBOX. ;)
>>
>> Ok ;)
>>
>> Please check for sizeof () uses of the structs you touched sofar.
>> ISTR a bug about fold-checking.
>
> That doesn't apply here, because I'm not renaming the struct. But I did
> find some problems with LTO when I was rebootstrapping prior to
> committing; not sure how I missed these the first time through, maybe I
> was mistakenly compiling without LTO support. Since we now have things
> being dumped to LTO that don't have TREE_CHAIN, we need to take care to
> not access TREE_CHAIN on such things, which the patch below does.
>
> Tested on x86_64-unknown-linux-gnu. OK to commit?
Ok. Please see if you can adjust the lto-streamer-in/out.c machinery
to consistently handle the new TS_ classes.
Thanks,
Richard.
> -Nathan
>
> gcc/
> * tree.h (struct tree_exp): Inherit from struct tree_typed.
> * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
> instead of TS_COMMON.
>
> gcc/lto/
> * lto.c (lto_ft_typed): New function.
> (lto_ft_common): Call it.
> (lto_ft_constructor): Likewise.
> (lto_ft_expr): Likewise.
> (lto_fixup_prevailing_decls): Check for TS_COMMON before accessing
> TREE_CHAIN.
>
> diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c
> index d64ba18..1067b51 100644
> --- a/gcc/lto/lto.c
> +++ b/gcc/lto/lto.c
> @@ -254,14 +254,20 @@ remember_with_vars (tree t)
>
> static void lto_fixup_types (tree);
>
> -/* Fix up fields of a tree_common T. */
> +/* Fix up fields of a tree_typed T. */
>
> static void
> -lto_ft_common (tree t)
> +lto_ft_typed (tree t)
> {
> - /* Fixup our type. */
> LTO_FIXUP_TREE (TREE_TYPE (t));
> +}
> +
> +/* Fix up fields of a tree_common T. */
>
> +static void
> +lto_ft_common (tree t)
> +{
> + lto_ft_typed (t);
> LTO_FIXUP_TREE (TREE_CHAIN (t));
> }
>
> @@ -398,7 +404,7 @@ lto_ft_constructor (tree t)
> unsigned HOST_WIDE_INT idx;
> constructor_elt *ce;
>
> - LTO_FIXUP_TREE (TREE_TYPE (t));
> + lto_ft_typed (t);
>
> for (idx = 0;
> VEC_iterate(constructor_elt, CONSTRUCTOR_ELTS (t), idx, ce);
> @@ -415,7 +421,7 @@ static void
> lto_ft_expr (tree t)
> {
> int i;
> - lto_ft_common (t);
> + lto_ft_typed (t);
> for (i = TREE_OPERAND_LENGTH (t) - 1; i >= 0; --i)
> LTO_FIXUP_TREE (TREE_OPERAND (t, i));
> }
> @@ -2029,7 +2035,8 @@ lto_fixup_prevailing_decls (tree t)
> {
> enum tree_code code = TREE_CODE (t);
> LTO_NO_PREVAIL (TREE_TYPE (t));
> - LTO_NO_PREVAIL (TREE_CHAIN (t));
> + if (CODE_CONTAINS_STRUCT (code, TS_COMMON))
> + LTO_NO_PREVAIL (TREE_CHAIN (t));
> if (DECL_P (t))
> {
> LTO_NO_PREVAIL (DECL_NAME (t));
> diff --git a/gcc/tree.c b/gcc/tree.c
> index 3357d84..9cc99fe 100644
> --- a/gcc/tree.c
> +++ b/gcc/tree.c
> @@ -380,6 +380,7 @@ initialize_tree_contains_struct (void)
> case TS_COMPLEX:
> case TS_SSA_NAME:
> case TS_CONSTRUCTOR:
> + case TS_EXP:
> MARK_TS_TYPED (code);
> break;
>
> @@ -388,7 +389,6 @@ initialize_tree_contains_struct (void)
> case TS_TYPE_COMMON:
> case TS_LIST:
> case TS_VEC:
> - case TS_EXP:
> case TS_BLOCK:
> case TS_BINFO:
> case TS_STATEMENT_LIST:
> diff --git a/gcc/tree.h b/gcc/tree.h
> index 805fe06..142237f 100644
> --- a/gcc/tree.h
> +++ b/gcc/tree.h
> @@ -1917,7 +1917,7 @@ enum omp_clause_default_kind
> (OMP_CLAUSE_SUBCODE_CHECK (NODE, OMP_CLAUSE_DEFAULT)->omp_clause.subcode.default_kind)
>
> struct GTY(()) tree_exp {
> - struct tree_common common;
> + struct tree_typed typed;
> location_t locus;
> tree block;
> tree GTY ((special ("tree_exp"),
>
next prev parent reply other threads:[~2011-05-25 8:41 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-11 4:23 [4.7 PATCH 00/18] slim down a number of tree nodes 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 03/18] remove TREE_CHAIN from *_CST nodes Nathan Froyd
2011-03-11 13:05 ` Richard Guenther
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 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 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 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 08/18] convert cp *FOR_STMTs to use private scope fields Nathan Froyd
2011-03-11 4:24 ` [PATCH 10/18] convert cp SWITCH_STMTs " 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: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 [this message]
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 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 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 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
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=BANLkTinmq0pipwwq8bjTbA6byfW3RnzvDA@mail.gmail.com \
--to=richard.guenther@gmail.com \
--cc=froydnj@codesourcery.com \
--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).