Lines Matching refs:LI
80 bool VirtRegAuxInfo::isRematerializable(const LiveInterval &LI, in isRematerializable() argument
84 Register Reg = LI.reg(); in isRematerializable()
86 for (LiveInterval::const_vni_iterator I = LI.vni_begin(), E = LI.vni_end(); in isRematerializable()
130 bool VirtRegAuxInfo::isLiveAtStatepointVarArg(LiveInterval &LI) { in isLiveAtStatepointVarArg() argument
131 return any_of(VRM.getRegInfo().reg_operands(LI.reg()), in isLiveAtStatepointVarArg()
140 void VirtRegAuxInfo::calculateSpillWeightAndHint(LiveInterval &LI) { in calculateSpillWeightAndHint() argument
141 float Weight = weightCalcHelper(LI); in calculateSpillWeightAndHint()
145 LI.setWeight(Weight); in calculateSpillWeightAndHint()
148 float VirtRegAuxInfo::weightCalcHelper(LiveInterval &LI, SlotIndex *Start, in weightCalcHelper() argument
160 std::pair<Register, Register> TargetHint = MRI.getRegAllocationHint(LI.reg()); in weightCalcHelper()
162 if (LI.isSpillable()) { in weightCalcHelper()
163 Register Reg = LI.reg(); in weightCalcHelper()
170 LI.markNotSpillable(); in weightCalcHelper()
174 bool IsSpillable = LI.isSpillable(); in weightCalcHelper()
215 I = MRI.reg_instr_nodbg_begin(LI.reg()), in weightCalcHelper()
234 if (TII.isUnspillableTerminator(MI) && MI->definesRegister(LI.reg())) { in weightCalcHelper()
235 LI.markNotSpillable(); in weightCalcHelper()
250 std::tie(Reads, Writes) = MI->readsWritesVirtualRegister(LI.reg()); in weightCalcHelper()
254 if (Writes && IsExiting && LIS.isLiveOutOfMBB(LI, MBB)) in weightCalcHelper()
263 Register HintReg = copyHint(MI, LI.reg(), TRI, MRI); in weightCalcHelper()
279 MRI.clearSimpleHint(LI.reg()); in weightCalcHelper()
287 MRI.addRegAllocationHint(LI.reg(), Hint.Reg); in weightCalcHelper()
306 if (ShouldUpdateLI && LI.isZeroLength(LIS.getSlotIndexes()) && in weightCalcHelper()
307 !LI.isLiveAtIndexes(LIS.getRegMaskSlots()) && in weightCalcHelper()
308 !isLiveAtStatepointVarArg(LI)) { in weightCalcHelper()
309 LI.markNotSpillable(); in weightCalcHelper()
317 if (isRematerializable(LI, LIS, VRM, *MF.getSubtarget().getInstrInfo())) in weightCalcHelper()
322 return normalize(TotalWeight, LI.getSize(), NumInstr); in weightCalcHelper()