[AMDGPU] use scalar shift for SALU users in frame index elimination
authoralex-t <alexander.timofeev@amd.com>
Tue, 22 Mar 2022 12:13:15 +0000 (13:13 +0100)
committeralex-t <alexander.timofeev@amd.com>
Tue, 22 Mar 2022 12:16:24 +0000 (13:16 +0100)
In the frame index lowering we have to insert shift and add
instructions to adjust stack object access.  We need to take care of the stack
object user kind and use scalar shift/add for scalar users.

Reviewed By: rampitec

Differential Revision: https://reviews.llvm.org/D121524

llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp

index d6b9c9f..3d7d56e 100644 (file)
@@ -2272,7 +2272,8 @@ void SIRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator MI,
         } else {
           MachineInstrBuilder MIB;
           if (!IsSALU) {
-            if (MIB = TII->getAddNoCarry(*MBB, MI, DL, ResultReg, *RS)) {
+            if ((MIB = TII->getAddNoCarry(*MBB, MI, DL, ResultReg, *RS)) !=
+                nullptr) {
               // Reuse ResultReg in intermediate step.
               Register ScaledReg = ResultReg;