diff options
author | Lang Hames <lhames@gmail.com> | 2013-05-13 10:21:19 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2013-05-13 10:21:19 +0000 |
commit | 67c09b3f885cd35db63237a7e7edac515bb4f2bd (patch) | |
tree | 3d62f2408d733b7fed9a33ef302d730769121cfe /llvm/lib/Target/ARM/ARMISelLowering.cpp | |
parent | 02240c5c02b45db1d3f4974d3f1dfda8ee0739bf (diff) | |
download | bcm5719-llvm-67c09b3f885cd35db63237a7e7edac515bb4f2bd.tar.gz bcm5719-llvm-67c09b3f885cd35db63237a7e7edac515bb4f2bd.zip |
Correctly preserve the input chain for potential tailcall nodes whose
return values are bitcasts.
The chain had previously been being clobbered with the entry node to
the dag, which sometimes caused other code in the function to be
erroneously deleted when tailcall optimization kicked in.
<rdar://problem/13827621>
llvm-svn: 181696
Diffstat (limited to 'llvm/lib/Target/ARM/ARMISelLowering.cpp')
-rw-r--r-- | llvm/lib/Target/ARM/ARMISelLowering.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Target/ARM/ARMISelLowering.cpp b/llvm/lib/Target/ARM/ARMISelLowering.cpp index fd777323642..008edbe4a75 100644 --- a/llvm/lib/Target/ARM/ARMISelLowering.cpp +++ b/llvm/lib/Target/ARM/ARMISelLowering.cpp @@ -2147,7 +2147,7 @@ bool ARMTargetLowering::isUsedByReturnOnly(SDNode *N, SDValue &Chain) const { Copy = *Copy->use_begin(); if (Copy->getOpcode() != ISD::CopyToReg || !Copy->hasNUsesOfValue(1, 0)) return false; - Chain = Copy->getOperand(0); + TCChain = Copy->getOperand(0); } else { return false; } |