[llvm-commits] [llvm] r127351 - in /llvm/trunk: lib/CodeGen/SimpleRegisterCoalescing.cpp test/CodeGen/X86/2011-03-09-Physreg-Coalescing.ll test/CodeGen/X86/fold-pcmpeqd-2.ll

NAKAMURA Takumi geek4civic at gmail.com
Wed Mar 16 15:40:47 PDT 2011


Good morning, Jakob.

On Thu, Mar 17, 2011 at 2:19 AM, Jakob Stoklund Olesen <stoklund at 2pi.dk> wrote:
>> With r127351, X86/h-registers-1.ll is emitted differently on
>> -mtriple=x86_64-win32.
>> Is it expected or possible?
>
> Yes, it is possible because the win32 calling convention uses different registers for the incoming arguments.
>
> Physreg coalescing would extend the range of incoming physregs into the body of the function. That is actually a really bad idea in this function where the ABCD register classes are in use.
(snip)
> In this case, the change caused a different register to be spilled, and the reload was folded into one of the movzbl instructions.

I see. I wondered it might be regression for win64.

> We can add an -mtriple argument to the test to make sure the calling convention doesn't change. The test isn't trying to test register allocation or spilling anyway.

Ok. I will do, thank you.


...Takumi



More information about the llvm-commits mailing list