Lines Matching refs:LI
42 void LiveIntervalCalc::calculate(LiveInterval &LI, bool TrackSubRegs) {
53 Register Reg = LI.reg();
59 if (LI.hasSubRanges() || (SubReg != 0 && TrackSubRegs)) {
64 if (!LI.hasSubRanges() && !LI.empty()) {
66 LI.createSubRangeFrom(*Alloc, ClassMask, LI);
69 LI.refineSubRanges(
80 if (MO.isDef() && !LI.hasSubRanges())
81 createDeadDef(*Indexes, *Alloc, LI, MO);
86 LI.removeEmptySubRanges();
92 if (LI.hasSubRanges()) {
93 for (LiveInterval::SubRange &S : LI.subranges()) {
96 SubLIC.extendToUses(S, Reg, S.LaneMask, &LI);
98 LI.clear();
99 constructMainRangeFromSubranges(LI);
102 extendToUses(LI, Reg, LaneBitmask::getAll());
106 void LiveIntervalCalc::constructMainRangeFromSubranges(LiveInterval &LI) {
108 LiveRange &MainRange = LI;
113 for (const LiveInterval::SubRange &SR : LI.subranges()) {
120 extendToUses(MainRange, LI.reg(), LaneBitmask::getAll(), &LI);
136 LaneBitmask Mask, LiveInterval *LI) {
140 if (LI != nullptr)
141 LI->computeSubRangeUndefs(Undefs, Mask, *MRI, *Indexes);