Lines Matching refs:BinaryBasicBlock

124 bool TailDuplication::isOverwrittenBeforeUsed(BinaryBasicBlock &StartBB,  in isOverwrittenBeforeUsed()
128 std::queue<BinaryBasicBlock *> Q; in isOverwrittenBeforeUsed()
130 BinaryBasicBlock *NextBB = *Itr; in isOverwrittenBeforeUsed()
133 std::set<BinaryBasicBlock *> Visited; in isOverwrittenBeforeUsed()
137 BinaryBasicBlock *CurrBB = Q.front(); in isOverwrittenBeforeUsed()
155 BinaryBasicBlock *NextBB = *Itr; in isOverwrittenBeforeUsed()
163 BinaryBasicBlock &OriginalBB, in constantAndCopyPropagate()
164 std::vector<BinaryBasicBlock *> &BlocksToPropagate) { in constantAndCopyPropagate()
196 for (BinaryBasicBlock *NextBB : BlocksToPropagate) { in constantAndCopyPropagate()
255 bool TailDuplication::isInCacheLine(const BinaryBasicBlock &BB, in isInCacheLine()
256 const BinaryBasicBlock &Succ) const { in isInCacheLine()
272 std::vector<BinaryBasicBlock *>
273 TailDuplication::moderateDuplicate(BinaryBasicBlock &BB, in moderateDuplicate()
274 BinaryBasicBlock &Tail) const { in moderateDuplicate()
275 std::vector<BinaryBasicBlock *> BlocksToDuplicate; in moderateDuplicate()
295 std::vector<BinaryBasicBlock *>
296 TailDuplication::aggressiveDuplicate(BinaryBasicBlock &BB, in aggressiveDuplicate()
297 BinaryBasicBlock &Tail) const { in aggressiveDuplicate()
298 std::vector<BinaryBasicBlock *> BlocksToDuplicate; in aggressiveDuplicate()
306 BinaryBasicBlock *CurrBB = &Tail; in aggressiveDuplicate()
343 BinaryBasicBlock *SuccBB = CurrBB->getSuccessor(); in aggressiveDuplicate()
351 [](int value, BinaryBasicBlock *p) { in aggressiveDuplicate()
365 bool TailDuplication::shouldDuplicate(BinaryBasicBlock *Pred, in shouldDuplicate()
366 BinaryBasicBlock *Tail) const { in shouldDuplicate()
387 assert(Count != BinaryBasicBlock::COUNT_NO_PROFILE); in cacheScore()
409 BinaryBasicBlock *Pred, in cacheScoreImproved()
410 BinaryBasicBlock *Tail) const { in cacheScoreImproved()
412 DenseMap<const BinaryBasicBlock *, uint64_t> BBSize; in cacheScoreImproved()
413 for (const BinaryBasicBlock &BB : BF) { in cacheScoreImproved()
418 DenseMap<BinaryBasicBlock *, uint64_t> CurAddr; in cacheScoreImproved()
420 for (BinaryBasicBlock *SrcBB : BF.getLayout().blocks()) { in cacheScoreImproved()
426 DenseMap<BinaryBasicBlock *, uint64_t> NewAddr; in cacheScoreImproved()
428 for (BinaryBasicBlock *SrcBB : BF.getLayout().blocks()) { in cacheScoreImproved()
437 for (BinaryBasicBlock *SrcBB : BF.getLayout().blocks()) { in cacheScoreImproved()
439 for (BinaryBasicBlock *DstBB : SrcBB->successors()) { in cacheScoreImproved()
450 for (BinaryBasicBlock *SrcBB : BF.getLayout().blocks()) { in cacheScoreImproved()
452 for (BinaryBasicBlock *DstBB : SrcBB->successors()) { in cacheScoreImproved()
470 std::vector<BinaryBasicBlock *>
472 BinaryFunction &BF, BinaryBasicBlock *Pred, in cacheDuplicate()
473 BinaryBasicBlock *Tail) const { in cacheDuplicate()
474 std::vector<BinaryBasicBlock *> BlocksToDuplicate; in cacheDuplicate()
504 std::vector<BinaryBasicBlock *> TailDuplication::duplicateBlocks( in duplicateBlocks()
505 BinaryBasicBlock &BB, in duplicateBlocks()
506 const std::vector<BinaryBasicBlock *> &BlocksToDuplicate) const { in duplicateBlocks()
520 BinaryBasicBlock::BinaryBranchInfo &LastBI = in duplicateBlocks()
523 BinaryBasicBlock *LastOriginalBB = &BB; in duplicateBlocks()
524 BinaryBasicBlock *LastDuplicatedBB = &BB; in duplicateBlocks()
529 std::vector<std::unique_ptr<BinaryBasicBlock>> DuplicatedBlocks; in duplicateBlocks()
530 std::vector<BinaryBasicBlock *> DuplicatedBlocksToReturn; in duplicateBlocks()
532 for (BinaryBasicBlock *CurBB : BlocksToDuplicate) { in duplicateBlocks()
535 BinaryBasicBlock *NewBB = DuplicatedBlocks.back().get(); in duplicateBlocks()
585 for (BinaryBasicBlock *BB : BlockLayout) { in runOnFunction()
591 BinaryBasicBlock *Tail = BB->getSuccessor(); in runOnFunction()
596 std::vector<BinaryBasicBlock *> BlocksToDuplicate; in runOnFunction()
614 for (BinaryBasicBlock *BB : DuplicatedBlocks) { in runOnFunction()
621 BinaryBasicBlock *FirstBB = BlocksToDuplicate[0]; in runOnFunction()
623 BinaryBasicBlock *PredBB = *FirstBB->pred_begin(); in runOnFunction()