R600/SI: Set correct number of user sgprs for HSA runtime
authorTom Stellard <thomas.stellard@amd.com>
Tue, 2 Dec 2014 17:41:43 +0000 (17:41 +0000)
committerTom Stellard <thomas.stellard@amd.com>
Tue, 2 Dec 2014 17:41:43 +0000 (17:41 +0000)
We don't support scratch buffers yet with HSA.

llvm-svn: 223130

llvm/lib/Target/R600/SIISelLowering.cpp

index 2733e09..85ef37d 100644 (file)
@@ -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);