diff options
author | Richard Guenther <rguenther@suse.de> | 2011-02-21 13:38:48 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2011-02-21 13:38:48 +0000 |
commit | e292d00367ce0a736a7c1e1433e7920eeb0673cf (patch) | |
tree | 5486fd865bb1f6e0283517fb9cf12a043b6de87c /gcc/lto-streamer-in.c | |
parent | c62f4cd9cf70644b7708f5f4eedbfff4c5aa48e2 (diff) | |
download | gcc-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.c | 10 |
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. */ } |