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
This commit is contained in:
Richard Biener 2013-06-05 08:21:02 +00:00 committed by Richard Biener
parent c99299ff31
commit a367df532e
5 changed files with 23 additions and 3 deletions

View File

@ -1,3 +1,10 @@
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.

View File

@ -1,3 +1,9 @@
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

View File

@ -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)
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)
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);

View File

@ -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);

View File

@ -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. */