[PATCH, i386]: Add SSE4.2 support - pcmpstr part

Jan Hubicka jh@suse.cz
Mon Jun 4 08:59:00 GMT 2007


> No, it is also needed for new __cconly instructions to instantiate 
> instruction that has free register to clobber. IMO there is no other way 
> for allocator to choose between two alternative instructions.

Ah, you are right here, I was looking for instructions having 'z' in
multiple alternatives, but I've missed this one.
If we really need use xmm0 constraint in alternatives, we are screwed
and we need class.
> 
> >As Rth correctly complained, the extra register classes are slowing down
> >regclass and startup that is n^3 (for n being number of classes), so
> >they needs to be added with a care.  On the other hand, I don't see any
> >noticeable slowdowns on the bootstrap/SPEC build time graphs today, so
> >it don't seem to be that bad (assuming that the patch was run).
> >Perhaps startup time (ie time of compilation of empty file) should be
> >double checked.
> >  
> I didn't notice any slowdowns (but I have a fast machine, so this can't 
> be a measure...)

Way to check it is to benchmark compilation of empty file with and
without patch.  I can give it a try after returning from the trip at
7th.
The startup time is actually very importnat for things like kernel
compilation time and it is bit out of controll.

Note that also because of way regclass and reload is constructing
various unions and intersections of classes, it might be actually
necessary to add more variants to get the logic working right.
(I can also look into the reload problem after returning, I should be
able to debug it)
> 
> >Please don't forget to update texinfo docs if the constraint is
> >supposed to be user visible.
> >Just nitpicking, with two letter constraints and shortage of letters
> >perhaps something like Y0 would be better option?
> >  
> I have considered this option, but Y classes are intended when whole 
> register sets are swithed, and it just didn't fit there... I was also 

You may also consider 'Y' classes as various variants of SSE register
classes and then 'Y0' and possibly 'Y1' would fit here.
A bit confusing might be 'Y2' (I would imply it means xmm2)
but perhaps we can just rename it to something different, like Yt.
(for two) I not sure if it is any better to be honest.

> under impression that texinfo docs are automatically updated from 
> constraints.md, but I'll update them manually if this isn't true.

Right, they are autogenerated now, I didn't notice.

Honza
> 
> Uros.



More information about the Gcc-patches mailing list