Lines Matching defs:Block
68 // right away, to be contained in a block. Block inputs and outputs would
531 "Loop in the Block Graph!");
553 "Loop in the Block Graph!");
558 dbgs() << "Block (" << ID << ")\n";
1215 for (SIScheduleBlock *Block : CurrentBlocks)
1216 Block->finalizeUnits();
1219 for (SIScheduleBlock *Block : CurrentBlocks)
1220 Block->printDebug(true);
1249 SIScheduleBlock *Block = CurrentBlocks[i];
1250 unsigned Degree = Block->getSuccs().size();
1260 SIScheduleBlock *Block = CurrentBlocks[i];
1264 for (SIScheduleBlock* Pred : Block->getPreds()) {
1273 SIScheduleBlock *Block = CurrentBlocks[i];
1274 for (SIScheduleBlock* Pred : Block->getPreds()) {
1290 // We do schedule a valid scheduling such that a Block corresponds
1294 SIScheduleBlock *Block = CurrentBlocks[i];
1295 Block->fastSchedule();
1310 SIScheduleBlock *Block = CurrentBlocks[BlockIndice];
1311 std::vector<SUnit*> SUs = Block->getScheduledUnits();
1336 // Now we have Block of SUs == Block of MI.
1338 // The property that all the SUs of the Block are grouped together as MI
1341 SIScheduleBlock *Block = CurrentBlocks[i];
1342 std::vector<SUnit*> SUs = Block->getScheduledUnits();
1343 Block->schedule((*SUs.begin())->getInstr(), (*SUs.rbegin())->getInstr());
1361 for (SIScheduleBlock *Block : CurrentBlocks)
1362 Block->printDebug(true);
1371 SIScheduleBlock *Block = CurrentBlocks[BlockIndice];
1372 if (Block->getPreds().empty())
1373 Block->Depth = 0;
1376 for (SIScheduleBlock *Pred : Block->getPreds()) {
1380 Block->Depth = Depth;
1386 SIScheduleBlock *Block = CurrentBlocks[BlockIndice];
1387 if (Block->getSuccs().empty())
1388 Block->Height = 0;
1391 for (const auto &Succ : Block->getSuccs())
1393 Block->Height = Height;
1418 for (SIScheduleBlock *Block : Blocks) {
1419 for (unsigned Reg : Block->getInRegs()) {
1422 for (SIScheduleBlock* Pred: Block->getPreds()) {
1447 SIScheduleBlock *Block = Blocks[i];
1448 BlockNumPredsLeft[i] = Block->getPreds().size();
1449 BlockNumSuccsLeft[i] = Block->getSuccs().size();
1454 SIScheduleBlock *Block = Blocks[i];
1455 assert(Block->getID() == i);
1469 SIScheduleBlock *Block = Blocks[ID];
1470 const std::set<unsigned> &OutRegs = Block->getOutRegs();
1482 for (SIScheduleBlock *Block : Blocks) {
1483 for (unsigned Reg : Block->getInRegs()) {
1485 for (SIScheduleBlock* Pred: Block->getPreds()) {
1501 SIScheduleBlock *Block = Blocks[i];
1503 ReadyBlocks.push_back(Block);
1507 while (SIScheduleBlock *Block = pickBlock()) {
1508 BlocksScheduled.push_back(Block);
1509 blockScheduled(Block);
1512 LLVM_DEBUG(dbgs() << "Block Order:"; for (SIScheduleBlock *Block
1514 dbgs() << ' ' << Block->getID();
1568 SIScheduleBlock *Block;
1579 for (SIScheduleBlock *Block
1581 << Block->getID() << ' ';
1590 Cand.Block = nullptr;
1594 TryCand.Block = *I;
1595 TryCand.IsHighLatency = TryCand.Block->isHighLatencyBlock();
1597 checkRegUsageImpact(TryCand.Block->getInRegs(),
1598 TryCand.Block->getOutRegs())[AMDGPU::RegisterPressureSets::VGPR_32];
1599 TryCand.NumSuccessors = TryCand.Block->getSuccs().size();
1601 TryCand.Block->getNumHighLatencySuccessors();
1604 LastPosHighLatencyParentScheduled[TryCand.Block->getID()] -
1606 TryCand.Height = TryCand.Block->Height;
1620 LLVM_DEBUG(dbgs() << "Best Current Choice: " << Cand.Block->getID() << ' '
1625 LLVM_DEBUG(dbgs() << "Picking: " << Cand.Block->getID() << '\n';
1633 Block = Cand.Block;
1635 return Block;
1650 void SIScheduleBlockScheduler::decreaseLiveRegs(SIScheduleBlock *Block,
1665 for (const auto &Block : Parent->getSuccs()) {
1666 if (--BlockNumPredsLeft[Block.first->getID()] == 0)
1667 ReadyBlocks.push_back(Block.first);
1670 Block.second == SIScheduleBlockLinkKind::Data)
1671 LastPosHighLatencyParentScheduled[Block.first->getID()] = NumBlockScheduled;
1675 void SIScheduleBlockScheduler::blockScheduled(SIScheduleBlock *Block) {
1676 decreaseLiveRegs(Block, Block->getInRegs());
1677 addLiveRegs(Block->getOutRegs());
1678 releaseBlockSuccs(Block);
1679 for (const auto &RegP : LiveOutRegsNumUsages[Block->getID()]) {
1685 if (LastPosHighLatencyParentScheduled[Block->getID()] >
1688 LastPosHighLatencyParentScheduled[Block->getID()];
1735 for (SIScheduleBlock *Block : ScheduledBlocks) {
1736 std::vector<SUnit*> SUs = Block->getScheduledUnits();