summaryrefslogtreecommitdiff
path: root/gcc/lto-streamer-in.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2011-02-21 13:38:48 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2011-02-21 13:38:48 +0000
commite292d00367ce0a736a7c1e1433e7920eeb0673cf (patch)
tree5486fd865bb1f6e0283517fb9cf12a043b6de87c /gcc/lto-streamer-in.c
parentc62f4cd9cf70644b7708f5f4eedbfff4c5aa48e2 (diff)
downloadgcc-e292d00367ce0a736a7c1e1433e7920eeb0673cf.tar.gz
re PR bootstrap/47820 (LTO bootstrap failed with bootstrap-profiled)
2011-02-21 Richard Guenther <rguenther@suse.de> PR lto/47820 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers): Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs. (lto_input_ts_block_tree_pointers): Hook a BLOCK into the TUs context. * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers): Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs. From-SVN: r170359
Diffstat (limited to 'gcc/lto-streamer-in.c')
-rw-r--r--gcc/lto-streamer-in.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/gcc/lto-streamer-in.c b/gcc/lto-streamer-in.c
index 5f5b263c4cd..7409c1aca9d 100644
--- a/gcc/lto-streamer-in.c
+++ b/gcc/lto-streamer-in.c
@@ -1975,7 +1975,8 @@ lto_input_ts_decl_common_tree_pointers (struct lto_input_block *ib,
DECL_SIZE (expr) = lto_input_tree (ib, data_in);
DECL_SIZE_UNIT (expr) = lto_input_tree (ib, data_in);
- if (TREE_CODE (expr) != FUNCTION_DECL)
+ if (TREE_CODE (expr) != FUNCTION_DECL
+ && TREE_CODE (expr) != TRANSLATION_UNIT_DECL)
DECL_INITIAL (expr) = lto_input_tree (ib, data_in);
DECL_ATTRIBUTES (expr) = lto_input_tree (ib, data_in);
@@ -2207,6 +2208,13 @@ lto_input_ts_block_tree_pointers (struct lto_input_block *ib,
BLOCK_CHAIN (expr) = BLOCK_SUBBLOCKS (BLOCK_SUPERCONTEXT (expr));
BLOCK_SUBBLOCKS (BLOCK_SUPERCONTEXT (expr)) = expr;
}
+ /* The global block is rooted at the TU decl. Hook it here to
+ avoid the need to stream in this block during WPA time. */
+ else if (BLOCK_SUPERCONTEXT (expr)
+ && TREE_CODE (BLOCK_SUPERCONTEXT (expr)) == TRANSLATION_UNIT_DECL)
+ DECL_INITIAL (BLOCK_SUPERCONTEXT (expr)) = expr;
+ /* The function-level block is connected at the time we read in
+ function bodies for the same reason. */
}