[llvm] a383d32 - [TargetRegisterInfo] Speed up getAllocatableSet. NFCI.
Jay Foad via llvm-commits
llvm-commits at lists.llvm.org
Wed May 12 06:09:12 PDT 2021
Author: Jay Foad
Date: 2021-05-12T14:09:05+01:00
New Revision: a383d325f6c6c8d9bb52d1da221d9a144dfc475c
URL: https://github.com/llvm/llvm-project/commit/a383d325f6c6c8d9bb52d1da221d9a144dfc475c
DIFF: https://github.com/llvm/llvm-project/commit/a383d325f6c6c8d9bb52d1da221d9a144dfc475c.diff
LOG: [TargetRegisterInfo] Speed up getAllocatableSet. NFCI.
MachineRegisterInfo caches the reserved register set that is computed by
by TargetRegisterInfo::getReservedRegs, so call into MRI to get the
reserved regs to avoid recomputing them.
In particular this speeds up AMDGPU's SIFormMemoryClauses pass because
AMDGPU has a particularly complicated reserved set that is expensive to
compute.
Differential Revision: https://reviews.llvm.org/D102318
Added:
Modified:
llvm/lib/CodeGen/TargetRegisterInfo.cpp
Removed:
################################################################################
diff --git a/llvm/lib/CodeGen/TargetRegisterInfo.cpp b/llvm/lib/CodeGen/TargetRegisterInfo.cpp
index e95e089e63ae..f4bb71535f7f 100644
--- a/llvm/lib/CodeGen/TargetRegisterInfo.cpp
+++ b/llvm/lib/CodeGen/TargetRegisterInfo.cpp
@@ -267,8 +267,9 @@ BitVector TargetRegisterInfo::getAllocatableSet(const MachineFunction &MF,
}
// Mask out the reserved registers
- BitVector Reserved = getReservedRegs(MF);
- Allocatable &= Reserved.flip();
+ const MachineRegisterInfo &MRI = MF.getRegInfo();
+ const BitVector &Reserved = MRI.getReservedRegs();
+ Allocatable.reset(Reserved);
return Allocatable;
}
More information about the llvm-commits
mailing list