lto.c (compare_tree_sccs_1): Drop DECL_ERROR_ISSUED, DECL_DEFER_OUTPUT and DECL_IN_TE...
authorJan Hubicka <jh@suse.cz>
Wed, 28 Aug 2013 15:03:43 +0000 (17:03 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Wed, 28 Aug 2013 15:03:43 +0000 (15:03 +0000)
* 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.

From-SVN: r202052

gcc/ChangeLog
gcc/lto-streamer-out.c
gcc/lto/ChangeLog
gcc/lto/lto.c
gcc/print-tree.c
gcc/tree-streamer-out.c
gcc/tree.h

index 371e907afbb3c6cb71b599a1a63b3ff138cf7958..a19826b3e68677d0eade8f3f91591bacc5b7c81a 100644 (file)
@@ -1,3 +1,25 @@
+2013-08-28  Jan Hubicka  <jh@suse.cz>
+
+       * 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  <jakub@redhat.com>
 
        PR middle-end/58257
index ea0ff177c47ea783196fd1e9eae6729db3367e5a..d11756842d36f1d9838a5e96c8fa7958379aad35 100644 (file)
@@ -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))
index 3ffc5f660af1142cc38089eec09825860cc3d7fd..0fb1fc0eedd354d66ddb2e02f7dbc0e6c7a91ae1 100644 (file)
@@ -1,3 +1,9 @@
+2013-08-28  Jan Hubicka  <jh@suse.cz>
+
+       * 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  <jh@suse.cz>
            Martin Liska  <marxin.liska@gmail.com>
 
index c854589c673df7627b67233f1d1c73d8af5455a2..d3d9fabc15133f6b94dfa34bcf393a3f38dc6743 100644 (file)
@@ -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);
index 029c3a25e6dbeff3fc91e354671368ddb1fd59e1..1ee27428714c0394183d260deafd55aaab1d2e22 100644 (file)
@@ -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));
 
index 692a46aae859daf39744cc5567bb20aaf3ef1b2e..095d55936a37b75909ff68d36de55164aff5ea9a 100644 (file)
@@ -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.  */
 }
 
 
index eb017e57f06990759f632973647d8607ca3e8a1d..501448aa0b9d8d78019b86deeeb06c44a26154a6 100644 (file)
@@ -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;