[LLVMdev] Calling conventions for YMM registers on AVX
Jakob Stoklund Olesen
stoklund at 2pi.dk
Mon Jan 9 10:00:08 PST 2012
On Jan 8, 2012, at 11:18 PM, Demikhovsky, Elena wrote:
> I'll explain what we see in the code.
> 1. The caller saves XMM registers across the call if needed (according to DEFS definition).
> YMMs are not in the set, so caller does not take care.
This is not how the register allocator works. It saves the registers holding values, it doesn't care which alias is clobbered.
Are you saying that only the xmm part of a ymm register gets spilled before a call?
> 2. The callee preserves XMMs but works with YMMs and clobbering them.
> 3. So after the call, the upper part of YMM is gone.
Are you on Windows? As Bruno said, all xmm and ymm registers are call-clobbered on non-Windows platforms.
/jakob
More information about the llvm-dev
mailing list