diff options
author | Hans Wennborg <hans@hanshq.net> | 2016-09-09 22:37:27 +0000 |
---|---|---|
committer | Hans Wennborg <hans@hanshq.net> | 2016-09-09 22:37:27 +0000 |
commit | 6ecf619be99be4181cb677f066159bc05901d720 (patch) | |
tree | 74a553b6e4eaaa296d11d88677d03cc60b0fb267 /llvm/lib/Target/X86/X86MCInstLower.cpp | |
parent | 0efdd06b22e697ae072bbe76071cb53b8ffb1ee0 (diff) | |
download | bcm5719-llvm-6ecf619be99be4181cb677f066159bc05901d720.tar.gz bcm5719-llvm-6ecf619be99be4181cb677f066159bc05901d720.zip |
X86: Fold tail calls into conditional branches also for 64-bit (PR26302)
This extends the optimization in r280832 to also work for 64-bit. The only
quirk is that we can't do this for 64-bit Windows (yet).
Differential Revision: https://reviews.llvm.org/D24423
llvm-svn: 281113
Diffstat (limited to 'llvm/lib/Target/X86/X86MCInstLower.cpp')
-rw-r--r-- | llvm/lib/Target/X86/X86MCInstLower.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86MCInstLower.cpp b/llvm/lib/Target/X86/X86MCInstLower.cpp index 9ce647a8068..c86f15a0bd2 100644 --- a/llvm/lib/Target/X86/X86MCInstLower.cpp +++ b/llvm/lib/Target/X86/X86MCInstLower.cpp @@ -505,6 +505,7 @@ ReSimplify: case X86::TAILJMPd: case X86::TAILJMPd64: Opcode = X86::JMP_1; goto SetTailJmpOpcode; case X86::TAILJMPd_CC: + case X86::TAILJMPd64_CC: Opcode = X86::GetCondBranchFromCond( static_cast<X86::CondCode>(MI->getOperand(1).getImm())); goto SetTailJmpOpcode; @@ -1309,6 +1310,7 @@ void X86AsmPrinter::EmitInstruction(const MachineInstr *MI) { case X86::TAILJMPr64: case X86::TAILJMPm64: case X86::TAILJMPd64: + case X86::TAILJMPd64_CC: case X86::TAILJMPr64_REX: case X86::TAILJMPm64_REX: // Lower these as normal, but add some comments. |