From 881fe02c8aff7cd2996f136182eae5eba587b923 Mon Sep 17 00:00:00 2001 From: hubicka Date: Wed, 28 Aug 2013 15:03:43 +0000 Subject: [PATCH] * lto.c (compare_tree_sccs_1): Drop DECL_ERROR_ISSUED, DECL_DEFER_OUTPUT and DECL_IN_TEXT_SECTION. (unify_scc): Do checking assert. * lto-streamer-out.c (DFS_write_tree_body): Drop BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX. (hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION. * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Do not read DECL_ERROR_ISSUED. (unpack_ts_decl_with_vis_value_fields): Do not read DECL_DEFER_OUTPUT. (lto_input_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX * tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not write DECL_ERROR_ISSUED.. (pack_ts_decl_with_vis_value_fields): Do not write DECL_DEFER_OUTPUT. (write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX * print-tree.c (print_node): Do not print DECL_ERROR_ISSUED. * tree.h (tree_decl_common): Update comment. (DECL_ERROR_ISSUED): Remove. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202052 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 22 ++++++++++++++++++++++ gcc/lto-streamer-out.c | 26 +++++++++++--------------- gcc/lto/ChangeLog | 6 ++++++ gcc/lto/lto.c | 19 ++++++------------- gcc/print-tree.c | 2 -- gcc/tree-streamer-out.c | 9 +++------ gcc/tree.h | 8 +------- 7 files changed, 49 insertions(+), 43 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 371e907..a19826b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,25 @@ +2013-08-28 Jan Hubicka + + * lto-streamer-out.c (DFS_write_tree_body): Drop + BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX. + (hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN, + BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION. + * tree-streamer-in.c (unpack_ts_decl_common_value_fields): + Do not read DECL_ERROR_ISSUED. + (unpack_ts_decl_with_vis_value_fields): Do not read + DECL_DEFER_OUTPUT. + (lto_input_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN, + BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX + * tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not + write DECL_ERROR_ISSUED.. + (pack_ts_decl_with_vis_value_fields): Do not write + DECL_DEFER_OUTPUT. + (write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN, + BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX + * print-tree.c (print_node): Do not print DECL_ERROR_ISSUED. + * tree.h (tree_decl_common): Update comment. + (DECL_ERROR_ISSUED): Remove. + 2013-08-28 Jakub Jelinek PR middle-end/58257 diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c index ea0ff17..d117568 100644 --- a/gcc/lto-streamer-out.c +++ b/gcc/lto-streamer-out.c @@ -642,9 +642,8 @@ DFS_write_tree_body (struct output_block *ob, FOR_EACH_VEC_SAFE_ELT (BINFO_BASE_ACCESSES (expr), i, t) DFS_follow_tree_edge (t); - DFS_follow_tree_edge (BINFO_INHERITANCE_CHAIN (expr)); - DFS_follow_tree_edge (BINFO_SUBVTT_INDEX (expr)); - DFS_follow_tree_edge (BINFO_VPTR_INDEX (expr)); + /* Do not walk BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX + and BINFO_VPTR_INDEX; these are used by C++ FE only. */ } if (CODE_CONTAINS_STRUCT (code, TS_CONSTRUCTOR)) @@ -748,7 +747,6 @@ hash_tree (struct streamer_tree_cache_d *cache, tree t) v = iterative_hash_host_wide_int (DECL_ALIGN (t), v); if (code == LABEL_DECL) { - v = iterative_hash_host_wide_int (DECL_ERROR_ISSUED (t), v); v = iterative_hash_host_wide_int (EH_LANDING_PAD_NR (t), v); v = iterative_hash_host_wide_int (LABEL_DECL_UID (t), v); } @@ -781,20 +779,19 @@ hash_tree (struct streamer_tree_cache_d *cache, tree t) if (CODE_CONTAINS_STRUCT (code, TS_DECL_WITH_VIS)) { - v = iterative_hash_host_wide_int (DECL_DEFER_OUTPUT (t) - | (DECL_COMMON (t) << 1) - | (DECL_DLLIMPORT_P (t) << 2) - | (DECL_WEAK (t) << 3) - | (DECL_SEEN_IN_BIND_EXPR_P (t) << 4) - | (DECL_COMDAT (t) << 5) + v = iterative_hash_host_wide_int ((DECL_COMMON (t)) + | (DECL_DLLIMPORT_P (t) << 1) + | (DECL_WEAK (t) << 2) + | (DECL_SEEN_IN_BIND_EXPR_P (t) << 3) + | (DECL_COMDAT (t) << 4) | (DECL_VISIBILITY_SPECIFIED (t) << 6), v); v = iterative_hash_host_wide_int (DECL_VISIBILITY (t), v); if (code == VAR_DECL) { + /* DECL_IN_TEXT_SECTION is set during final asm output only. */ v = iterative_hash_host_wide_int (DECL_HARD_REGISTER (t) - | (DECL_IN_TEXT_SECTION (t) << 1) - | (DECL_IN_CONSTANT_POOL (t) << 2), + | (DECL_IN_CONSTANT_POOL (t) << 1), v); v = iterative_hash_host_wide_int (DECL_TLS_MODEL (t), v); } @@ -1021,9 +1018,8 @@ hash_tree (struct streamer_tree_cache_d *cache, tree t) visit (BINFO_VPTR_FIELD (t)); FOR_EACH_VEC_SAFE_ELT (BINFO_BASE_ACCESSES (t), i, b) visit (b); - visit (BINFO_INHERITANCE_CHAIN (t)); - visit (BINFO_SUBVTT_INDEX (t)); - visit (BINFO_VPTR_INDEX (t)); + /* Do not walk BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX + and BINFO_VPTR_INDEX; these are used by C++ FE only. */ } if (CODE_CONTAINS_STRUCT (code, TS_CONSTRUCTOR)) diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog index 3ffc5f6..0fb1fc0 100644 --- a/gcc/lto/ChangeLog +++ b/gcc/lto/ChangeLog @@ -1,3 +1,9 @@ +2013-08-28 Jan Hubicka + + * lto.c (compare_tree_sccs_1): Drop DECL_ERROR_ISSUED, + DECL_DEFER_OUTPUT and DECL_IN_TEXT_SECTION. + (unify_scc): Do checking assert. + 2013-08-06 Jan Hubicka Martin Liska diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c index c854589..d3d9fab 100644 --- a/gcc/lto/lto.c +++ b/gcc/lto/lto.c @@ -1431,9 +1431,8 @@ maybe_remember_with_vars_binfo (tree t) n = vec_safe_length (BINFO_BASE_ACCESSES (t)); for (i = 0; i < n; i++) MAYBE_REMEMBER_WITH_VARS (BINFO_BASE_ACCESS (t, i)); - MAYBE_REMEMBER_WITH_VARS (BINFO_INHERITANCE_CHAIN (t)); - MAYBE_REMEMBER_WITH_VARS (BINFO_SUBVTT_INDEX (t)); - MAYBE_REMEMBER_WITH_VARS (BINFO_VPTR_INDEX (t)); + /* Do not walk BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX + and BINFO_VPTR_INDEX; these are used by C++ FE only. */ n = BINFO_N_BASE_BINFOS (t); for (i = 0; i < n; i++) MAYBE_REMEMBER_WITH_VARS (BINFO_BASE_BINFO (t, i)); @@ -1823,7 +1822,6 @@ compare_tree_sccs_1 (tree t1, tree t2, tree **map) compare_values (DECL_ALIGN); if (code == LABEL_DECL) { - compare_values (DECL_ERROR_ISSUED); compare_values (EH_LANDING_PAD_NR); compare_values (LABEL_DECL_UID); } @@ -1854,7 +1852,6 @@ compare_tree_sccs_1 (tree t1, tree t2, tree **map) if (CODE_CONTAINS_STRUCT (code, TS_DECL_WITH_VIS)) { - compare_values (DECL_DEFER_OUTPUT); compare_values (DECL_COMMON); compare_values (DECL_DLLIMPORT_P); compare_values (DECL_WEAK); @@ -1865,7 +1862,7 @@ compare_tree_sccs_1 (tree t1, tree t2, tree **map) if (code == VAR_DECL) { compare_values (DECL_HARD_REGISTER); - compare_values (DECL_IN_TEXT_SECTION); + /* DECL_IN_TEXT_SECTION is set during final asm output only. */ compare_values (DECL_IN_CONSTANT_POOL); compare_values (DECL_TLS_MODEL); } @@ -2167,12 +2164,8 @@ compare_tree_sccs_1 (tree t1, tree t2, tree **map) compare_tree_edges (BINFO_OFFSET (t1), BINFO_OFFSET (t2)); compare_tree_edges (BINFO_VTABLE (t1), BINFO_VTABLE (t2)); compare_tree_edges (BINFO_VPTR_FIELD (t1), BINFO_VPTR_FIELD (t2)); - compare_tree_edges (BINFO_INHERITANCE_CHAIN (t1), - BINFO_INHERITANCE_CHAIN (t2)); - compare_tree_edges (BINFO_SUBVTT_INDEX (t1), - BINFO_SUBVTT_INDEX (t2)); - compare_tree_edges (BINFO_VPTR_INDEX (t1), - BINFO_VPTR_INDEX (t2)); + /* Do not walk BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX + and BINFO_VPTR_INDEX; these are used by C++ FE only. */ } if (CODE_CONTAINS_STRUCT (code, TS_CONSTRUCTOR)) @@ -2284,7 +2277,7 @@ unify_scc (struct streamer_tree_cache_d *cache, unsigned from, for (unsigned i = 0; i < scc->len; ++i) { TREE_VISITED (scc->entries[i]) = 1; - gcc_assert (!TREE_ASM_WRITTEN (scc->entries[i])); + gcc_checking_assert (!TREE_ASM_WRITTEN (scc->entries[i])); } tree *map = XALLOCAVEC (tree, 2 * len); diff --git a/gcc/print-tree.c b/gcc/print-tree.c index 029c3a2..1ee2742 100644 --- a/gcc/print-tree.c +++ b/gcc/print-tree.c @@ -409,8 +409,6 @@ print_node (FILE *file, const char *prefix, tree node, int indent) if (code == FIELD_DECL && DECL_NONADDRESSABLE_P (node)) fputs (" nonaddressable", file); - if (code == LABEL_DECL && DECL_ERROR_ISSUED (node)) - fputs (" error-issued", file); if (code == LABEL_DECL && EH_LANDING_PAD_NR (node)) fprintf (file, " landing-pad:%d", EH_LANDING_PAD_NR (node)); diff --git a/gcc/tree-streamer-out.c b/gcc/tree-streamer-out.c index 692a46a..095d5593 100644 --- a/gcc/tree-streamer-out.c +++ b/gcc/tree-streamer-out.c @@ -180,7 +180,6 @@ pack_ts_decl_common_value_fields (struct bitpack_d *bp, tree expr) /* Note that we do not write LABEL_DECL_UID. The reader will always assume an initial value of -1 so that the label_to_block_map is recreated by gimple_set_bb. */ - bp_pack_value (bp, DECL_ERROR_ISSUED (expr), 1); bp_pack_var_len_unsigned (bp, EH_LANDING_PAD_NR (expr)); } @@ -225,7 +224,6 @@ pack_ts_decl_wrtl_value_fields (struct bitpack_d *bp, tree expr) static void pack_ts_decl_with_vis_value_fields (struct bitpack_d *bp, tree expr) { - bp_pack_value (bp, DECL_DEFER_OUTPUT (expr), 1); bp_pack_value (bp, DECL_COMMON (expr), 1); bp_pack_value (bp, DECL_DLLIMPORT_P (expr), 1); bp_pack_value (bp, DECL_WEAK (expr), 1); @@ -237,7 +235,7 @@ pack_ts_decl_with_vis_value_fields (struct bitpack_d *bp, tree expr) if (TREE_CODE (expr) == VAR_DECL) { bp_pack_value (bp, DECL_HARD_REGISTER (expr), 1); - bp_pack_value (bp, DECL_IN_TEXT_SECTION (expr), 1); + /* DECL_IN_TEXT_SECTION is set during final asm output only. */ bp_pack_value (bp, DECL_IN_CONSTANT_POOL (expr), 1); bp_pack_value (bp, DECL_TLS_MODEL (expr), 3); } @@ -815,9 +813,8 @@ write_ts_binfo_tree_pointers (struct output_block *ob, tree expr, bool ref_p) FOR_EACH_VEC_SAFE_ELT (BINFO_BASE_ACCESSES (expr), i, t) stream_write_tree (ob, t, ref_p); - stream_write_tree (ob, BINFO_INHERITANCE_CHAIN (expr), ref_p); - stream_write_tree (ob, BINFO_SUBVTT_INDEX (expr), ref_p); - stream_write_tree (ob, BINFO_VPTR_INDEX (expr), ref_p); + /* Do not walk BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX + and BINFO_VPTR_INDEX; these are used by C++ FE only. */ } diff --git a/gcc/tree.h b/gcc/tree.h index eb017e5..501448a 100644 --- a/gcc/tree.h +++ b/gcc/tree.h @@ -2880,8 +2880,7 @@ struct GTY(()) tree_decl_common { unsigned lang_flag_7 : 1; unsigned lang_flag_8 : 1; - /* In LABEL_DECL, this is DECL_ERROR_ISSUED. - In VAR_DECL and PARM_DECL, this is DECL_REGISTER. */ + /* In VAR_DECL and PARM_DECL, this is DECL_REGISTER. */ unsigned decl_flag_0 : 1; /* In FIELD_DECL, this is DECL_BIT_FIELD In VAR_DECL and FUNCTION_DECL, this is DECL_EXTERNAL. @@ -3073,11 +3072,6 @@ struct GTY(()) tree_field_decl { #define EH_LANDING_PAD_NR(NODE) \ (LABEL_DECL_CHECK (NODE)->label_decl.eh_landing_pad_nr) -/* In LABEL_DECL nodes, nonzero means that an error message about - jumping into such a binding contour has been printed for this label. */ -#define DECL_ERROR_ISSUED(NODE) \ - (LABEL_DECL_CHECK (NODE)->decl_common.decl_flag_0) - struct GTY(()) tree_label_decl { struct tree_decl_with_rtl common; int label_decl_uid; -- 2.7.4