aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2018-06-21 13:47:48 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2018-06-21 13:47:48 +0000
commitf5fe239ec90095b885aef70a8058fdfc03a74340 (patch)
tree02dd721152dc2268b7d933b8468064b3448c7a77
parente67343d7445768ef22523894ec589791f526234c (diff)
downloadgcc-f5fe239ec90095b885aef70a8058fdfc03a74340.zip
gcc-f5fe239ec90095b885aef70a8058fdfc03a74340.tar.gz
gcc-f5fe239ec90095b885aef70a8058fdfc03a74340.tar.bz2
lto-streamer-out.c (DFS::DFS_write_tree_body): Update outdated comment.
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
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/lto-streamer-out.c19
-rw-r--r--gcc/tree-streamer-in.c5
-rw-r--r--gcc/tree-streamer-out.c14
4 files changed, 12 insertions, 35 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8d6e648..829fe95 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c
index 49f72e9..d9f85bb 100644
--- a/gcc/lto-streamer-out.c
+++ b/gcc/lto-streamer-out.c
@@ -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. */
diff --git a/gcc/tree-streamer-in.c b/gcc/tree-streamer-in.c
index 0226740..9fd9e72 100644
--- a/gcc/tree-streamer-in.c
+++ b/gcc/tree-streamer-in.c
@@ -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
diff --git a/gcc/tree-streamer-out.c b/gcc/tree-streamer-out.c
index 03145b4..29bf064 100644
--- a/gcc/tree-streamer-out.c
+++ b/gcc/tree-streamer-out.c
@@ -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. */