Remove LTO_STREAMER_DEBUG (PR lto/79489).
authorMartin Liska <mliska@suse.cz>
Tue, 2 May 2017 15:00:47 +0000 (17:00 +0200)
committerMartin Liska <marxin@gcc.gnu.org>
Tue, 2 May 2017 15:00:47 +0000 (15:00 +0000)
2017-05-02  Martin Liska  <mliska@suse.cz>

PR lto/79489.
* lto-streamer-in.c (lto_read_tree_1): Remove
LTO_STREAMER_DEBUG.
* lto-streamer.c (struct tree_hash_entry): Likewise.
(struct tree_entry_hasher): Likewise.
(tree_entry_hasher::hash): Likewise.
(tree_entry_hasher::equal): Likewise.
(lto_streamer_init): Likewise.
(lto_orig_address_map): Likewise.
(lto_orig_address_get): Likewise.
(lto_orig_address_remove): Likewise.
* lto-streamer.h: Likewise.
* tree-streamer-in.c (streamer_alloc_tree): Likewise.
* tree-streamer-out.c (streamer_write_tree_header): Likewise.

From-SVN: r247501

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

index 9ad9ec00fc20eaeb793f6bcc6106c220c858275d..a24887e2e2fa6caaa2bd8a69036d2b66d25c6647 100644 (file)
@@ -1,3 +1,20 @@
+2017-05-02  Martin Liska  <mliska@suse.cz>
+
+       PR lto/79489.
+       * lto-streamer-in.c (lto_read_tree_1): Remove
+       LTO_STREAMER_DEBUG.
+       * lto-streamer.c (struct tree_hash_entry): Likewise.
+       (struct tree_entry_hasher): Likewise.
+       (tree_entry_hasher::hash): Likewise.
+       (tree_entry_hasher::equal): Likewise.
+       (lto_streamer_init): Likewise.
+       (lto_orig_address_map): Likewise.
+       (lto_orig_address_get): Likewise.
+       (lto_orig_address_remove): Likewise.
+       * lto-streamer.h: Likewise.
+       * tree-streamer-in.c (streamer_alloc_tree): Likewise.
+       * tree-streamer-out.c (streamer_write_tree_header): Likewise.
+
 2017-05-02  Sebastian Peryt  <sebastian.peryt@intel.com>
 
        * config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
index 515aa532ce6ebebfb7b66b21eaac092a1230a61d..6da217d558986d20381fa9a10678b2bf1ac08670 100644 (file)
@@ -1337,12 +1337,6 @@ lto_read_tree_1 (struct lto_input_block *ib, struct data_in *data_in, tree expr)
       && TREE_CODE (expr) != FUNCTION_DECL
       && TREE_CODE (expr) != TRANSLATION_UNIT_DECL)
     DECL_INITIAL (expr) = stream_read_tree (ib, data_in);
-
-#ifdef LTO_STREAMER_DEBUG
-  /* Remove the mapping to RESULT's original address set by
-     streamer_alloc_tree.  */
-  lto_orig_address_remove (expr);
-#endif
 }
 
 /* Read the physical representation of a tree node with tag TAG from
index 04d733024d82be2c607928e904103b0a93a337fe..74fe0e259bfd4bc26df31d2ed29ad5fc44d5a0c6 100644 (file)
@@ -257,35 +257,6 @@ print_lto_report (const char *s)
             lto_section_name[i], lto_stats.section_size[i]);
 }
 
-
-#ifdef LTO_STREAMER_DEBUG
-struct tree_hash_entry
-{
-  tree key;
-  intptr_t value;
-};
-
-struct tree_entry_hasher : nofree_ptr_hash <tree_hash_entry>
-{
-  static inline hashval_t hash (const tree_hash_entry *);
-  static inline bool equal (const tree_hash_entry *, const tree_hash_entry *);
-};
-
-inline hashval_t
-tree_entry_hasher::hash (const tree_hash_entry *e)
-{
-  return htab_hash_pointer (e->key);
-}
-
-inline bool
-tree_entry_hasher::equal (const tree_hash_entry *e1, const tree_hash_entry *e2)
-{
-  return (e1->key == e2->key);
-}
-
-static hash_table<tree_entry_hasher> *tree_htab;
-#endif
-
 /* Initialization common to the LTO reader and writer.  */
 
 void
@@ -297,10 +268,6 @@ lto_streamer_init (void)
      handle it.  */
   if (flag_checking)
     streamer_check_handled_ts_structures ();
-
-#ifdef LTO_STREAMER_DEBUG
-  tree_htab = new hash_table<tree_entry_hasher> (31);
-#endif
 }
 
 
@@ -314,65 +281,6 @@ gate_lto_out (void)
          && !seen_error ());
 }
 
