Lines Matching refs:LI

82 bool VirtRegAuxInfo::isRematerializable(const LiveInterval &LI,  in isRematerializable()  argument
86 Register Reg = LI.reg(); in isRematerializable()
88 for (LiveInterval::const_vni_iterator I = LI.vni_begin(), E = LI.vni_end(); in isRematerializable()
132 bool VirtRegAuxInfo::isLiveAtStatepointVarArg(LiveInterval &LI) { in isLiveAtStatepointVarArg() argument
133 return any_of(VRM.getRegInfo().reg_operands(LI.reg()), in isLiveAtStatepointVarArg()
142 void VirtRegAuxInfo::calculateSpillWeightAndHint(LiveInterval &LI) { in calculateSpillWeightAndHint() argument
143 float Weight = weightCalcHelper(LI); in calculateSpillWeightAndHint()
147 LI.setWeight(Weight); in calculateSpillWeightAndHint()
150 static bool canMemFoldInlineAsm(LiveInterval &LI, in canMemFoldInlineAsm() argument
152 for (const MachineOperand &MO : MRI.reg_operands(LI.reg())) { in canMemFoldInlineAsm()
161 float VirtRegAuxInfo::weightCalcHelper(LiveInterval &LI, SlotIndex *Start, in weightCalcHelper() argument
171 std::pair<unsigned, Register> TargetHint = MRI.getRegAllocationHint(LI.reg()); in weightCalcHelper()
173 if (LI.isSpillable()) { in weightCalcHelper()
174 Register Reg = LI.reg(); in weightCalcHelper()
181 LI.markNotSpillable(); in weightCalcHelper()
185 bool IsSpillable = LI.isSpillable(); in weightCalcHelper()
227 I = MRI.reg_instr_nodbg_begin(LI.reg()), in weightCalcHelper()
256 MI->definesRegister(LI.reg(), /*TRI=*/nullptr)) { in weightCalcHelper()
257 LI.markNotSpillable(); in weightCalcHelper()
274 std::tie(Reads, Writes) = MI->readsWritesVirtualRegister(LI.reg()); in weightCalcHelper()
278 if (Writes && IsExiting && LIS.isLiveOutOfMBB(LI, MBB)) in weightCalcHelper()
287 Register HintReg = copyHint(MI, LI.reg(), TRI, MRI); in weightCalcHelper()
301 MRI.clearSimpleHint(LI.reg()); in weightCalcHelper()
309 MRI.addRegAllocationHint(LI.reg(), Hint.Reg); in weightCalcHelper()
328 if (ShouldUpdateLI && LI.isZeroLength(LIS.getSlotIndexes()) && in weightCalcHelper()
329 !LI.isLiveAtIndexes(LIS.getRegMaskSlots()) && in weightCalcHelper()
330 !isLiveAtStatepointVarArg(LI) && !canMemFoldInlineAsm(LI, MRI)) { in weightCalcHelper()
331 LI.markNotSpillable(); in weightCalcHelper()
339 if (isRematerializable(LI, LIS, VRM, *MF.getSubtarget().getInstrInfo())) in weightCalcHelper()
344 return normalize(TotalWeight, LI.getSize(), NumInstr); in weightCalcHelper()