OSDN Git Service

2010-12-02 Richard Guenther <rguenther@suse.de>
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 2 Dec 2010 12:24:46 +0000 (12:24 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 2 Dec 2010 12:24:46 +0000 (12:24 +0000)
commitd1fb5d85050daf139293338f9b6bf3e961a10e9a
tree41c04417c105cf620efada0e39df75d95915f041
parent1bc5f74fd61853debb9ed9e5f098e9bd12453dc4
2010-12-02  Richard Guenther  <rguenther@suse.de>

PR lto/44871
* gimple.c (canonical_type_hash_cache): New hashtable.
(gimple_type_hash): Make a wrapper around ...
(gimple_type_hash_1): ... this.  Take gtc_mode argument.
(gimple_canonical_type_hash): Likewise.
(gtc_visit): Take a gtc_mode argument.
(gimple_types_compatible_p_1): Likewise. Do not compare struct
tag names or field names when computing canonical types.
(gimple_types_compatible_p): Adjust.
(visit): Take a gtc_mode argument.
(iterative_hash_gimple_type): Likewise.  Do not hash struct tag
names or field names when computing hashes of canonical types.
(gimple_register_canonical_type): Use gimple_canonical_type_hash
for the hash.
(print_gimple_types_stats): Dump stats of canonical_type_hash_cache.
(free_gimple_type_tables): Free canonical_type_hash_cache.

* g++.dg/lto/20101126-1_0.C: New testcase.
* g++.dg/lto/20101126-1_1.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167367 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/gimple.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/lto/20101126-1_0.C [new file with mode: 0644]
gcc/testsuite/g++.dg/lto/20101126-1_1.c [new file with mode: 0644]