From feab91cac3b6383a718eda2d404df600e1c90fe2 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Tue, 2 Dec 2014 17:41:43 +0000 Subject: [PATCH] R600/SI: Set correct number of user sgprs for HSA runtime We don't support scratch buffers yet with HSA. llvm-svn: 223130 --- llvm/lib/Target/R600/SIISelLowering.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/llvm/lib/Target/R600/SIISelLowering.cpp b/llvm/lib/Target/R600/SIISelLowering.cpp index 2733e09..85ef37d 100644 --- a/llvm/lib/Target/R600/SIISelLowering.cpp +++ b/llvm/lib/Target/R600/SIISelLowering.cpp @@ -489,7 +489,10 @@ SDValue SITargetLowering::LowerFormalArguments( // The pointer to the list of arguments is stored in SGPR0, SGPR1 // The pointer to the scratch buffer is stored in SGPR2, SGPR3 if (Info->getShaderType() == ShaderType::COMPUTE) { - Info->NumUserSGPRs = 4; + if (Subtarget->isAmdHsaOS()) + Info->NumUserSGPRs = 2; // FIXME: Need to support scratch buffers. + else + Info->NumUserSGPRs = 4; unsigned InputPtrReg = TRI->getPreloadedValue(MF, SIRegisterInfo::INPUT_PTR); -- 2.7.4