This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Fixup INTEGER_CST


> >   2) As we query the type_hash while we are rewritting the types,
> >      we run into instability of the hashtable. This manifests itself
> >      as an ICE when one adds sanity check that while merging function
> >      types their arg types are equivalent, too.
> >      This ICEs compiling i.e. sqlite but I did not really managed to
> >      reduce this.  I tracked it down to the argument type being inserted
> >      into gimple_type_hash but at the time we query the new argument type,
> >      the original is no longer found despite their hashes are equivalent.
> >      The problem is hidden when things fit into the leader cache,
> >      so one needs rather big testcase.
> 
> Ugh.  For reduction you can disable those caches though.  The above
> means there is a disconnect between hashing and comparing.
> Maybe it's something weird with the early out
> 
>       if (TYPE_ARG_TYPES (t1) == TYPE_ARG_TYPES (t2))
>         goto same_types;
> ?

I filled in http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54856 sadly the
testcase I reduced with yesterday tree do not reproduce on today tree on
different machine.  Perhaps it is hash table conflict with GGC or something
like that.

sqlite seems big enough to trigger the bug quite reproducibly. On current
mainline I however need to disable leader cache (that was not true on weekend
on the other machine ;)

Honza


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]