Lines Matching defs:BlockChain
234 class BlockChain;
237 using BlockToChainMapType = DenseMap<const MachineBasicBlock *, BlockChain *>;
250 class BlockChain {
266 /// Construct a new BlockChain.
271 BlockChain(BlockToChainMapType &BlockToChain, MachineBasicBlock *BB)
305 void merge(MachineBasicBlock *BB, BlockChain *Chain) {
416 /// Allocator and owner of BlockChain structures.
423 SpecificBumpPtrAllocator<BlockChain> ChainAllocator;
425 /// Function wide BasicBlock to BlockChain mapping.
428 /// BlockChain it participates in, if any. We use it to, among other things,
431 DenseMap<const MachineBasicBlock *, BlockChain *> BlockToChain;
461 const BlockChain &Chain, const MachineBasicBlock *LoopHeaderBB,
467 const BlockChain &Chain, const MachineBasicBlock *BB,
473 const MachineBasicBlock *BB, const BlockChain &Chain,
483 const MachineBasicBlock *LoopHeaderBB, BlockChain &Chain,
489 BlockChain &Chain, BlockFilterSet *BlockFilter,
495 const BlockChain &SuccChain, BranchProbability SuccProb,
496 BranchProbability RealSuccProb, const BlockChain &Chain,
499 const MachineBasicBlock *BB, const BlockChain &Chain,
502 const BlockChain &Chain, SmallVectorImpl<MachineBasicBlock *> &WorkList);
504 getFirstUnplacedBlock(const BlockChain &PlacedChain,
507 getFirstUnplacedBlock(const BlockChain &PlacedChain,
517 SmallPtrSetImpl<BlockChain *> &UpdatedPreds,
520 void buildChain(const MachineBasicBlock *BB, BlockChain &Chain,
542 BlockChain &LoopChain, const MachineBasicBlock *ExitingBB,
545 BlockChain &LoopChain, const MachineLoop &L,
558 const BlockChain &Chain, const BlockFilterSet *BlockFilter);
563 const BlockChain &Chain, const BlockFilterSet *BlockFilter);
569 BranchProbability AdjustedSumProb, const BlockChain &Chain,
581 const BlockChain &Chain, const BlockFilterSet *BlockFilter);
659 const BlockChain &Chain, const MachineBasicBlock *LoopHeaderBB,
675 const BlockChain &Chain, const MachineBasicBlock *MBB,
684 BlockChain &SuccChain = *BlockToChain[Succ];
708 const MachineBasicBlock *BB, const BlockChain &Chain,
733 BlockChain *SuccChain = BlockToChain[Succ];
817 const BlockChain &Chain, const BlockFilterSet *BlockFilter) {
971 const BlockChain &Chain, const BlockFilterSet *BlockFilter) {
993 const BlockChain *PredChain = BlockToChain[SuccPred];
1066 BranchProbability AdjustedSumProb, const BlockChain &Chain,
1150 const BlockChain &Chain, const BlockFilterSet *BlockFilter) {
1417 const BlockChain &SuccChain, BranchProbability SuccProb,
1418 BranchProbability RealSuccProb, const BlockChain &Chain,
1546 BlockChain *PredChain = BlockToChain[Pred];
1597 const MachineBasicBlock *BB, const BlockChain &Chain,
1617 BlockChain *SuccChain = BlockToChain[Succ];
1639 BlockChain &SuccChain = *BlockToChain[Succ];
1709 const BlockChain &Chain, SmallVectorImpl<MachineBasicBlock *> &WorkList) {
1729 BlockChain &SuccChain = *BlockToChain[MBB];
1777 const BlockChain &PlacedChain,
1804 const BlockChain &PlacedChain,
1810 BlockChain *C = BlockToChain[*PrevUnplacedBlockInFilterIt];
1820 SmallPtrSetImpl<BlockChain *> &UpdatedPreds,
1822 BlockChain &Chain = *BlockToChain[MBB];
1852 const MachineBasicBlock *HeadBB, BlockChain &Chain,
1914 BlockChain &SuccChain = *BlockToChain[BestSucc];
1969 BlockChain *PredChain = BlockToChain[Pred];
1978 BlockChain *SuccChain = BlockToChain[Succ];
2039 BlockChain *PredChain = BlockToChain[Pred];
2059 BlockChain *SuccChain = BlockToChain[Succ];
2118 BlockChain &HeaderChain = *BlockToChain[OldTop];
2223 BlockChain &HeaderChain = *BlockToChain[L.getHeader()];
2238 BlockChain &Chain = *BlockToChain[MBB];
2256 BlockChain &SuccChain = *BlockToChain[Succ];
2338 BlockChain *PredChain = BlockToChain[Pred];
2347 BlockChain *SuccChain = BlockToChain[Succ];
2368 void MachineBlockPlacement::rotateLoop(BlockChain &LoopChain,
2393 BlockChain *SuccChain = BlockToChain[Succ];
2406 BlockChain::iterator ExitIt = llvm::find(LoopChain, ExitingBB);
2457 BlockChain &LoopChain, const MachineLoop &L,
2484 BlockChain *PredChain = BlockToChain[Pred];
2506 BlockChain *SuccChain = BlockToChain[Succ];
2623 BlockChain *Chain = BlockToChain[LoopBB];
2675 BlockChain &LoopChain = *BlockToChain[LoopTop];
2680 SmallPtrSet<BlockChain *, 4> UpdatedPreds;
2739 BlockChain *Chain =
2740 new (ChainAllocator.Allocate()) BlockChain(BlockToChain, BB);
2776 SmallPtrSet<BlockChain *, 4> UpdatedPreds;
2780 BlockChain &FunctionChain = *BlockToChain[&F->front()];
2898 BlockChain &FunctionChain = *BlockToChain[&F->front()];
2939 BlockChain &FunctionChain = *BlockToChain[&F->front()];
3056 const MachineBasicBlock *LoopHeaderBB, BlockChain &Chain,
3078 BlockChain::iterator ChainEnd = Chain.end();
3113 MachineBasicBlock *BB, MachineBasicBlock *LPred, BlockChain &Chain,
3136 BlockChain *Chain = BlockToChain[RemBB];
3208 BlockChain* PredChain = BlockToChain[Pred];
3217 BlockChain *NewChain = BlockToChain[NewSucc];
3250 BlockChain *PredChain = BlockToChain[Pred];
3260 BlockChain *SuccChain = BlockToChain[Succ];
3694 BlockChain *FunctionChain =
3695 new (ChainAllocator.Allocate()) BlockChain(BlockToChain, HeadBB);