Lines Matching defs:li
138 void VirtRegAuxInfo::calculateSpillWeightAndHint(LiveInterval &li) {
139 float weight = weightCalcHelper(li);
143 li.weight = weight;
146 float VirtRegAuxInfo::futureWeight(LiveInterval &li, SlotIndex start,
148 return weightCalcHelper(li, &start, &end);
151 float VirtRegAuxInfo::weightCalcHelper(LiveInterval &li, SlotIndex *start,
159 unsigned numInstr = 0; // Number of instructions using li
162 std::pair<unsigned, unsigned> TargetHint = mri.getRegAllocationHint(li.reg);
165 bool Spillable = li.isSpillable();
207 I = mri.reg_instr_begin(li.reg), E = mri.reg_instr_end();
234 std::tie(reads, writes) = mi->readsWritesVirtualRegister(li.reg);
238 if (writes && isExiting && LIS.isLiveOutOfMBB(li, mbb))
247 Register hint = copyHint(mi, li.reg, tri, mri);
266 mri.clearSimpleHint(li.reg);
274 mri.addRegAllocationHint(li.reg, Hint.Reg);
285 // Mark li as unspillable if all live ranges are tiny and the interval
288 if (updateLI && li.isZeroLength(LIS.getSlotIndexes()) &&
289 !li.isLiveAtIndexes(LIS.getRegMaskSlots())) {
290 li.markNotSpillable();
298 if (isRematerializable(li, LIS, VRM, *MF.getSubtarget().getInstrInfo()))
303 return normalize(totalWeight, li.getSize(), numInstr);