Lines Matching defs:BlockChain
244 class BlockChain;
247 using BlockToChainMapType = DenseMap<const MachineBasicBlock *, BlockChain *>;
260 class BlockChain {
276 /// Construct a new BlockChain.
281 BlockChain(BlockToChainMapType &BlockToChain, MachineBasicBlock *BB)
315 void merge(MachineBasicBlock *BB, BlockChain *Chain) {
430 /// Allocator and owner of BlockChain structures.
437 SpecificBumpPtrAllocator<BlockChain> ChainAllocator;
439 /// Function wide BasicBlock to BlockChain mapping.
442 /// BlockChain it participates in, if any. We use it to, among other things,
445 DenseMap<const MachineBasicBlock *, BlockChain *> BlockToChain;
474 void markChainSuccessors(const BlockChain &Chain,
480 void markBlockSuccessors(const BlockChain &Chain, const MachineBasicBlock *BB,
485 collectViableSuccessors(const MachineBasicBlock *BB, const BlockChain &Chain,
495 const MachineBasicBlock *LoopHeaderBB, BlockChain &Chain,
501 BlockChain &Chain, BlockFilterSet *BlockFilter,
507 const BlockChain &SuccChain,
510 const BlockChain &Chain,
513 const BlockChain &Chain,
516 selectBestCandidateBlock(const BlockChain &Chain,
519 getFirstUnplacedBlock(const BlockChain &PlacedChain,
522 getFirstUnplacedBlock(const BlockChain &PlacedChain,
532 SmallPtrSetImpl<BlockChain *> &UpdatedPreds,
535 void buildChain(const MachineBasicBlock *BB, BlockChain &Chain,
557 void rotateLoop(BlockChain &LoopChain, const MachineBasicBlock *ExitingBB,
559 void rotateLoopWithProfile(BlockChain &LoopChain, const MachineLoop &L,
571 BranchProbability QProb, const BlockChain &Chain,
577 const BlockChain &Chain, const BlockFilterSet *BlockFilter);
583 BranchProbability AdjustedSumProb, const BlockChain &Chain,
595 const BlockChain &Chain,
674 const BlockChain &Chain, const MachineBasicBlock *LoopHeaderBB,
690 const BlockChain &Chain, const MachineBasicBlock *MBB,
699 BlockChain &SuccChain = *BlockToChain[Succ];
723 const MachineBasicBlock *BB, const BlockChain &Chain,
748 BlockChain *SuccChain = BlockToChain[Succ];
831 BranchProbability QProb, const BlockChain &Chain,
986 const BlockChain &Chain, const BlockFilterSet *BlockFilter) {
1008 const BlockChain *PredChain = BlockToChain[SuccPred];
1081 BranchProbability AdjustedSumProb, const BlockChain &Chain,
1165 const BlockChain &Chain, const BlockFilterSet *BlockFilter) {
1430 const BlockChain &SuccChain, BranchProbability SuccProb,
1431 BranchProbability RealSuccProb, const BlockChain &Chain,
1559 BlockChain *PredChain = BlockToChain[Pred];
1610 const BlockChain &Chain,
1630 BlockChain *SuccChain = BlockToChain[Succ];
1652 BlockChain &SuccChain = *BlockToChain[Succ];
1722 const BlockChain &Chain, SmallVectorImpl<MachineBasicBlock *> &WorkList) {
1742 BlockChain &SuccChain = *BlockToChain[MBB];
1790 const BlockChain &PlacedChain,
1817 const BlockChain &PlacedChain,
1823 BlockChain *C = BlockToChain[*PrevUnplacedBlockInFilterIt];
1832 const MachineBasicBlock *MBB, SmallPtrSetImpl<BlockChain *> &UpdatedPreds,
1834 BlockChain &Chain = *BlockToChain[MBB];
1864 BlockChain &Chain,
1924 BlockChain &SuccChain = *BlockToChain[BestSucc];
1976 BlockChain *PredChain = BlockToChain[Pred];
1985 BlockChain *SuccChain = BlockToChain[Succ];
2043 BlockChain *PredChain = BlockToChain[Pred];
2063 BlockChain *SuccChain = BlockToChain[Succ];
2120 BlockChain &HeaderChain = *BlockToChain[OldTop];
2223 BlockChain &HeaderChain = *BlockToChain[L.getHeader()];
2238 BlockChain &Chain = *BlockToChain[MBB];
2256 BlockChain &SuccChain = *BlockToChain[Succ];
2336 BlockChain *PredChain = BlockToChain[Pred];
2345 BlockChain *SuccChain = BlockToChain[Succ];
2366 void MachineBlockPlacement::rotateLoop(BlockChain &LoopChain,
2391 BlockChain *SuccChain = BlockToChain[Succ];
2404 BlockChain::iterator ExitIt = llvm::find(LoopChain, ExitingBB);
2455 BlockChain &LoopChain, const MachineLoop &L,
2482 BlockChain *PredChain = BlockToChain[Pred];
2504 BlockChain *SuccChain = BlockToChain[Succ];
2629 BlockChain *Chain = BlockToChain[LoopBB];
2685 BlockChain &LoopChain = *BlockToChain[LoopTop];
2690 SmallPtrSet<BlockChain *, 4> UpdatedPreds;
2749 BlockChain *Chain =
2750 new (ChainAllocator.Allocate()) BlockChain(BlockToChain, BB);
2786 SmallPtrSet<BlockChain *, 4> UpdatedPreds;
2790 BlockChain &FunctionChain = *BlockToChain[&F->front()];
2908 BlockChain &FunctionChain = *BlockToChain[&F->front()];
2958 BlockChain &FunctionChain = *BlockToChain[&F->front()];
3103 const MachineBasicBlock *LoopHeaderBB, BlockChain &Chain,
3125 BlockChain::iterator ChainEnd = Chain.end();
3160 MachineBasicBlock *BB, MachineBasicBlock *LPred, BlockChain &Chain,
3182 BlockChain *Chain = It->second;
3254 BlockChain *PredChain = BlockToChain[Pred];
3263 BlockChain *NewChain = BlockToChain[NewSucc];
3296 BlockChain *PredChain = BlockToChain[Pred];
3306 BlockChain *SuccChain = BlockToChain[Succ];
3761 BlockChain *FunctionChain =
3762 new (ChainAllocator.Allocate()) BlockChain(BlockToChain, HeadBB);