-
-#ifdef LTO_STREAMER_DEBUG
-/* Add a mapping between T and ORIG_T, which is the numeric value of
-   the original address of T as it was seen by the LTO writer.  This
-   mapping is useful when debugging streaming problems.  A debugging
-   session can be started on both reader and writer using ORIG_T
-   as a breakpoint value in both sessions.
-
-   Note that this mapping is transient and only valid while T is
-   being reconstructed.  Once T is fully built, the mapping is
-   removed.  */
-
-void
-lto_orig_address_map (tree t, intptr_t orig_t)
-{
-  struct tree_hash_entry ent;
-  struct tree_hash_entry **slot;
-
-  ent.key = t;
-  ent.value = orig_t;
-  slot = tree_htab->find_slot (&ent, INSERT);
-  gcc_assert (!*slot);
-  *slot = XNEW (struct tree_hash_entry);
-  **slot = ent;
-}
-
-
-/* Get the original address of T as it was seen by the writer.  This
-   is only valid while T is being reconstructed.  */
-
-intptr_t
-lto_orig_address_get (tree t)
-{
-  struct tree_hash_entry ent;
-  struct tree_hash_entry **slot;
-
-  ent.key = t;
-  slot = tree_htab->find_slot (&ent, NO_INSERT);
-  return (slot ? (*slot)->value : 0);
-}
-
-
-/* Clear the mapping of T to its original address.  */
-
-void
-lto_orig_address_remove (tree t)
-{
-  struct tree_hash_entry ent;
-  struct tree_hash_entry **slot;
-
-  ent.key = t;
-  slot = tree_htab->find_slot (&ent, NO_INSERT);
-  gcc_assert (slot);
-  free (*slot);
-  tree_htab->clear_slot (slot);
-}
-#endif
-
-
 /* Check that the version MAJOR.MINOR is the correct version number.  */
 
 void
index 854bcd2d75eb2674c165bbaf9bcc2e3deef43747..9ab3007a9dfc1b01d13dec8488bc1b929dc72302 100644 (file)
@@ -27,14 +27,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "gcov-io.h"
 #include "diagnostic.h"
 
-/* Define when debugging the LTO streamer.  This causes the writer
-   to output the numeric value for the memory address of the tree node
-   being emitted.  When debugging a problem in the reader, check the
-   original address that the writer was emitting using lto_orig_address_get.
-   With this value, set a breakpoint in the writer (e.g., lto_output_tree)
-   to trace how the faulty node is being emitted.  */
-/* #define LTO_STREAMER_DEBUG  1  */
-
 /* The encoding for a function consists of the following sections:
 
    1)    The header.
@@ -836,11 +828,6 @@ extern char *lto_get_section_name (int, const char *, struct lto_file_decl_data
 extern void print_lto_report (const char *);
 extern void lto_streamer_init (void);
 extern bool gate_lto_out (void);
-#ifdef LTO_STREAMER_DEBUG
-extern void lto_orig_address_map (tree, intptr_t);
-extern intptr_t lto_orig_address_get (tree);
-extern void lto_orig_address_remove (tree);
-#endif
 extern void lto_check_version (int, int, const char *);
 extern void lto_streamer_hooks_init (void);
 
index f0099c050325b87fe55b6de91cc8d9d4cef628a5..7f7ea7f90ab2b3e11f3f00fe1f83b8f9f00ab9aa 100644 (file)
@@ -566,20 +566,9 @@ streamer_alloc_tree (struct lto_input_block *ib, struct data_in *data_in,
 {
   enum tree_code code;
   tree result;
-#ifdef LTO_STREAMER_DEBUG
-  HOST_WIDE_INT orig_address_in_writer;
-#endif
 
   result = NULL_TREE;
 
-#ifdef LTO_STREAMER_DEBUG
-  /* Read the word representing the memory address for the tree
-     as it was written by the writer.  This is useful when
-     debugging differences between the writer and reader.  */
-  orig_address_in_writer = streamer_read_hwi (ib);
-  gcc_assert ((intptr_t) orig_address_in_writer == orig_address_in_writer);
-#endif
-
   code = lto_tag_to_tree_code (tag);
 
   /* We should never see an SSA_NAME tree.  Only the version numbers of
@@ -630,15 +619,6 @@ streamer_alloc_tree (struct lto_input_block *ib, struct data_in *data_in,
       result = make_node (code);
     }
 
-#ifdef LTO_STREAMER_DEBUG
-  /* Store the original address of the tree as seen by the writer
-     in RESULT's aux field.  This is useful when debugging streaming
-     problems.  This way, a debugging session can be started on
-     both writer and reader with a breakpoint using this address
-     value in both.  */
-  lto_orig_address_map (result, (intptr_t) orig_address_in_writer);
-#endif
-
   return result;
 }
 
index 5cf904493410e78ed08b2034089473d2e25c9afd..05239fb7c25ac16364652443624b3c070a6604ce 100644 (file)
@@ -952,16 +952,6 @@ streamer_write_tree_header (struct output_block *ob, tree expr)
   tag = lto_tree_code_to_tag (code);
   streamer_write_record_start (ob, tag);
 
-  /* The following will cause bootstrap miscomparisons.  Enable with care.  */
-#ifdef LTO_STREAMER_DEBUG
-  /* This is used mainly for debugging purposes.  When the reader
-     and the writer do not agree on a streamed node, the pointer
-     value for EXPR can be used to track down the differences in
-     the debugger.  */
-  gcc_assert ((HOST_WIDE_INT) (intptr_t) expr == (intptr_t) expr);
-  streamer_write_hwi (ob, (HOST_WIDE_INT) (intptr_t) expr);
-#endif
-
   /* The text in strings and identifiers are completely emitted in
      the header.  */
   if (CODE_CONTAINS_STRUCT (code, TS_STRING))