lto-streamer-out.c (hash_tree): Do not stream TYPE_ALIAS_SET.

* lto-streamer-out.c (hash_tree): Do not stream TYPE_ALIAS_SET.
	* tree-streamer-out.c (pack_ts_type_common_value_fields): Do not
	stream TYPE_ALIAS_SET.
	* tree-streamer-in.c (unpack_ts_type_common_value_fields): Do not
	stream TYPE_ALIAS_SET.

	* lto.c (compare_tree_sccs_1): Do not compare TYPE_ALIAS_SET.

From-SVN: r231124
This commit is contained in:
Jan Hubicka 2015-12-01 20:13:12 +01:00 committed by Jan Hubicka
parent ac8560785f
commit 8c86248e58
6 changed files with 18 additions and 13 deletions

View File

@ -1,3 +1,11 @@
2015-12-01 Jan Hubicka <hubicka@ucw.cz>
* lto-streamer-out.c (hash_tree): Do not stream TYPE_ALIAS_SET.
* tree-streamer-out.c (pack_ts_type_common_value_fields): Do not
stream TYPE_ALIAS_SET.
* tree-streamer-in.c (unpack_ts_type_common_value_fields): Do not
stream TYPE_ALIAS_SET.
2015-12-01 Nathan Sidwell <nathan@acm.org> 2015-12-01 Nathan Sidwell <nathan@acm.org>
* config/nvptx/nvptx.c (nvptx_function_arg_advance): Don't * config/nvptx/nvptx.c (nvptx_function_arg_advance): Don't

View File

@ -1109,10 +1109,6 @@ hash_tree (struct streamer_tree_cache_d *cache, hash_map<tree, hashval_t> *map,
hstate.commit_flag (); hstate.commit_flag ();
hstate.add_int (TYPE_PRECISION (t)); hstate.add_int (TYPE_PRECISION (t));
hstate.add_int (TYPE_ALIGN (t)); hstate.add_int (TYPE_ALIGN (t));
hstate.add_int ((TYPE_ALIAS_SET (t) == 0
|| (!in_lto_p
&& get_alias_set (t) == 0))
? 0 : -1);
} }
if (CODE_CONTAINS_STRUCT (code, TS_TRANSLATION_UNIT_DECL)) if (CODE_CONTAINS_STRUCT (code, TS_TRANSLATION_UNIT_DECL))

View File

@ -1,3 +1,7 @@
2015-12-01 Jan Hubicka <hubicka@ucw.cz>
* lto.c (compare_tree_sccs_1): Do not compare TYPE_ALIAS_SET.
2015-11-25 Jan Hubicka <jh@suse.cz> 2015-11-25 Jan Hubicka <jh@suse.cz>
* lto-lang.c (lto_post_options): Process flag_lto_linker_output. * lto-lang.c (lto_post_options): Process flag_lto_linker_output.

View File

@ -1166,7 +1166,9 @@ compare_tree_sccs_1 (tree t1, tree t2, tree **map)
compare_values (TYPE_READONLY); compare_values (TYPE_READONLY);
compare_values (TYPE_PRECISION); compare_values (TYPE_PRECISION);
compare_values (TYPE_ALIGN); compare_values (TYPE_ALIGN);
compare_values (TYPE_ALIAS_SET); /* Do not compare TYPE_ALIAS_SET. Doing so introduce ordering issues
with calls to get_alias_set which may initialize it for streamed
in types. */
} }
/* We don't want to compare locations, so there is nothing do compare /* We don't want to compare locations, so there is nothing do compare

View File

@ -366,7 +366,6 @@ unpack_ts_type_common_value_fields (struct bitpack_d *bp, tree expr)
TYPE_RESTRICT (expr) = (unsigned) bp_unpack_value (bp, 1); TYPE_RESTRICT (expr) = (unsigned) bp_unpack_value (bp, 1);
TYPE_USER_ALIGN (expr) = (unsigned) bp_unpack_value (bp, 1); TYPE_USER_ALIGN (expr) = (unsigned) bp_unpack_value (bp, 1);
TYPE_READONLY (expr) = (unsigned) bp_unpack_value (bp, 1); TYPE_READONLY (expr) = (unsigned) bp_unpack_value (bp, 1);
TYPE_ALIAS_SET (expr) = bp_unpack_value (bp, 1) ? 0 : -1;
if (RECORD_OR_UNION_TYPE_P (expr)) if (RECORD_OR_UNION_TYPE_P (expr))
{ {
TYPE_TRANSPARENT_AGGR (expr) = (unsigned) bp_unpack_value (bp, 1); TYPE_TRANSPARENT_AGGR (expr) = (unsigned) bp_unpack_value (bp, 1);

View File

@ -317,13 +317,9 @@ pack_ts_type_common_value_fields (struct bitpack_d *bp, tree expr)
bp_pack_value (bp, TYPE_RESTRICT (expr), 1); bp_pack_value (bp, TYPE_RESTRICT (expr), 1);
bp_pack_value (bp, TYPE_USER_ALIGN (expr), 1); bp_pack_value (bp, TYPE_USER_ALIGN (expr), 1);
bp_pack_value (bp, TYPE_READONLY (expr), 1); bp_pack_value (bp, TYPE_READONLY (expr), 1);
/* Make sure to preserve the fact whether the frontend would assign /* We used to stream TYPE_ALIAS_SET == 0 information to let frontends mark
alias-set zero to this type. Do that only for main variants, because types that are opaque for TBAA. This however did not work as intended,
type variants alias sets are never computed. becuase TYPE_ALIAS_SET == 0 was regularly lost in type merging. */
FIXME: This does not work for pre-streamed builtin types. */
bp_pack_value (bp, (TYPE_ALIAS_SET (expr) == 0
|| (!in_lto_p && TYPE_MAIN_VARIANT (expr) == expr
&& get_alias_set (expr) == 0)), 1);
if (RECORD_OR_UNION_TYPE_P (expr)) if (RECORD_OR_UNION_TYPE_P (expr))
{ {
bp_pack_value (bp, TYPE_TRANSPARENT_AGGR (expr), 1); bp_pack_value (bp, TYPE_TRANSPARENT_AGGR (expr), 1);