This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug lto/51635] [4.7 regression] ICE in in dwarf2out_finish, at dwarf2out.c:22494 when building Firefox's libxul
- From: "markus at trippelsdorf dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 21 Dec 2011 13:47:16 +0000
- Subject: [Bug lto/51635] [4.7 regression] ICE in in dwarf2out_finish, at dwarf2out.c:22494 when building Firefox's libxul
- Auto-submitted: auto-generated
- References: <bug-51635-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51635
--- Comment #17 from Markus Trippelsdorf <markus at trippelsdorf dot de> 2011-12-21 13:47:16 UTC ---
It's a little bit faster now. But it still takes 9 CPU-minutes
to output all ltrans files. And then the following happens:
At top level:
lto1: internal compiler error: in dwarf2out_finish, at dwarf2out.c:22501
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
make[6]: *** [/tmp/ccQIIdf5.ltrans7.ltrans.o] Error 1
make[6]: *** Waiting for unfinished jobs....
lto1: internal compiler error: in dwarf2out_finish, at dwarf2out.c:22501
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
make[6]: *** [/tmp/ccQIIdf5.ltrans8.ltrans.o] Error 1
lto1: internal compiler error: in dwarf2out_finish, at dwarf2out.c:22501
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
make[6]: *** [/tmp/ccQIIdf5.ltrans10.ltrans.o] Error 1
:-(
During the 9 minutes the following happens:
+ 27.72% lto1-wpa lto1 [.] htab_expand
+ 12.88% lto1-wpa lto1 [.] lto_read_decls
+ 12.04% lto1-wpa lto1 [.] linemap_lookup
+ 8.31% lto1-wpa lto1 [.]
htab_find_slot_with_hash
+ 6.71% lto1-wpa lto1 [.]
iterative_hash_hashval_t
+ 6.51% lto1-wpa lto1 [.] gimple_type_eq
+ 3.74% lto1-wpa lto1 [.] gimple_type_hash
+ 2.60% lto1-wpa libc-2.14.90.so [.] _int_malloc
+ 2.01% lto1-wpa libc-2.14.90.so [.] memset
+ 1.46% lto1-wpa lto1 [.] gtc_visit
+ 1.23% lto1-wpa lto1 [.]
lookup_type_pair.isra.108
+ 1.11% lto1-wpa libc-2.14.90.so [.] _int_free
+ 1.04% swapper [kernel.kallsyms] [k] default_idle
Zoom into htab_expand:
: static inline hashval_t
: htab_mod_m2 (hashval_t hash, htab_t htab)
: {
: const struct prime_ent *p =
&prime_tab[htab->size_prime_index];
: return 1 + htab_mod_1 (hash, p->prime - 2, p->inv_m2,
p->shift);
0.00 : b6e9a4: sub %eax,%r9d
0.00 : b6e9a7: jmp b6e9ba <htab_expand+0x14a>
0.00 : b6e9a9: nopl 0x0(%rax)
: index -= size;
:
: slot = htab->entries + index;
: if (*slot == HTAB_EMPTY_ENTRY)
: return slot;
: else if (*slot == HTAB_DELETED_ENTRY)
5.04 : b6e9b0: cmp $0x1,%rax
6.16 : b6e9b4: je b6ea8b <htab_expand+0x21b>
: abort ();
:
: hash2 = htab_mod_m2 (hash, htab);
: for (;;)
: {
: index += hash2;
0.00 : b6e9ba: add %r9d,%edx
: if (index >= size)
15.48 : b6e9bd: mov %edx,%eax
22.35 : b6e9bf: cmp %rax,%rsi
0.00 : b6e9c2: ja b6e9c8 <htab_expand+0x158>
: index -= size;
0.63 : b6e9c4: sub %esi,%edx
12.78 : b6e9c6: mov %edx,%eax
:
: slot = htab->entries + index;
0.70 : b6e9c8: lea (%r10,%rax,8),%r8
: if (*slot == HTAB_EMPTY_ENTRY)
12.99 : b6e9cc: mov (%r8),%rax
0.63 : b6e9cf: test %rax,%rax
1.96 : b6e9d2: jne b6e9b0 <htab_expand+0x140>
: PTR *q = find_empty_slot_for_expand (htab,
(*htab->hash_f) (x));
:
: *q = x;
: }
:
: p++;
0.00 : b6e9d4: add $0x8,%r13
:
: if (x != HTAB_EMPTY_ENTRY && x != HTAB_DELETED_ENTRY)
: {
: PTR *q = find_empty_slot_for_expand (htab,
(*htab->hash_f) (x));
:
: *q = x;
9.74 : b6e9d8: mov %r14,(%r8)
: }
:
: p++;
: