[llvm-commits] [llvm] r55807 - in /llvm/trunk: lib/Target/X86/X86CallingConv.td lib/Target/X86/X86ISelLowering.cpp test/CodeGen/X86/2007-08-13-SpillerReuse.ll test/CodeGen/X86/2008-02-22-ReMatBug.ll test/CodeGen/X86/coalescer-commute3.ll test/CodeGen/X86/combine-lds.ll test/CodeGen/X86/fastcc.ll
Chris Lattner
clattner at apple.com
Sun Sep 21 12:47:19 PDT 2008
On Sep 4, 2008, at 3:59 PM, Evan Cheng wrote:
> Author: evancheng
> Date: Thu Sep 4 17:59:58 2008
> New Revision: 55807
>
> URL: http://llvm.org/viewvc/llvm-project?rev=55807&view=rev
> Log:
> For whatever the reason, x86 CallingConv::Fast (i.e. fastcc) was not
> passing scalar arguments in registers. This patch defines a new
> fastcc CC which is slightly different from the FastCall CC. In
> addition to passing integer arguments in ECX and EDX, it also
> specify doubles are passed in 8-byte slots which are 8-byte aligned
> (instead of 4-byte aligned). This avoids a potential performance
> hazard where doubles span cacheline boundaries.
Okay, cool but:
> @@ -1100,6 +1100,8 @@
> return CC_X86_32_FastCall;
> else if (CC == CallingConv::Fast && PerformTailCallOpt)
> return CC_X86_32_TailCall;
> + else if (CC == CallingConv::Fast)
> + return CC_X86_32_FastCC;
Does this mean that "PerformTailCallOpt" changes the ABI?
-Chris
More information about the llvm-commits
mailing list