Lines Matching defs:Chain

119   void merge(MachineBasicBlock *BB, BlockChain *Chain) {
124 if (!Chain) {
131 assert(BB == *Chain->begin());
132 assert(Chain->begin() != Chain->end());
136 for (BlockChain::iterator BI = Chain->begin(), BE = Chain->end();
139 assert(BlockToChain[*BI] == Chain && "Incoming blocks not in chain");
196 void markChainSuccessors(BlockChain &Chain,
201 BlockChain &Chain,
204 BlockChain &Chain, SmallVectorImpl<MachineBasicBlock *> &WorkList,
211 void buildChain(MachineBasicBlock *BB, BlockChain &Chain,
283 BlockChain &Chain,
289 for (BlockChain::iterator CBI = Chain.begin(), CBE = Chain.end();
302 if (&Chain == &SuccChain || *SI == LoopHeaderBB)
323 MachineBasicBlock *BB, BlockChain &Chain,
344 if (&SuccChain == &Chain) {
373 BlockToChain[*PI] == &Chain)
429 BlockChain &Chain, SmallVectorImpl<MachineBasicBlock *> &WorkList,
436 IsBlockPlaced(Chain, BlockToChain)),
445 if (&SuccChain == &Chain) {
491 BlockChain &Chain,
495 assert(BlockToChain[BB] == &Chain);
500 markChainSuccessors(Chain, LoopHeaderBB, BlockWorkList, BlockFilter);
501 BB = *llvm::prior(Chain.end());
504 assert(BlockToChain[BB] == &Chain);
505 assert(*llvm::prior(Chain.end()) == BB);
510 BestSucc = selectBestSuccessor(BB, Chain, BlockFilter);
516 BestSucc = selectBestCandidateBlock(Chain, BlockWorkList, BlockFilter);
519 BestSucc = getFirstUnplacedBlock(F, Chain, PrevUnplacedBlockIt,
536 Chain.merge(BestSucc, &SuccChain);
537 BB = *llvm::prior(Chain.end());
541 << getBlockNum(*Chain.begin()) << "\n");
639 BlockChain &Chain = *BlockToChain[*I];
642 if (*I != *llvm::prior(Chain.end()))
666 if (&Chain == &SuccChain) {
815 BlockChain &Chain = *BlockToChain[*BI];
816 if (!UpdatedPreds.insert(&Chain))
819 assert(Chain.LoopPredecessors == 0);
820 for (BlockChain::iterator BCI = Chain.begin(), BCE = Chain.end();
822 assert(BlockToChain[*BCI] == &Chain);
826 if (BlockToChain[*PI] == &Chain || !LoopBlockSet.count(*PI))
828 ++Chain.LoopPredecessors;
832 if (Chain.LoopPredecessors == 0)
833 BlockWorkList.push_back(*Chain.begin());
846 << " Chain header: " << getBlockName(*LoopChain.begin()) << "\n";
857 << " Chain header: " << getBlockName(*LoopChain.begin()) << "\n"
869 << " Chain header: " << getBlockName(*LoopChain.begin()) << "\n"
882 BlockChain *Chain
900 Chain->merge(NextBB, 0);
916 BlockChain &Chain = *BlockToChain[BB];
917 if (!UpdatedPreds.insert(&Chain))
920 assert(Chain.LoopPredecessors == 0);
921 for (BlockChain::iterator BCI = Chain.begin(), BCE = Chain.end();
923 assert(BlockToChain[*BCI] == &Chain);
927 if (BlockToChain[*PI] == &Chain)
929 ++Chain.LoopPredecessors;
933 if (Chain.LoopPredecessors == 0)
934 BlockWorkList.push_back(*Chain.begin());