[Bug lto/45375] [meta-bug] Issues with building Mozilla with LTO
hubicka at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sun Dec 12 23:53:00 GMT 2010
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45375
--- Comment #17 from Jan Hubicka <hubicka at gcc dot gnu.org> 2010-12-12 23:52:52 UTC ---
Current mainline crashes:
Program received signal SIGSEGV, Segmentation fault.
lto_cgraph_replace_node (slot=<value optimized out>, data=<value optimized
out>) at ../../gcc/lto-symtab.c:227
227 if (prevailing_node->same_body_alias)
(gdb) bt
#0 lto_cgraph_replace_node (slot=<value optimized out>, data=<value optimized
out>) at ../../gcc/lto-symtab.c:227
#1 lto_symtab_merge_cgraph_nodes_1 (slot=<value optimized out>, data=<value
optimized out>) at ../../gcc/lto-symtab.c:798
#2 0x0000000000b0ae08 in htab_traverse_noresize (htab=<value optimized out>,
callback=0x60eca0 <lto_symtab_merge_cgraph_nodes_1>, info=0x0) at
../../libiberty/hashtab.c:784
#3 0x00000000004aabf9 in read_cgraph_and_symbols () at
../../gcc/lto/lto.c:2213
#4 lto_main () at ../../gcc/lto/lto.c:2438
#5 0x00000000006cb658 in compile_file (argc=2627, argv=0x11a7460) at
../../gcc/toplev.c:579
#6 do_compile (argc=2627, argv=0x11a7460) at ../../gcc/toplev.c:1874
#7 toplev_main (argc=2627, argv=0x11a7460) at ../../gcc/toplev.c:1937
#8 0x00007ffff6597bc6 in __libc_start_main () from /lib64/libc.so.6
#9 0x0000000000493411 in _start () at ../sysdeps/x86_64/elf/start.S:113
I guess it is fallout of the merging patch. It is weird since previaling_node
is NULL.
_moz_cairo_surface_destroy/567259(-1) @0x7ffebef47c60 (asm:
_moz_cairo_surface_destroy) visibilit: 2 binds_local
called by: CreateSimilarSurface/567227 (0.21 per call)
CreateSimilarSurface/567227 (0.14 per call) Init/567225 (0.39 per call)
_ZN11gfxASurface7ReleaseEv.part.2/567209 (1.00 per call)
calls:
References:
Refering this function:
$5 = void
I also generated profile.
samples % image name app name symbol name
228038 25.3225 lto1 lto1
htab_find_slot_with_hash
82588 9.1710 lto1 lto1
iterative_hash_hashval_t
58000 6.4406 lto1 lto1
type_pair_eq
32557 3.6153 lto1 lto1
gimple_lookup_type_leader
31622 3.5115 lto1 lto1 gtc_visit
29149 3.2369 lto1 lto1 htab_expand
27463 3.0496 lto1 lto1
gimple_type_hash_1
24348 2.7037 lto1 lto1
gimple_types_compatible_p
24217 2.6892 lto1 lto1
inflate_fast
21984 2.4412 lto1 lto1
gimple_types_compatible_p_1
21796 2.4203 libc-2.11.1.so libc-2.11.1.so memset
21700 2.4097 libc-2.11.1.so libc-2.11.1.so _int_malloc
17894 1.9870 lto1 lto1
lookup_type_pair.isra.120.constprop.129
16087 1.7864 lto1 lto1
ggc_set_mark
15719 1.7455 lto1 lto1
gt_ggc_mx_lang_tree_node
Our abuse of hashing is making us slow. It is not only type merging but all
the hashing during streaming in.
More information about the Gcc-bugs
mailing list