From 90afe2c9f5c7a47b53fe31da0b06a6f8dda37cce Mon Sep 17 00:00:00 2001 From: Zack Weinberg Date: Fri, 14 May 2004 02:33:00 +0000 Subject: [PATCH] tree.def (documentation): Remove mention of class 'b'. * tree.def (documentation): Remove mention of class 'b'. (BLOCK): Now in class 'x'. * c-common.c (verify_tree): Remove case 'b'. * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'. * calls.c (calls_function_1): Control cannot get past the switch when exp is a BLOCK. * print-tree.c (print_node): Move code for class 'b' to the class 'c'/'x' switch, as case BLOCK. * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise. (unsafe_for_reeval, substitute_placeholder_in_expr) (stabilize_reference_1): Remove case 'b'. * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS of something being 'b' to tests for TREE_CODE of something being BLOCK. * tree-ssa-operands.c (get_expr_operands): Likewise. ada: * trans.c (gnat_stabilize_reference_1): Remove case 'b'. From-SVN: r81831 --- gcc/ChangeLog | 42 +++++++++++++++++++++++++++++------------ gcc/ada/ChangeLog | 36 +++++++++++++++++++---------------- gcc/ada/trans.c | 1 - gcc/c-common.c | 1 - gcc/c-typeck.c | 4 ++-- gcc/calls.c | 5 +++-- gcc/print-tree.c | 19 ++++++++++--------- gcc/tree-browser.c | 10 +++++----- gcc/tree-ssa-operands.c | 2 +- gcc/tree.c | 15 ++++----------- gcc/tree.def | 3 +-- 11 files changed, 76 insertions(+), 62 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 433d599a6cd..ec71bb6eb71 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,21 @@ +2004-05-13 Zack Weinberg + + * tree.def (documentation): Remove mention of class 'b'. + (BLOCK): Now in class 'x'. + * c-common.c (verify_tree): Remove case 'b'. + * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'. + * calls.c (calls_function_1): Control cannot get past the switch + when exp is a BLOCK. + * print-tree.c (print_node): Move code for class 'b' to the class + 'c'/'x' switch, as case BLOCK. + * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise. + (unsafe_for_reeval, substitute_placeholder_in_expr) + (stabilize_reference_1): Remove case 'b'. + * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS + of something being 'b' to tests for TREE_CODE of something being + BLOCK. + * tree-ssa-operands.c (get_expr_operands): Likewise. + 2004-05-13 Diego Novillo * tree-gimple.c: Rename from tree-simple.c. @@ -861,7 +879,7 @@ * simplify-rtx.c (simplify_rtx): Do not handle CONSTANT_P_RTX. * stmt.c (parse_output_constraint): Don't warn for read-write - memory operand. + memory operand. (tail_recursion_args): Use types_compatible_p langhook. (force_label_rtx): Don't look at inline_function_decl. (label_rtx): Set LABEL_PRESERVE_P appropriately. @@ -1219,17 +1237,17 @@ 2004-05-12 Paolo Bonzini Replace several arrays with a struct of arrays. - * combine.c (struct reg_stat): New. - (init_reg_last_arrays): Renamed to... - (init_reg_last): ...this. Callers adjusted. - (reg_stat): New. - (combine_instructions): Allocate it and use it. - (reg_last_death, reg_last_set, reg_last_set_value, - reg_last_set_label, reg_last_set_table_tick, - reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies, - reg_last_set_mode, reg_last_set_nonzero_bits, - reg_last_set_sign_bit_copies): Replace throughout - with items of reg_stat. + * combine.c (struct reg_stat): New. + (init_reg_last_arrays): Renamed to... + (init_reg_last): ...this. Callers adjusted. + (reg_stat): New. + (combine_instructions): Allocate it and use it. + (reg_last_death, reg_last_set, reg_last_set_value, + reg_last_set_label, reg_last_set_table_tick, + reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies, + reg_last_set_mode, reg_last_set_nonzero_bits, + reg_last_set_sign_bit_copies): Replace throughout + with items of reg_stat. 2004-05-11 Kaz Kojima diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 3a057fab8f5..4ae1cfda6e7 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,7 @@ +2004-05-13 Zack Weinberg + + * trans.c (gnat_stabilize_reference_1): Remove case 'b'. + 2004-05-13 Diego Novillo Merge from tree-ssa-20020619-branch. @@ -292,7 +296,7 @@ * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals. - * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb, + * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb, exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use Stand.Boolean_Literals to produce references to entities Standard_False and Standard_True from compile-time computed boolean @@ -584,9 +588,9 @@ 2004-04-23 Laurent GUERBY - * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after + * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after install. - + 2004-04-23 Rainer Orth * Make-lang.in (GNATBIND_OBJS): Add s-addope.o. @@ -643,8 +647,8 @@ * Make-lang.in: Add entry for s-addope.o to GNAT1 objects * s-addope.ads, s-addope.adb: New files. - * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb, - s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb, + * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb, + s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb, s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow System.Address to be non-private and signed. @@ -655,7 +659,7 @@ 2004-04-23 Richard Kenner * trans.c (tree_transform, build_unit_elab): Don't call getdecls. - (tree_transform, case N_If_Statement): Remove non-determinism. + (tree_transform, case N_If_Statement): Remove non-determinism. * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL. @@ -991,7 +995,7 @@ * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram - * sinfo.ads, sinfo.adb: + * sinfo.ads, sinfo.adb: New field Access_To_Subprogram_Definition in Access_Definition nodes * sem_ch6.adb (Process_Formals): Move here the code that creates and @@ -1147,7 +1151,7 @@ PR ada/14988 (partial) * impunit.adb: Fix typo. - + 2004-04-14 Nathanael Nerode * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none, @@ -1226,7 +1230,7 @@ duplication between normal entities and those declared as renamings. No functional change. - * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently + * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently inline functions returning an unconstrained result. 2004-04-08 Eric Botcazou @@ -1839,9 +1843,9 @@ 2004-03-19 Laurent Guerby - * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of + * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of aggregate, allows bootstrap from 3.3 on powerpc-darwin. - + 2004-03-18 Richard Kenner * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking. @@ -2150,7 +2154,7 @@ * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads, i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads, - 5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb, + 5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb, 5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move unchecked conversion to spec to avoid warnings. @@ -2668,7 +2672,7 @@ PR ada/6637, PR ada/5911 Merge with libada-branch: - * config-lang.in: Build libada only when ada is built. + * config-lang.in: Build libada only when ada is built. 2004-02-09 Ed Schonberg @@ -2819,7 +2823,7 @@ 2004-02-04 Ed Schonberg - * sem_prag.adb: + * sem_prag.adb: (Analyze_Pragma, case Warnings): In an inlined body, as in an instance body, an identifier may be wrapped in an unchecked conversion. @@ -3020,7 +3024,7 @@ 2004-01-30 Kelley Cook - * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir). + * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir). (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise. (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise. @@ -3039,7 +3043,7 @@ (Wakeup): Likewise. (Exit_Task): Use Result. (Check_No_Locks): Mark Self_ID unreferenced. - + * 5gtasinf.adb (New_Sproc): Make Attr constant. (Bound_Thread_Attributes): Make Sproc constant. (New_Bound_Thread_Attributes): Likewise. diff --git a/gcc/ada/trans.c b/gcc/ada/trans.c index 841d5c8e629..117a95360dc 100644 --- a/gcc/ada/trans.c +++ b/gcc/ada/trans.c @@ -5431,7 +5431,6 @@ gnat_stabilize_reference_1 (tree e, int force) case 'x': case 't': case 'd': - case 'b': case '<': case 's': case 'e': diff --git a/gcc/c-common.c b/gcc/c-common.c index 9b7206a94c7..11b4b875d2c 100644 --- a/gcc/c-common.c +++ b/gcc/c-common.c @@ -1692,7 +1692,6 @@ verify_tree (tree x, struct tlist **pbefore_sp, struct tlist **pno_sp, case 'r': case '<': case '2': - case 'b': case 'e': case 's': case 'x': diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c index 14270b971ca..6305cc4fb0a 100644 --- a/gcc/c-typeck.c +++ b/gcc/c-typeck.c @@ -640,7 +640,7 @@ same_translation_unit_p (tree t1, tree t2) { case 'd': t1 = DECL_CONTEXT (t1); break; case 't': t1 = TYPE_CONTEXT (t1); break; - case 'b': t1 = BLOCK_SUPERCONTEXT (t1); break; + case 'x': t1 = BLOCK_SUPERCONTEXT (t1); break; /* assume block */ default: abort (); } @@ -649,7 +649,7 @@ same_translation_unit_p (tree t1, tree t2) { case 'd': t2 = DECL_CONTEXT (t2); break; case 't': t2 = TYPE_CONTEXT (t2); break; - case 'b': t2 = BLOCK_SUPERCONTEXT (t2); break; + case 'x': t2 = BLOCK_SUPERCONTEXT (t2); break; /* assume block */ default: abort (); } diff --git a/gcc/calls.c b/gcc/calls.c index e15a96b9c37..35021ea137f 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -259,8 +259,9 @@ calls_function_1 (tree exp, int which) break; } - /* Only expressions and blocks can contain calls. */ - if (! IS_EXPR_CODE_CLASS (class) && class != 'b') + /* Only expressions and blocks can contain calls. + Blocks were handled above. */ + if (! IS_EXPR_CODE_CLASS (class)) return 0; for (i = 0; i < length; i++) diff --git a/gcc/print-tree.c b/gcc/print-tree.c index fd90b181f46..1d8ca961831 100644 --- a/gcc/print-tree.c +++ b/gcc/print-tree.c @@ -569,15 +569,6 @@ print_node (FILE *file, const char *prefix, tree node, int indent) print_node_brief (file, "chain", TREE_CHAIN (node), indent + 4); break; - case 'b': - print_node (file, "vars", BLOCK_VARS (node), indent + 4); - print_node (file, "supercontext", BLOCK_SUPERCONTEXT (node), indent + 4); - print_node (file, "subblocks", BLOCK_SUBBLOCKS (node), indent + 4); - print_node (file, "chain", BLOCK_CHAIN (node), indent + 4); - print_node (file, "abstract_origin", - BLOCK_ABSTRACT_ORIGIN (node), indent + 4); - break; - case 'e': case '<': case '1': @@ -733,6 +724,16 @@ print_node (FILE *file, const char *prefix, tree node, int indent) } break; + case BLOCK: + print_node (file, "vars", BLOCK_VARS (node), indent + 4); + print_node (file, "supercontext", BLOCK_SUPERCONTEXT (node), + indent + 4); + print_node (file, "subblocks", BLOCK_SUBBLOCKS (node), indent + 4); + print_node (file, "chain", BLOCK_CHAIN (node), indent + 4); + print_node (file, "abstract_origin", + BLOCK_ABSTRACT_ORIGIN (node), indent + 4); + break; + default: if (TREE_CODE_CLASS (TREE_CODE (node)) == 'x') lang_hooks.print_xnode (file, node, indent); diff --git a/gcc/tree-browser.c b/gcc/tree-browser.c index f7c6136c51f..891c761e25e 100644 --- a/gcc/tree-browser.c +++ b/gcc/tree-browser.c @@ -239,21 +239,21 @@ browse_tree (tree begin) break; case TB_SUBBLOCKS: - if (head && TREE_CODE_CLASS (TREE_CODE (head)) == 'b') + if (head && TREE_CODE (head) == BLOCK) TB_SET_HEAD (BLOCK_SUBBLOCKS (head)); else TB_WF; break; case TB_SUPERCONTEXT: - if (head && TREE_CODE_CLASS (TREE_CODE (head)) == 'b') + if (head && TREE_CODE (head) == BLOCK) TB_SET_HEAD (BLOCK_SUPERCONTEXT (head)); else TB_WF; break; case TB_VARS: - if (head && TREE_CODE_CLASS (TREE_CODE (head)) == 'b') + if (head && TREE_CODE (head) == BLOCK) TB_SET_HEAD (BLOCK_VARS (head)); else if (head && TREE_CODE (head) == BIND_EXPR) TB_SET_HEAD (TREE_OPERAND (head, 0)); @@ -361,7 +361,7 @@ browse_tree (tree begin) case TB_ABSTRACT_ORIGIN: if (head && TREE_CODE_CLASS (TREE_CODE (head)) == 'd') TB_SET_HEAD (DECL_ABSTRACT_ORIGIN (head)); - else if (head && TREE_CODE_CLASS (TREE_CODE (head)) == 'b') + else if (head && TREE_CODE (head) == BLOCK) TB_SET_HEAD (BLOCK_ABSTRACT_ORIGIN (head)); else TB_WF; @@ -584,7 +584,7 @@ browse_tree (tree begin) case TB_CHAIN: /* Don't go further if it's the last node in this chain. */ - if (head && TREE_CODE_CLASS (TREE_CODE (head)) == 'b') + if (head && TREE_CODE (head) == BLOCK) TB_SET_HEAD (BLOCK_CHAIN (head)); else if (head && TREE_CHAIN (head)) TB_SET_HEAD (TREE_CHAIN (head)); diff --git a/gcc/tree-ssa-operands.c b/gcc/tree-ssa-operands.c index a399e1d2ec9..de5b16d1fd4 100644 --- a/gcc/tree-ssa-operands.c +++ b/gcc/tree-ssa-operands.c @@ -824,7 +824,7 @@ get_expr_operands (tree stmt, tree *expr_p, int flags, voperands_t prev_vops) /* Expressions that make no memory references. */ if (class == 'c' || class == 't' - || class == 'b' + || code == BLOCK || code == FUNCTION_DECL || code == EXC_PTR_EXPR || code == FILTER_EXPR diff --git a/gcc/tree.c b/gcc/tree.c index 33c696ef166..791cc221349 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -155,9 +155,6 @@ tree_size (tree node) case 't': /* a type node */ return sizeof (struct tree_type); - case 'b': /* a lexical block node */ - return sizeof (struct tree_block); - case 'r': /* a reference */ case 'e': /* an expression */ case 's': /* an expression with side effects */ @@ -206,6 +203,7 @@ tree_size (tree node) case EEXIT_NODE: return sizeof (struct tree_eref_common); case STATEMENT_LIST: return sizeof (struct tree_statement_list); + case BLOCK: return sizeof (struct tree_block); default: return lang_hooks.tree_size (code); @@ -252,10 +250,6 @@ make_node_stat (enum tree_code code MEM_STAT_DECL) kind = t_kind; break; - case 'b': /* a lexical block */ - kind = b_kind; - break; - case 's': /* an expression with side effects */ kind = s_kind; break; @@ -284,6 +278,8 @@ make_node_stat (enum tree_code code MEM_STAT_DECL) kind = phi_kind; else if (code == SSA_NAME) kind = ssa_name_kind; + else if (code == BLOCK) + kind = b_kind; else kind = x_kind; break; @@ -1494,7 +1490,6 @@ tree_node_structure (tree t) { case 'd': return TS_DECL; case 't': return TS_TYPE; - case 'b': return TS_BLOCK; case 'r': case '<': case '1': case '2': case 'e': case 's': return TS_EXP; default: /* 'c' and 'x' */ @@ -1521,6 +1516,7 @@ tree_node_structure (tree t) case SSA_NAME: return TS_SSA_NAME; case PLACEHOLDER_EXPR: return TS_COMMON; case STATEMENT_LIST: return TS_STATEMENT_LIST; + case BLOCK: return TS_BLOCK; default: abort (); @@ -1646,7 +1642,6 @@ unsafe_for_reeval (tree expr) case 't': /* a type node */ case 'x': /* something random, like an identifier or an ERROR_MARK. */ case 'd': /* A decl node */ - case 'b': /* A block node */ return 0; case 'e': /* an expression */ @@ -2078,7 +2073,6 @@ substitute_placeholder_in_expr (tree exp, tree obj) { case 'c': case 'd': - case 'b': return exp; case 'x': @@ -2267,7 +2261,6 @@ stabilize_reference_1 (tree e) case 'x': case 't': case 'd': - case 'b': case '<': case 's': case 'e': diff --git a/gcc/tree.def b/gcc/tree.def index ca9cf9f18b0..213367b8dfd 100644 --- a/gcc/tree.def +++ b/gcc/tree.def @@ -24,7 +24,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA /* The third argument can be: 'x' for an exceptional code (fits no category). 't' for a type object code. - 'b' for a lexical block. 'c' for codes for constants. 'd' for codes for declarations (also serving as variable refs). 'r' for codes for references to storage. @@ -86,7 +85,7 @@ DEFTREECODE (TREE_VEC, "tree_vec", 'x', 0) instance of an inline function). TREE_ASM_WRITTEN is nonzero if the block was actually referenced in the generated assembly. */ -DEFTREECODE (BLOCK, "block", 'b', 0) +DEFTREECODE (BLOCK, "block", 'x', 0) /* Each data type is represented by a tree node whose code is one of the following: */ -- 2.30.2