Richard Biener wrote:
This replaces the tree -> int hashtable caching hash values by
a pointer_map <hashval_t> and moves it out-of-GC. Likewise
it moves the actual type hashtable out-of-GC.
LTO bootstrapped and tested on x86_64-unknown-linux-gnu, applied.
I think it's due to this patch that bootstrapping into an empty
directory fails during Stage 1 for me with the following message.
Tobias
g++ -c -DIN_GCC_FRONTEND -g -DIN_GCC -fno-exceptions -fno-rtti
-fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings
-Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long
-Wno-variadic-macros -Wno-overlength-strings -fno-common
-DHAVE_CONFIG_H -I. -Ilto -I../../gcc -I../../gcc/lto
-I../../gcc/../include -I../../gcc/../libcpp/include
-I../../gcc/../libdecnumber -I../../gcc/../libdecnumber/bid
-I../libdecnumber -I../../gcc/../libbacktrace -DCLOOG_INT_GMP -o
lto/lto.o -MT lto/lto.o -MMD -MP -MF lto/.deps/lto.TPo ../../gcc/lto/lto.c
In file included from ../../gcc/lto/lto.c:3258:0:
./gt-lto-lto.h:153:6: error: 'type_hash_cache' was not declared in this
scope
&type_hash_cache,
^
./gt-lto-lto.h:155:13: error: 'type_hash_cache' was not declared in this
scope
sizeof (type_hash_cache),
^
./gt-lto-lto.h:161:6: error: 'gimple_types' was not declared in this scope
&gimple_types,
^
./gt-lto-lto.h:163:13: error: 'gimple_types' was not declared in this scope
sizeof (gimple_types),
^
./gt-lto-lto.h:173:6: error: 'type_hash_cache' was not declared in this
scope
&type_hash_cache,
^
./gt-lto-lto.h:175:13: error: 'type_hash_cache' was not declared in this
scope
sizeof (type_hash_cache),
^
./gt-lto-lto.h:180:6: error: 'gimple_types' was not declared in this scope
&gimple_types,
^
./gt-lto-lto.h:182:13: error: 'gimple_types' was not declared in this scope
sizeof (gimple_types),
^
make[3]: *** [lto/lto.o] Error 1
2013-10-14 Richard Biener <rguent...@suse.de>
lto/
* lto.c (gimple_canonical_types): Move out-of GC space.
(canonical_type_hash_cache): Make a pointer-map.
(num_canonical_type_hash_entries, num_canonical_type_hash_queries):
New counters.
(iterative_hash_canonical_type): Adjust.
(read_cgraph_and_symbols): Likewise.
(print_lto_report_1): Likewise.