summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2017-09-05 18:36:36 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2017-09-05 18:36:36 +0000
commit22cdb61a783d21a60c03bd22dd4471f594ea6311 (patch)
tree49e489a1a368e84dce9c1cc11d2eba3db206a774 /llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
parent2096893f34cfbac4e4eb699ac6ed3e32c6d353f2 (diff)
downloadbcm5719-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/Target/AMDGPU/AMDGPUAsmPrinter.cpp')
-rw-r--r--llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp3
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)) {
OpenPOWER on IntegriCloud