mirror of git://gcc.gnu.org/git/gcc.git
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:
parent
ac8560785f
commit
8c86248e58
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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))
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue