[llvm-commits] [llvm] r94617 - /llvm/trunk/lib/Target/X86/X86FastISel.cpp

Dan Gohman gohman at apple.com
Tue Jan 26 15:33:53 PST 2010


On Jan 26, 2010, at 3:28 PM, Evan Cheng wrote:

> Author: evancheng
> Date: Tue Jan 26 17:28:40 2010
> New Revision: 94617
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=94617&view=rev
> Log:
> Ignore 'forced' tailcall opt in fastisel mode.
> 
> Modified:
>    llvm/trunk/lib/Target/X86/X86FastISel.cpp
> 
> Modified: llvm/trunk/lib/Target/X86/X86FastISel.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86FastISel.cpp?rev=94617&r1=94616&r2=94617&view=diff
> 
> ==============================================================================
> --- llvm/trunk/lib/Target/X86/X86FastISel.cpp (original)
> +++ llvm/trunk/lib/Target/X86/X86FastISel.cpp Tue Jan 26 17:28:40 2010
> @@ -1243,11 +1243,6 @@
>       CC != CallingConv::X86_FastCall)
>     return false;
> 
> -  // fastcc with -tailcallopt is intended to provide a guaranteed
> -  // tail call optimization. Fastisel doesn't know how to do that.
> -  if (X86::IsEligibleForTailCallOpt(CC))
> -    return false;

This change breaks the "guarantee"; the -tailcallopt option with
fastcc is intended to guarantee a tail call.

FastISel should still bail out if PerformTailCallOpt is true and
CC is CallingConv::Fast.

Dan





More information about the llvm-commits mailing list