diff options
author | Chad Rosier <mcrosier@apple.com> | 2011-06-25 02:04:56 +0000 |
---|---|---|
committer | Chad Rosier <mcrosier@apple.com> | 2011-06-25 02:04:56 +0000 |
commit | df78fcd2d6ba4fd499ead3bdea2fde83dbcecab9 (patch) | |
tree | 67483067f44cb04f5f1985031962a36874eef741 /lib/Target | |
parent | 75c2b2028bd898cb8448fcf0fa76c3d47843a164 (diff) | |
download | external_llvm-df78fcd2d6ba4fd499ead3bdea2fde83dbcecab9.zip external_llvm-df78fcd2d6ba4fd499ead3bdea2fde83dbcecab9.tar.gz external_llvm-df78fcd2d6ba4fd499ead3bdea2fde83dbcecab9.tar.bz2 |
Enable tail call optimization in the presence of a byval (x86-32 and x86-64).
<rdar://problem/9483883>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133858 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target')
-rw-r--r-- | lib/Target/X86/X86ISelLowering.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp index 6c606be..bab15e6 100644 --- a/lib/Target/X86/X86ISelLowering.cpp +++ b/lib/Target/X86/X86ISelLowering.cpp @@ -2505,6 +2505,10 @@ bool MatchingStackOffset(SDValue Arg, unsigned Offset, ISD::ArgFlagsTy Flags, if (!FINode) return false; FI = FINode->getIndex(); + } else if (Arg.getOpcode() == ISD::FrameIndex && Flags.isByVal()) { + FrameIndexSDNode *FINode = dyn_cast<FrameIndexSDNode>(Arg); + FI = FINode->getIndex(); + Bytes = Flags.getByValSize(); } else return false; |