Lines Matching +full:1 +full:- +full:stop

1 //===- InterferenceCache.cpp - Caching per-block interference -------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 // InterferenceCache remembers per-block interference in LiveIntervalUnions.
11 //===----------------------------------------------------------------------===//
43 if (PhysRegEntriesCount == TRI->getNumRegs()) return; in reinitPhysRegEntries()
45 PhysRegEntriesCount = TRI->getNumRegs(); in reinitPhysRegEntries()
70 // No valid entry exists, pick the next round-robin entry. in get()
88 /// revalidate - LIU contents have changed, update tags.
96 for (MCRegUnit Unit : TRI->regunits(PhysReg)) in revalidate()
108 Blocks.resize(MF->getNumBlockIDs()); in reset()
113 for (MCRegUnit Unit : TRI->regunits(PhysReg)) { in reset()
115 RegUnits.back().Fixed = &LIS->getRegUnit(Unit); in reset()
122 for (MCRegUnit Unit : TRI->regunits(PhysReg)) { in valid()
133 SlotIndex Start, Stop; in update() local
134 std::tie(Start, Stop) = Indexes->getMBBRange(MBBNum); in update()
141 RUI.FixedI = RUI.Fixed->find(Start); in update()
146 if (RUI.FixedI != RUI.Fixed->end()) in update()
147 RUI.FixedI = RUI.Fixed->advanceTo(RUI.FixedI, Start); in update()
154 MF->getBlockNumbered(MBBNum)->getIterator(); in update()
159 BI->Tag = Tag; in update()
160 BI->First = BI->Last = SlotIndex(); in update()
168 if (StartI >= Stop) in update()
170 if (!BI->First.isValid() || StartI < BI->First) in update()
171 BI->First = StartI; in update()
177 LiveInterval::const_iterator E = RUI.Fixed->end(); in update()
180 SlotIndex StartI = I->start; in update()
181 if (StartI >= Stop) in update()
183 if (!BI->First.isValid() || StartI < BI->First) in update()
184 BI->First = StartI; in update()
188 RegMaskSlots = LIS->getRegMaskSlotsInBlock(MBBNum); in update()
189 RegMaskBits = LIS->getRegMaskBitsInBlock(MBBNum); in update()
190 SlotIndex Limit = BI->First.isValid() ? BI->First : Stop; in update()
195 BI->First = RegMaskSlots[i]; in update()
199 PrevPos = Stop; in update()
200 if (BI->First.isValid()) in update()
204 if (++MFI == MF->end()) in update()
206 MBBNum = MFI->getNumber(); in update()
208 if (BI->Tag == Tag) in update()
210 std::tie(Start, Stop) = Indexes->getMBBRange(MBBNum); in update()
216 if (!I.valid() || I.start() >= Stop) in update()
218 I.advanceTo(Stop); in update()
219 bool Backup = !I.valid() || I.start() >= Stop; in update()
221 --I; in update()
222 SlotIndex StopI = I.stop(); in update()
223 if (!BI->Last.isValid() || StopI > BI->Last) in update()
224 BI->Last = StopI; in update()
233 if (I == LR->end() || I->start >= Stop) in update()
235 I = LR->advanceTo(I, Stop); in update()
236 bool Backup = I == LR->end() || I->start >= Stop; in update()
238 --I; in update()
239 SlotIndex StopI = I->end; in update()
240 if (!BI->Last.isValid() || StopI > BI->Last) in update()
241 BI->Last = StopI; in update()
247 SlotIndex Limit = BI->Last.isValid() ? BI->Last : Start; in update()
249 i && RegMaskSlots[i-1].getDeadSlot() > Limit; --i) in update()
250 if (MachineOperand::clobbersPhysReg(RegMaskBits[i-1], PhysReg)) { in update()
251 // Register mask i-1 clobbers PhysReg after the LIU interference. in update()
253 BI->Last = RegMaskSlots[i-1].getDeadSlot(); in update()