diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2017-09-05 18:36:36 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2017-09-05 18:36:36 +0000 |
commit | 22cdb61a783d21a60c03bd22dd4471f594ea6311 (patch) | |
tree | 49e489a1a368e84dce9c1cc11d2eba3db206a774 /llvm/lib | |
parent | 2096893f34cfbac4e4eb699ac6ed3e32c6d353f2 (diff) | |
download | bcm5719-llvm-22cdb61a783d21a60c03bd22dd4471f594ea6311.tar.gz bcm5719-llvm-22cdb61a783d21a60c03bd22dd4471f594ea6311.zip |
AMDGPU: Fix not accounting for tail call resource usage
If the only call in a function is a tail call, the
function isn't considered to have a call since it's a
type of return.
llvm-svn: 312561
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp b/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp index d80b537a910..0facae0992b 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp @@ -500,7 +500,8 @@ AMDGPUAsmPrinter::SIFunctionResourceInfo AMDGPUAsmPrinter::analyzeResourceUsage( // If there are no calls, MachineRegisterInfo can tell us the used register // count easily. - if (!FrameInfo.hasCalls()) { + // A tail call isn't considered a call for MachineFrameInfo's purposes. + if (!FrameInfo.hasCalls() && !FrameInfo.hasTailCall()) { MCPhysReg HighestVGPRReg = AMDGPU::NoRegister; for (MCPhysReg Reg : reverse(AMDGPU::VGPR_32RegClass.getRegisters())) { if (MRI.isPhysRegUsed(Reg)) { |