This is the mail archive of the 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: [x86-64 psABI]: Extend x86-64 psABI to support AVX-512

On Thu, Jul 25, 2013 at 05:06:55AM +0200, Jakub Jelinek wrote:
> On Wed, Jul 24, 2013 at 07:36:31PM +0200, Richard Biener wrote:
> > >Make them callee saved means we need to change to
> > >preserve them and we need to change unwind library to
> > >support them.  It is certainly doable.
> > 
> > IMHO it was a mistake to not have any callee saved xmm register in the
> > original abi - we should fix this at this opportunity.  Loops with
> > function calls are not that uncommon.
> I've raised that earlier already.  One issue with that beyond having to
> teach unwinders about this (dynamic linker if you mean only for the lazy PLT
> resolving is only a matter of whether the dynamic linker itself has been
> built with a compiler that would clobber those registers anywhere) is that
> as history shows, the vector registers keep growing over time.
> So if we reserve now either 8 or all 16 zmm16 to zmm31 registers as call
> saved, do we save them as 512 bit registers, or say 1024 bit already?

We shouldn't save them all as we would often need to unnecessarily save
register in leaf function. I am fine with 8. In practice 4 should be
enough for most use cases. 

> If just 512 bit, then when next time the vector registers grow in size (will
> they?), would we have just low parts of the 1024 bits registers call saved
> and upper half call clobbered (I guess that is the case for M$Win 64-bit ABI
> now, just with 128 bit vs. more).
I do not think that 1024 bit registers will come in next ten years.
If they came tohn call clobbered is better. Full 1024 bits would be used
rarely; given that in most cases we will use them just to store 64bit
for doubles.
> But yeah, it would be nice to have some call saved ones.
> 	Jakub

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