Lines Matching defs:Chain

115   void merge(MachineBasicBlock *BB, BlockChain *Chain) {
120 if (!Chain) {
127 assert(BB == *Chain->begin());
128 assert(Chain->begin() != Chain->end());
132 for (BlockChain::iterator BI = Chain->begin(), BE = Chain->end();
135 assert(BlockToChain[*BI] == Chain && "Incoming blocks not in chain");
193 void markChainSuccessors(BlockChain &Chain,
198 BlockChain &Chain,
201 BlockChain &Chain, SmallVectorImpl<MachineBasicBlock *> &WorkList,
208 void buildChain(MachineBasicBlock *BB, BlockChain &Chain,
280 BlockChain &Chain,
286 for (BlockChain::iterator CBI = Chain.begin(), CBE = Chain.end();
299 if (&Chain == &SuccChain || *SI == LoopHeaderBB)
320 MachineBasicBlock *BB, BlockChain &Chain,
341 if (&SuccChain == &Chain) {
370 BlockToChain[*PI] == &Chain)
426 BlockChain &Chain, SmallVectorImpl<MachineBasicBlock *> &WorkList,
433 IsBlockPlaced(Chain, BlockToChain)),
442 if (&SuccChain == &Chain) {
488 BlockChain &Chain,
492 assert(BlockToChain[BB] == &Chain);
497 markChainSuccessors(Chain, LoopHeaderBB, BlockWorkList, BlockFilter);
498 BB = *llvm::prior(Chain.end());
501 assert(BlockToChain[BB] == &Chain);
502 assert(*llvm::prior(Chain.end()) == BB);
506 MachineBasicBlock *BestSucc = selectBestSuccessor(BB, Chain, BlockFilter);
512 BestSucc = selectBestCandidateBlock(Chain, BlockWorkList, BlockFilter);
515 BestSucc = getFirstUnplacedBlock(F, Chain, PrevUnplacedBlockIt,
532 Chain.merge(BestSucc, &SuccChain);
533 BB = *llvm::prior(Chain.end());
537 << getBlockNum(*Chain.begin()) << "\n");
635 BlockChain &Chain = *BlockToChain[*I];
638 if (*I != *llvm::prior(Chain.end()))
662 if (&Chain == &SuccChain) {
811 BlockChain &Chain = *BlockToChain[*BI];
812 if (!UpdatedPreds.insert(&Chain))
815 assert(Chain.LoopPredecessors == 0);
816 for (BlockChain::iterator BCI = Chain.begin(), BCE = Chain.end();
818 assert(BlockToChain[*BCI] == &Chain);
822 if (BlockToChain[*PI] == &Chain || !LoopBlockSet.count(*PI))
824 ++Chain.LoopPredecessors;
828 if (Chain.LoopPredecessors == 0)
829 BlockWorkList.push_back(*Chain.begin());
842 << " Chain header: " << getBlockName(*LoopChain.begin()) << "\n";
853 << " Chain header: " << getBlockName(*LoopChain.begin()) << "\n"
865 << " Chain header: " << getBlockName(*LoopChain.begin()) << "\n"
878 BlockChain *Chain
896 Chain->merge(NextBB, 0);
912 BlockChain &Chain = *BlockToChain[BB];
913 if (!UpdatedPreds.insert(&Chain))
916 assert(Chain.LoopPredecessors == 0);
917 for (BlockChain::iterator BCI = Chain.begin(), BCE = Chain.end();
919 assert(BlockToChain[*BCI] == &Chain);
923 if (BlockToChain[*PI] == &Chain)
925 ++Chain.LoopPredecessors;
929 if (Chain.LoopPredecessors == 0)
930 BlockWorkList.push_back(*Chain.begin());