+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>
* 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>
* lto.c (read_cgraph_and_symbols): Simplify dumping; Replace
}
}
+static unsigned long num_merged_types = 0;
/* 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
to reset that flag afterwards - nothing that refers
to those types is left and they are collected. */
if (newt != t)
- TREE_VISITED (t) = 1;
+ {
+ num_merged_types++;
+ TREE_VISITED (t) = 1;
+ }
}
}
htab_collisions (type_hash_cache));
else
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_lto_report (pfx);
bp_pack_value (bp, TYPE_UNSIGNED (expr), 1);
else
bp_pack_value (bp, 0, 1);
- /* We write debug info two times, do not confuse the second one. */
- bp_pack_value (bp, ((TYPE_P (expr) || TREE_CODE (expr) == TYPE_DECL)
+ /* We write debug info two times, do not confuse the second one.
+ 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);
if (TYPE_P (expr))
bp_pack_value (bp, TYPE_ARTIFICIAL (expr), 1);
the requested location slot. */
ix = *ix_p;
streamer_tree_cache_add_to_node_array (cache, ix, t);
+ *slot = (void *)(size_t) (ix + 1);
}
/* Indicate that T was already in the cache. */