[PATCH] D139732: [AMDGPU] Add pass to rewrite partially used virtual superregisters after RenameIndependentSubregs pass with registers of minimal size (WIP)
Matt Arsenault via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 14 08:47:59 PST 2022
arsenm added inline comments.
================
Comment at: llvm/include/llvm/MC/LaneBitmask.h:85-88
static constexpr LaneBitmask getLane(unsigned Lane) {
return LaneBitmask(Type(1) << Lane);
}
+ static constexpr LaneBitmask getLanes(unsigned NumLanes) {
----------------
having "getLane" and "getLanes" is going to be terribly confusing. Needs a different name
================
Comment at: llvm/lib/Target/AMDGPU/GCNRewritePartialRegUses.cpp:108
+ unsigned Size) const {
+ auto R = SubRegs.try_emplace(std::pair(Offset, Size), 0);
+ if (R.second) {
----------------
I think {Offset, Size} should work now
================
Comment at: llvm/lib/Target/AMDGPU/GCNRewritePartialRegUses.cpp:155
+ LLVM_DEBUG(dbgs() << " Try shift " << RShift << '\n');
+ BitVector ClassMask(TRI->getNumRegClasses(), true);
+ for (auto &P : SubRegs) {
----------------
Comment what true is?
================
Comment at: llvm/lib/Target/AMDGPU/GCNRewritePartialRegUses.cpp:162-164
+ if (!SubRegRC)
+ if (!(SubRegRC = TRI->getSubRegisterClass(RC, OldSubReg)))
+ return nullptr;
----------------
```
if (!SubRegRC)
SubRegRC = ...
if (!SubRegRC)
return nullptr
```
================
Comment at: llvm/lib/Target/AMDGPU/GCNRewritePartialRegUses.cpp:302-305
+ if (LIS) {
+ LIS->removeInterval(Reg);
+ LIS->createAndComputeVirtRegInterval(NewReg);
+ }
----------------
Can you do better than delete and recreate the liveness? Can we do this before liveness is computed?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D139732/new/
https://reviews.llvm.org/D139732
More information about the llvm-commits
mailing list