diff options
author | Alexis Engelke <engelke@in.tum.de> | 2024-08-07 07:56:32 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-07 07:56:32 +0200 |
commit | 41491c77231e9d389ef18593be1fab4f4e810e88 (patch) | |
tree | f16ef7e53cb75b483c0e4aa401e5190b40ca5988 /llvm/lib/CodeGen/MachineRegisterInfo.cpp | |
parent | 90e1c292e3745acdd2b89ac9aafdfdaaa7f13f6c (diff) | |
download | llvm-41491c77231e9d389ef18593be1fab4f4e810e88.zip llvm-41491c77231e9d389ef18593be1fab4f4e810e88.tar.gz llvm-41491c77231e9d389ef18593be1fab4f4e810e88.tar.bz2 |
[CodeGen] Allocate RegAllocHints map lazily (#102186)
This hint map is not required whenever a new register is added, in fact,
at -O0, it is not used at all. Growing this map is quite expensive, as
SmallVectors are not trivially copyable.
Grow this map only when hints are actually added to avoid multiple grows
and grows when no hints are added at all.
Diffstat (limited to 'llvm/lib/CodeGen/MachineRegisterInfo.cpp')
-rw-r--r-- | llvm/lib/CodeGen/MachineRegisterInfo.cpp | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/MachineRegisterInfo.cpp b/llvm/lib/CodeGen/MachineRegisterInfo.cpp index 3caa96c..fcedb30 100644 --- a/llvm/lib/CodeGen/MachineRegisterInfo.cpp +++ b/llvm/lib/CodeGen/MachineRegisterInfo.cpp @@ -47,7 +47,6 @@ MachineRegisterInfo::MachineRegisterInfo(MachineFunction *MF) : MF->getSubtarget().enableSubRegLiveness()) { unsigned NumRegs = getTargetRegisterInfo()->getNumRegs(); VRegInfo.reserve(256); - RegAllocHints.reserve(256); UsedPhysRegMask.resize(NumRegs); PhysRegUseDefLists.reset(new MachineOperand*[NumRegs]()); TheDelegates.clear(); @@ -147,7 +146,6 @@ MachineRegisterInfo::recomputeRegClass(Register Reg) { Register MachineRegisterInfo::createIncompleteVirtualRegister(StringRef Name) { Register Reg = Register::index2VirtReg(getNumVirtRegs()); VRegInfo.grow(Reg); - RegAllocHints.grow(Reg); insertVRegByName(Name, Reg); return Reg; } |