Yes, I see. Thanks for taking this patch. Cheers, Fei.
> > On 12/30/2013, 2:27 AM, Yangfei (Felix) wrote: > > Add one entry to ChangeLog: > > > > Index: gcc/ChangeLog > > > ================================================================ > === > > --- gcc/ChangeLog (revision 206236) > > +++ gcc/ChangeLog (working copy) > > @@ -1,3 +1,8 @@ > > +2013-12-30 Felix Yang <felix.y...@huawei.com> > > + > > + * gcc/ira-costs.c (cost_classes_hasher::equal): memcmp return 0 if > no > > + difference exists for HV1 and HV2. > > + > > Index: gcc/ira-costs.c > > > ================================================================ > === > > --- gcc/ira-costs.c (revision 206236) > > +++ gcc/ira-costs.c (working copy) > > @@ -155,7 +155,7 @@ inline bool > > cost_classes_hasher::equal (const value_type *hv1, const compare_type > *hv2) > > { > > return hv1->num == hv2->num && memcmp (hv1->classes, > hv2->classes, > > - sizeof (enum reg_class) * hv1->num); > > + sizeof (enum reg_class) * hv1->num) == > > 0; > > } > > > > /* Delete cost classes info V from the hash table. */ > > > > Thanks for finding this typo and pointing this out. The probability is very > small > that this typo results in different code generation (as a hash is used first > for > accessing hash table) and is zero for wrong code generation. But it results > in > wasting GCC memory by duplication of the same cover class set in the hash > table. > > As for the patch. The changelog entry should have ira-costs.c not > gcc/ira-costs.c. Another thing, the line should have less 80 chars. > > I see that you have no write access to GCC repository. I'll commit the > modified version of your patch by myself. > > Thanks again, Felix. >