Commit 03d20231 authored by rguenth's avatar rguenth
Browse files

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.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@170359 138bc75d-0d04-0410-961f-82ee72b054a4
parent 3d87e7a2
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.
2011-02-20 Richard Guenther <rguenther@suse.de>
PR lto/47822
......
......@@ -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. */
}
......
......@@ -849,7 +849,8 @@ lto_output_ts_decl_common_tree_pointers (struct output_block *ob, tree expr,
lto_output_tree_or_ref (ob, DECL_SIZE (expr), ref_p);
lto_output_tree_or_ref (ob, DECL_SIZE_UNIT (expr), ref_p);
if (TREE_CODE (expr) != FUNCTION_DECL)
if (TREE_CODE (expr) != FUNCTION_DECL
&& TREE_CODE (expr) != TRANSLATION_UNIT_DECL)
{
tree initial = DECL_INITIAL (expr);
if (TREE_CODE (expr) == VAR_DECL
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment