Lines Matching +full:alloc +full:- +full:ranges

1 //===- LiveIntervalCalc.cpp - Calculate live interval --------------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
11 //===----------------------------------------------------------------------===//
32 static void createDeadDef(SlotIndexes &Indexes, VNInfo::Allocator &Alloc,
39 LR.createDeadDef(DefIdx, Alloc);
45 VNInfo::Allocator *Alloc = getVNAlloc();
52 const TargetRegisterInfo &TRI = *MRI->getTargetRegisterInfo();
54 for (const MachineOperand &MO : MRI->reg_nodbg_operands(Reg)) {
61 : MRI->getMaxLaneMaskForVReg(Reg);
65 LaneBitmask ClassMask = MRI->getMaxLaneMaskForVReg(Reg);
66 LI.createSubRangeFrom(*Alloc, ClassMask, LI);
70 *Alloc, SubMask,
71 [&MO, Indexes, Alloc](LiveInterval::SubRange &SR) {
73 createDeadDef(*Indexes, *Alloc, SR, MO);
81 createDeadDef(*Indexes, *Alloc, LI, MO);
84 // We may have created empty live ranges for partially undefined uses, we
95 SubLIC.reset(MF, Indexes, DomTree, Alloc);
112 VNInfo::Allocator *Alloc = getVNAlloc();
115 if (!VNI->isUnused() && !VNI->isPHIDef())
116 MainRange.createDeadDef(VNI->def, *Alloc);
126 VNInfo::Allocator *Alloc = getVNAlloc();
131 for (MachineOperand &MO : MRI->def_operands(Reg))
132 createDeadDef(*Indexes, *Alloc, LR, MO);
141 LI->computeSubRangeUndefs(Undefs, Mask, *MRI, *Indexes);
145 const TargetRegisterInfo &TRI = *MRI->getTargetRegisterInfo();
146 for (MachineOperand &MO : MRI->reg_nodbg_operands(Reg)) {
153 // interval). For subranges, definitions of non-overlapping subregisters
170 unsigned OpNo = (&MO - &MI->getOperand(0));
172 if (MI->isPHI()) {
176 UseIdx = Indexes->getMBBEndIdx(MI->getOperand(OpNo + 1).getMBB());
178 // Check for early-clobber redefs.
183 else if (MI->isRegTiedToDefOperand(OpNo, &DefIdx)) {
184 // FIXME: This would be a lot easier if tied early-clobber uses also
185 // had an early-clobber flag.
186 isEarlyClobber = MI->getOperand(DefIdx).isEarlyClobber();
188 UseIdx = Indexes->getInstructionIndex(*MI).getRegSlot(isEarlyClobber);