lto-streamer-out.c (DFS::DFS_write_tree_body): Update outdated comment.
authorRichard Biener <rguenther@suse.de>
Thu, 21 Jun 2018 13:47:48 +0000 (13:47 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Thu, 21 Jun 2018 13:47:48 +0000 (13:47 +0000)
2018-06-21  Richard Biener  <rguenther@suse.de>

* lto-streamer-out.c (DFS::DFS_write_tree_body): Update outdated
comment.  Follow BLOCK_ABSTRACT_ORIGIN unconditionally.
* tree-streamer-in.c (lto_input_ts_block_tree_pointers): Update
comment.
* tree-streamer-out.c (write_ts_block_tree_pointers): Stream
BLOCK_ABSTRACT_ORIGIN unconditionally.

From-SVN: r261847

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

index 8d6e6480d4adaab7811d9b5d2cef0ca23dfa3c36..829fe955c19232ca209576628b572b4efcb97e63 100644 (file)
@@ -1,3 +1,12 @@
+2018-06-21  Richard Biener  <rguenther@suse.de>
+
+       * lto-streamer-out.c (DFS::DFS_write_tree_body): Update outdated
+       comment.  Follow BLOCK_ABSTRACT_ORIGIN unconditionally.
+       * tree-streamer-in.c (lto_input_ts_block_tree_pointers): Update
+       comment.
+       * tree-streamer-out.c (write_ts_block_tree_pointers): Stream
+       BLOCK_ABSTRACT_ORIGIN unconditionally.
+
 2018-06-21  David Malcolm  <dmalcolm@redhat.com>
 
        * ipa-cp.c (ipcp_driver): Set edge_clone_summaries to NULL after
index 49f72e98501b549e26d0bcbea57b6997823f2c67..d9f85bb8108e9b9513b62e71c7d3909b7f0db30b 100644 (file)
@@ -801,10 +801,7 @@ DFS::DFS_write_tree_body (struct output_block *ob,
 
       DFS_follow_tree_edge (DECL_ATTRIBUTES (expr));
 
-      /* Do not follow DECL_ABSTRACT_ORIGIN.  We cannot handle debug information
-        for early inlining so drop it on the floor instead of ICEing in
-        dwarf2out.c.
-        We however use DECL_ABSTRACT_ORIGIN == error_mark_node to mark
+      /* We use DECL_ABSTRACT_ORIGIN == error_mark_node to mark
         declarations which should be eliminated by decl merging. Be sure none
         leaks to this point.  */
       gcc_assert (DECL_ABSTRACT_ORIGIN (expr) != error_mark_node);
@@ -917,20 +914,8 @@ DFS::DFS_write_tree_body (struct output_block *ob,
          DFS_follow_tree_edge (t);
 
       DFS_follow_tree_edge (BLOCK_SUPERCONTEXT (expr));
+      DFS_follow_tree_edge (BLOCK_ABSTRACT_ORIGIN (expr));
 
-      /* Follow BLOCK_ABSTRACT_ORIGIN for the limited cases we can
-        handle - those that represent inlined function scopes.
-        For the drop rest them on the floor instead of ICEing
-        in dwarf2out.c, but keep the notion of whether the block
-        is an inlined block by refering to itself for the sake of
-        tree_nonartificial_location.  */
-      if (inlined_function_outer_scope_p (expr))
-       {
-         tree ultimate_origin = block_ultimate_origin (expr);
-         DFS_follow_tree_edge (ultimate_origin);
-       }
-      else if (BLOCK_ABSTRACT_ORIGIN (expr))
-       DFS_follow_tree_edge (expr);
       /* Do not follow BLOCK_NONLOCALIZED_VARS.  We cannot handle debug
         information for early inlined BLOCKs so drop it on the floor instead
         of ICEing in dwarf2out.c.  */
index 02267406595d1bcda828b0bf27bfa893d776e341..9fd9e721b5ba5fd602d623cf1f05006b5434dcf4 100644 (file)
@@ -927,11 +927,6 @@ lto_input_ts_block_tree_pointers (struct lto_input_block *ib,
   BLOCK_VARS (expr) = streamer_read_chain (ib, data_in);
 
   BLOCK_SUPERCONTEXT (expr) = stream_read_tree (ib, data_in);
-
-  /* Stream BLOCK_ABSTRACT_ORIGIN and BLOCK_SOURCE_LOCATION for
-     the limited cases we can handle - those that represent inlined
-     function scopes.  For the rest them on the floor instead of ICEing in
-     dwarf2out.c.  */
   BLOCK_ABSTRACT_ORIGIN (expr) = stream_read_tree (ib, data_in);
   /* Do not stream BLOCK_NONLOCALIZED_VARS.  We cannot handle debug information
      for early inlined BLOCKs so drop it on the floor instead of ICEing in
index 03145b4cf58b332cb0a78d8ed742c1b488d31b40..29bf06499518658a6853d354484fb0c6b1f8c27a 100644 (file)
@@ -779,20 +779,8 @@ write_ts_block_tree_pointers (struct output_block *ob, tree expr, bool ref_p)
   streamer_write_chain (ob, BLOCK_VARS (expr), ref_p);
 
   stream_write_tree (ob, BLOCK_SUPERCONTEXT (expr), ref_p);
+  stream_write_tree (ob, BLOCK_ABSTRACT_ORIGIN (expr), ref_p);
 
-  /* Stream BLOCK_ABSTRACT_ORIGIN for the limited cases we can handle - those
-     that represent inlined function scopes.
-     For the rest them on the floor instead of ICEing in dwarf2out.c, but
-     keep the notion of whether the block is an inlined block by refering
-     to itself for the sake of tree_nonartificial_location.  */
-  if (inlined_function_outer_scope_p (expr))
-    {
-      tree ultimate_origin = block_ultimate_origin (expr);
-      stream_write_tree (ob, ultimate_origin, ref_p);
-    }
-  else
-    stream_write_tree (ob, (BLOCK_ABSTRACT_ORIGIN (expr)
-                           ? expr : NULL_TREE), ref_p);
   /* Do not stream BLOCK_NONLOCALIZED_VARS.  We cannot handle debug information
      for early inlined BLOCKs so drop it on the floor instead of ICEing in
      dwarf2out.c.  */