[Bug lto/50165] [4.7 Regression] Huge build time regression (Firefox lto build)
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Aug 24 10:48:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50165
--- Comment #7 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-08-24 10:46:17 UTC ---
(In reply to comment #6)
> (In reply to comment #4)
> > > -
> > > - if (ds1->len == ds2->len)
> > > - return memcmp (ds1->s, ds2->s, ds1->len) == 0;
> > > -
> > > - return 0;
> > > + return strcmp (ds1->s, ds2->s) == 0;
> > > }
> > >
> > > /* Returns a new bit-packing context for bit-packing into S. */
> >
> > Can you check if keeping the ds1->len == ds2->len check in eq_string_slot_node
> > but using strcmp works as well? If not, then it seems ->len is not
> > properly initialized in all cases (which would explain that changing the
> > hash is also important).
>
> No, keeping the (ds1->len == ds2->len) check doesn't work.
Oh dear. I'll leave it for Diego to investigate then :)
At this point (well, and everywhere else, including in the hash function)
gcc_assert (ds1->len == strlen (ds1->s) + 1
&& ds2->len == strlen (ds2->s) + 1);
should hold.
More information about the Gcc-bugs
mailing list