Lines Matching refs:RegionEnd
189 /// scheduler must update the RegionBegin and RegionEnd positions cached by
234 // Break the block into scheduling regions [I, RegionEnd), and schedule each
235 // region as soon as it is discovered. RegionEnd points the scheduling
236 // boundary at the bottom of the region. The DAG does not include RegionEnd,
237 // but the region does (i.e. the next RegionEnd is above the previous
238 // RegionBegin). If the current block has no terminator then RegionEnd ==
243 // 'RegionEnd' are invalid across these calls.
245 for(MachineBasicBlock::iterator RegionEnd = MBB->end();
246 RegionEnd != MBB->begin(); RegionEnd = Scheduler->begin()) {
248 // Avoid decrementing RegionEnd for blocks with no terminator.
249 if (RegionEnd != MBB->end()
250 || TII->isSchedulingBoundary(llvm::prior(RegionEnd), MBB, *MF)) {
251 --RegionEnd;
258 MachineBasicBlock::iterator I = RegionEnd;
265 Scheduler->enterRegion(MBB, I, RegionEnd, RemainingInstrs);
268 if (I == RegionEnd || I == llvm::prior(RegionEnd)) {
270 // This invalidates 'RegionEnd' and 'I'.
278 if (RegionEnd != MBB->end()) dbgs() << *RegionEnd;
283 // This invalidates 'RegionEnd' and 'I'.
291 RegionEnd = Scheduler->begin();
455 (RegionEnd == bb->end()) ? RegionEndRegionEnd);
487 if (LiveRegionEnd != RegionEnd)
490 assert(BotRPTracker.getPos() == RegionEnd && "Can't find the region bottom");
534 /// after setting up the current scheduling region. [RegionBegin, RegionEnd)
593 if (LiveRegionEnd != RegionEnd)
668 CurrentTop = nextIfDebug(RegionBegin, RegionEnd);
671 CurrentBottom = RegionEnd;
753 if (OrigPrevMI == llvm::prior(RegionEnd))
754 RegionEnd = DbgValue;