2010-10-22 Richard Guenther <rguenther@suse.de>
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 22 Oct 2010 17:50:19 +0000 (17:50 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 22 Oct 2010 17:50:19 +0000 (17:50 +0000)
commit7a3ccc3b86a6986577150ec6a2c5cd50e8a83e5f
tree51747a7400d09696fd222abfe130d3208c339e37
parent553f84a319a4d70feae2412c7f65c6e48ff5a89f
2010-10-22  Richard Guenther  <rguenther@suse.de>

* gimple.h (gimple_register_canonical_type): Declare.
* gimple.c (gimple_canonical_types): New global hashtable.
(struct gimple_type_leader_entry_s): New type.
(gimple_type_leader): New global cache.
(gimple_lookup_type_leader): New function.
(gtc_visit): Query the proper cache.
(gimple_types_compatible_p): Likewise.
(gimple_register_type): Use the new cache instead of TYPE_CANONICAL.
(gimple_canonical_type_eq): New function.
(gimple_register_canonical_type): Likewise.
(print_gimple_types_stats): Adjust for gimple_canonical_types.
(free_gimple_type_tables): Likewise.  Free gimple_type_leader.
* tree-ssa.c (useless_type_conversion_p): Do not dispatch to
gimple_types_compatible_p for LTO.

lto/
* lto.c (lto_fixup_type): Fixup TYPE_CANONICAL again, via
the new gimple_register_canonical_type.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165848 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/gimple.c
gcc/gimple.h
gcc/lto/ChangeLog
gcc/lto/lto.c
gcc/tree-ssa.c