lto.c (iterative_hash_canonical_type): Always recurse for pointers.
authorJan Hubicka <hubicka@ucw.cz>
Sat, 21 Nov 2015 23:59:49 +0000 (00:59 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Sat, 21 Nov 2015 23:59:49 +0000 (23:59 +0000)
commitf85d24870891e785a86e1c394ca559953b262d2d
tree8ce584973badca7655229ceeb55de6f4eed7e8d7
parentfeb391fc5d47f7bd3860fe192a7a73531cbde77f
lto.c (iterative_hash_canonical_type): Always recurse for pointers.

* lto.c (iterative_hash_canonical_type): Always recurse for pointers.
(gimple_register_canonical_type_1): Check that pointers do not get
canonical types.
(gimple_register_canonical_type): Do not register pointers.

* tree.c (build_pointer_type_for_mode,build_reference_type_for_mode):
In LTO we do not compute TYPE_CANONICAL of pointers.
(gimple_canonical_types_compatible_p): Improve coments; sanity check
that pointers do not have canonical type that would make us believe
they are different.
* alias.c (get_alias_set): Do structural type equality on pointers;
enable pointer path for LTO; also glob pointer to vector with pointer
to vector element; glob pointers and references for LTO; do more strict
sanity checking about build_pointer_type returning the canonical type
which is also the main variant.
(record_component_aliases): When component type is pointer and we
do LTO; record void_type_node alias set.

From-SVN: r230715
gcc/ChangeLog
gcc/alias.c
gcc/lto/ChangeLog
gcc/lto/lto.c
gcc/tree.c