[PATCH] D121524: [AMDGPU] use scalar shift for SALU users in frame index elimination

Stanislav Mekhanoshin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 18 13:47:40 PDT 2022


rampitec added inline comments.


================
Comment at: llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp:2237
+        bool IsSALU = isSGPRClass(TII->getOpRegClass(*MI, FIOperandNum));
+        bool LiveSCC = RS->isRegUsed(AMDGPU::SCC);
+        const TargetRegisterClass *RC = IsSALU && !LiveSCC
----------------
arsenm wrote:
> rampitec wrote:
> > arsenm wrote:
> > > rampitec wrote:
> > > > alex-t wrote:
> > > > > rampitec wrote:
> > > > > > alex-t wrote:
> > > > > > > rampitec wrote:
> > > > > > > > Is not isRegUsed for the whole function and will always return true on practice?
> > > > > > > This function is used to determine if SCC is live in all other places around the code.
> > > > > > > Another option is to scan upwards until the block start is reached.
> > > > > > All other places shall mean the whole function? I'd suggest using MBB->computeRegisterLiveness().
> > > > > I mean checks like this:
> > > > > 
> > > > > CanClobberSCC = !RS->isRegUsed(AMDGPU::SCC);
> > > > > 
> > > > > they really interested if SCC is live at exact point.
> > > > > 
> > > > > In case this is wrong we have lots of problems
> > > > But what point is it? The call does not take an iterator.
> > > It's at the scavenging point, which is separately advanced
> > Was it advanced before the call?
> It should have been advanced by the scavengeRegister call (assuming there is one on the path that reaches here). Plus PrologEpilogInserter advances before the call in the normal usage
OK, thanks.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D121524/new/

https://reviews.llvm.org/D121524



More information about the llvm-commits mailing list