Commit a367df53 by Richard Biener Committed by Richard Biener

tree-streamer.c (streamer_tree_cache_insert_1): Update the index associated with…

tree-streamer.c (streamer_tree_cache_insert_1): Update the index associated with the tree we are supposed to replace.

2013-06-05  Richard Biener  <rguenther@suse.de>

	* tree-streamer.c (streamer_tree_cache_insert_1): Update the
	index associated with the tree we are supposed to replace.
	* tree-streamer-out.c (pack_ts_base_value_fields): Output
	TREE_ASM_WRITTEN as zero for everything but SSA names.

	lto/
	* lto.c (num_merged_types): New global variable.
	(uniquify_nodes): Increase num_merged_types when merging a type.
	(print_lto_report_1): Output the number of merged types.

From-SVN: r199683
parent c99299ff
2013-06-05 Richard Biener <rguenther@suse.de>
* tree-streamer.c (streamer_tree_cache_insert_1): Update the
index associated with the tree we are supposed to replace.
* tree-streamer-out.c (pack_ts_base_value_fields): Output
TREE_ASM_WRITTEN as zero for everything but SSA names.
2013-06-05 David Malcolm <dmalcolm@redhat.com> 2013-06-05 David Malcolm <dmalcolm@redhat.com>
* tree-ssa-structalias.c (call_stmt_vars): Make static. * tree-ssa-structalias.c (call_stmt_vars): Make static.
......
2013-06-05 Richard Biener <rguenther@suse.de>
* lto.c (num_merged_types): New global variable.
(uniquify_nodes): Increase num_merged_types when merging a type.
(print_lto_report_1): Output the number of merged types.
2013-06-01 Jan Hubicka <jh@suse.cz> 2013-06-01 Jan Hubicka <jh@suse.cz>
* lto.c (read_cgraph_and_symbols): Simplify dumping; Replace * lto.c (read_cgraph_and_symbols): Simplify dumping; Replace
......
...@@ -1788,6 +1788,7 @@ lto_register_function_decl_in_symtab (struct data_in *data_in, tree decl) ...@@ -1788,6 +1788,7 @@ lto_register_function_decl_in_symtab (struct data_in *data_in, tree decl)
} }
} }
static unsigned long num_merged_types = 0;
/* Given a streamer cache structure DATA_IN (holding a sequence of trees /* Given a streamer cache structure DATA_IN (holding a sequence of trees
for one compilation unit) go over all trees starting at index FROM until the for one compilation unit) go over all trees starting at index FROM until the
...@@ -1817,7 +1818,10 @@ uniquify_nodes (struct data_in *data_in, unsigned from) ...@@ -1817,7 +1818,10 @@ uniquify_nodes (struct data_in *data_in, unsigned from)
to reset that flag afterwards - nothing that refers to reset that flag afterwards - nothing that refers
to those types is left and they are collected. */ to those types is left and they are collected. */
if (newt != t) if (newt != t)
TREE_VISITED (t) = 1; {
num_merged_types++;
TREE_VISITED (t) = 1;
}
} }
} }
...@@ -3136,6 +3140,7 @@ print_lto_report_1 (void) ...@@ -3136,6 +3140,7 @@ print_lto_report_1 (void)
htab_collisions (type_hash_cache)); htab_collisions (type_hash_cache));
else else
fprintf (stderr, "[%s] GIMPLE type hash cache table is empty\n", pfx); fprintf (stderr, "[%s] GIMPLE type hash cache table is empty\n", pfx);
fprintf (stderr, "[%s] Merged %lu types\n", pfx, num_merged_types);
print_gimple_types_stats (pfx); print_gimple_types_stats (pfx);
print_lto_report (pfx); print_lto_report (pfx);
......
...@@ -87,8 +87,9 @@ pack_ts_base_value_fields (struct bitpack_d *bp, tree expr) ...@@ -87,8 +87,9 @@ pack_ts_base_value_fields (struct bitpack_d *bp, tree expr)
bp_pack_value (bp, TYPE_UNSIGNED (expr), 1); bp_pack_value (bp, TYPE_UNSIGNED (expr), 1);
else else
bp_pack_value (bp, 0, 1); bp_pack_value (bp, 0, 1);
/* We write debug info two times, do not confuse the second one. */ /* We write debug info two times, do not confuse the second one.
bp_pack_value (bp, ((TYPE_P (expr) || TREE_CODE (expr) == TYPE_DECL) The only relevant TREE_ASM_WRITTEN use is on SSA names. */
bp_pack_value (bp, (TREE_CODE (expr) != SSA_NAME
? 0 : TREE_ASM_WRITTEN (expr)), 1); ? 0 : TREE_ASM_WRITTEN (expr)), 1);
if (TYPE_P (expr)) if (TYPE_P (expr))
bp_pack_value (bp, TYPE_ARTIFICIAL (expr), 1); bp_pack_value (bp, TYPE_ARTIFICIAL (expr), 1);
......
...@@ -152,6 +152,7 @@ streamer_tree_cache_insert_1 (struct streamer_tree_cache_d *cache, ...@@ -152,6 +152,7 @@ streamer_tree_cache_insert_1 (struct streamer_tree_cache_d *cache,
the requested location slot. */ the requested location slot. */
ix = *ix_p; ix = *ix_p;
streamer_tree_cache_add_to_node_array (cache, ix, t); streamer_tree_cache_add_to_node_array (cache, ix, t);
*slot = (void *)(size_t) (ix + 1);
} }
/* Indicate that T was already in the cache. */ /* Indicate that T was already in the cache. */
......
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