diff options
| author | Andy Ayers <andya@microsoft.com> | 2015-11-23 22:17:44 +0000 |
|---|---|---|
| committer | Andy Ayers <andya@microsoft.com> | 2015-11-23 22:17:44 +0000 |
| commit | 9f7501896e79169d10b2b05271f0678738fe3bdb (patch) | |
| tree | 7e8841356c74599abcf531b6b10bdc27abc883f2 /llvm/lib/Target/X86/X86RegisterInfo.h | |
| parent | 798f11cfb76dea68d2cda43e1623904c19d0bc61 (diff) | |
| download | bcm5719-llvm-9f7501896e79169d10b2b05271f0678738fe3bdb.tar.gz bcm5719-llvm-9f7501896e79169d10b2b05271f0678738fe3bdb.zip | |
findDeadCallerSavedReg needs to pay attention to calling convention
Caller saved regs differ between SysV and Win64. Use the tail call available set to scavenge from.
Refactor register info to create new helper to get at tail call GPRs. Added a new test case for windows. Fixed up a number of X64 tests since now RCX is preferred over RDX on SysV.
Differential Revision: http://reviews.llvm.org/D14878
llvm-svn: 253927
Diffstat (limited to 'llvm/lib/Target/X86/X86RegisterInfo.h')
| -rw-r--r-- | llvm/lib/Target/X86/X86RegisterInfo.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86RegisterInfo.h b/llvm/lib/Target/X86/X86RegisterInfo.h index 1b1a1ccfc1a..c3a2845c362 100644 --- a/llvm/lib/Target/X86/X86RegisterInfo.h +++ b/llvm/lib/Target/X86/X86RegisterInfo.h @@ -87,6 +87,11 @@ public: const TargetRegisterClass * getCrossCopyRegClass(const TargetRegisterClass *RC) const override; + /// getGPRsForTailCall - Returns a register class with registers that can be + /// used in forming tail calls. + const TargetRegisterClass * + getGPRsForTailCall(const MachineFunction &MF) const; + unsigned getRegPressureLimit(const TargetRegisterClass *RC, MachineFunction &MF) const override; |

