[PATCH] D152832: [AMDGPU] Fix register class for a subreg in GCNRewritePartialRegUses.

Valery Pykhtin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 4 10:31:46 PDT 2023


vpykhtin added inline comments.


================
Comment at: llvm/lib/Target/AMDGPU/GCNRewritePartialRegUses.cpp:241
       SubRegRC = TRI->getSubRegisterClass(RC, OldSubReg);
 
     if (!SubRegRC)
----------------
arsenm wrote:
> arsenm wrote:
> > If you do TRI->getMatchingSuperRegClass(RC, TRI->getSubRegisterClass(RC, OldSubReg), OldSubReg) does it work?
> Alternatively, getLargestLegalSuperClass
getMatchingSuperRegClass(RC, TRI->getSubRegisterClass(RC, OldSubReg), OldSubReg) does different thing: 

* getSubRegisterClass(RC, OldSubReg) is supposed to return the register class that can be used to allocate the register for //OldSubReg// subreg of a super register from class //RC//

* the former version is going to find a largest subclass of RC where each register has subreg //OldSubReg// and this subreg would have TRI->getSubRegisterClass(RC, OldSubReg) class on allocation.


getLargestLegalSuperClass doesn't seem to do the job too.








Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D152832



More information about the llvm-commits mailing list