Lines Matching refs:BlockChain
199 class BlockChain;
202 using BlockToChainMapType = DenseMap<const MachineBasicBlock *, BlockChain *>;
215 class BlockChain { class
236 BlockChain(BlockToChainMapType &BlockToChain, MachineBasicBlock *BB) in BlockChain() function in __anon127788320111::BlockChain
270 void merge(MachineBasicBlock *BB, BlockChain *Chain) { in merge()
379 SpecificBumpPtrAllocator<BlockChain> ChainAllocator;
387 DenseMap<const MachineBasicBlock *, BlockChain *> BlockToChain;
400 const BlockChain &Chain, const MachineBasicBlock *LoopHeaderBB,
406 const BlockChain &Chain, const MachineBasicBlock *BB,
412 const MachineBasicBlock *BB, const BlockChain &Chain,
417 const BlockChain &Chain, const BlockFilterSet *BlockFilter,
422 BlockChain &Chain, BlockFilterSet *BlockFilter,
426 BlockChain &Chain, BlockFilterSet *BlockFilter,
431 const BlockChain &SuccChain, BranchProbability SuccProb,
432 BranchProbability RealSuccProb, const BlockChain &Chain,
435 const MachineBasicBlock *BB, const BlockChain &Chain,
438 const BlockChain &Chain, SmallVectorImpl<MachineBasicBlock *> &WorkList);
440 const BlockChain &PlacedChain,
450 SmallPtrSetImpl<BlockChain *> &UpdatedPreds,
453 void buildChain(const MachineBasicBlock *BB, BlockChain &Chain,
462 BlockChain &LoopChain, const MachineBasicBlock *ExitingBB,
465 BlockChain &LoopChain, const MachineLoop &L,
478 const BlockChain &Chain, const BlockFilterSet *BlockFilter);
483 const BlockChain &Chain, const BlockFilterSet *BlockFilter);
489 BranchProbability AdjustedSumProb, const BlockChain &Chain,
501 const BlockChain &Chain, const BlockFilterSet *BlockFilter);
568 const BlockChain &Chain, const MachineBasicBlock *LoopHeaderBB, in markChainSuccessors()
584 const BlockChain &Chain, const MachineBasicBlock *MBB, in markBlockSuccessors()
593 BlockChain &SuccChain = *BlockToChain[Succ]; in markBlockSuccessors()
617 const MachineBasicBlock *BB, const BlockChain &Chain, in collectViableSuccessors()
642 BlockChain *SuccChain = BlockToChain[Succ]; in collectViableSuccessors()
726 const BlockChain &Chain, const BlockFilterSet *BlockFilter) { in isProfitableToTailDup()
880 const BlockChain &Chain, const BlockFilterSet *BlockFilter) { in isTrellis()
902 const BlockChain *PredChain = BlockToChain[SuccPred]; in isTrellis()
975 BranchProbability AdjustedSumProb, const BlockChain &Chain, in getBestTrellisSuccessor()
1059 const BlockChain &Chain, const BlockFilterSet *BlockFilter) { in canTailDuplicateUnplacedPreds()
1278 const BlockChain &SuccChain, BranchProbability SuccProb, in hasBetterLayoutPredecessor()
1279 BranchProbability RealSuccProb, const BlockChain &Chain, in hasBetterLayoutPredecessor()
1457 const MachineBasicBlock *BB, const BlockChain &Chain, in selectBestSuccessor()
1477 BlockChain *SuccChain = BlockToChain[Succ]; in selectBestSuccessor()
1499 BlockChain &SuccChain = *BlockToChain[Succ]; in selectBestSuccessor()
1572 const BlockChain &Chain, SmallVectorImpl<MachineBasicBlock *> &WorkList) { in selectBestCandidateBlock()
1594 BlockChain &SuccChain = *BlockToChain[MBB]; in selectBestCandidateBlock()
1641 const BlockChain &PlacedChain, in getFirstUnplacedBlock()
1661 SmallPtrSetImpl<BlockChain *> &UpdatedPreds, in fillWorkLists()
1663 BlockChain &Chain = *BlockToChain[MBB]; in fillWorkLists()
1693 const MachineBasicBlock *HeadBB, BlockChain &Chain, in buildChain()
1745 BlockChain &SuccChain = *BlockToChain[BestSucc]; in buildChain()
1786 BlockChain &HeaderChain = *BlockToChain[L.getHeader()]; in findBestLoopTop()
1845 BlockChain &HeaderChain = *BlockToChain[L.getHeader()]; in findBestLoopExit()
1860 BlockChain &Chain = *BlockToChain[MBB]; in findBestLoopExit()
1878 BlockChain &SuccChain = *BlockToChain[Succ]; in findBestLoopExit()
1956 void MachineBlockPlacement::rotateLoop(BlockChain &LoopChain, in rotateLoop()
1971 BlockChain *PredChain = BlockToChain[Pred]; in rotateLoop()
1984 BlockChain *SuccChain = BlockToChain[Succ]; in rotateLoop()
1991 BlockChain::iterator ExitIt = llvm::find(LoopChain, ExitingBB); in rotateLoop()
2042 BlockChain &LoopChain, const MachineLoop &L, in rotateLoopWithProfile()
2066 BlockChain *PredChain = BlockToChain[Pred]; in rotateLoopWithProfile()
2088 BlockChain *SuccChain = BlockToChain[Succ]; in rotateLoopWithProfile()
2255 BlockChain &LoopChain = *BlockToChain[LoopTop]; in buildLoopChains()
2260 SmallPtrSet<BlockChain *, 4> UpdatedPreds; in buildLoopChains()
2319 BlockChain *Chain = in buildCFGChains()
2320 new (ChainAllocator.Allocate()) BlockChain(BlockToChain, BB); in buildCFGChains()
2356 SmallPtrSet<BlockChain *, 4> UpdatedPreds; in buildCFGChains()
2360 BlockChain &FunctionChain = *BlockToChain[&F->front()]; in buildCFGChains()
2461 BlockChain &FunctionChain = *BlockToChain[&F->front()]; in optimizeBranches()
2503 BlockChain &FunctionChain = *BlockToChain[&F->front()]; in alignBlocks()
2581 BlockChain &Chain, BlockFilterSet *BlockFilter, in repeatedlyTailDuplicateBlock()
2605 BlockChain::iterator ChainEnd = Chain.end(); in repeatedlyTailDuplicateBlock()
2642 BlockChain &Chain, BlockFilterSet *BlockFilter, in maybeTailDuplicateBlock()
2664 BlockChain *Chain = BlockToChain[RemBB]; in maybeTailDuplicateBlock()
2713 BlockChain* PredChain = BlockToChain[Pred]; in maybeTailDuplicateBlock()
2722 BlockChain *NewChain = BlockToChain[NewSucc]; in maybeTailDuplicateBlock()