From f5fe239ec90095b885aef70a8058fdfc03a74340 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Thu, 21 Jun 2018 13:47:48 +0000 Subject: [PATCH] lto-streamer-out.c (DFS::DFS_write_tree_body): Update outdated comment. 2018-06-21 Richard Biener * 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 | 9 +++++++++ gcc/lto-streamer-out.c | 19 ++----------------- gcc/tree-streamer-in.c | 5 ----- gcc/tree-streamer-out.c | 14 +------------- 4 files changed, 12 insertions(+), 35 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8d6e6480d4a..829fe955c19 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2018-06-21 Richard Biener + + * 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 * 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 49f72e98501..d9f85bb8108 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 02267406595..9fd9e721b5b 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 03145b4cf58..29bf0649951 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. */ -- 2.30.2