Lines Matching refs:BinaryBasicBlock

123 bool TailDuplication::isOverwrittenBeforeUsed(BinaryBasicBlock &StartBB,  in isOverwrittenBeforeUsed()
127 std::queue<BinaryBasicBlock *> Q; in isOverwrittenBeforeUsed()
129 BinaryBasicBlock *NextBB = *Itr; in isOverwrittenBeforeUsed()
132 std::set<BinaryBasicBlock *> Visited; in isOverwrittenBeforeUsed()
136 BinaryBasicBlock *CurrBB = Q.front(); in isOverwrittenBeforeUsed()
154 BinaryBasicBlock *NextBB = *Itr; in isOverwrittenBeforeUsed()
162 BinaryBasicBlock &OriginalBB, in constantAndCopyPropagate()
163 std::vector<BinaryBasicBlock *> &BlocksToPropagate) { in constantAndCopyPropagate()
195 for (BinaryBasicBlock *NextBB : BlocksToPropagate) { in constantAndCopyPropagate()
254 bool TailDuplication::isInCacheLine(const BinaryBasicBlock &BB, in isInCacheLine()
255 const BinaryBasicBlock &Succ) const { in isInCacheLine()
271 std::vector<BinaryBasicBlock *>
272 TailDuplication::moderateDuplicate(BinaryBasicBlock &BB, in moderateDuplicate()
273 BinaryBasicBlock &Tail) const { in moderateDuplicate()
274 std::vector<BinaryBasicBlock *> BlocksToDuplicate; in moderateDuplicate()
294 std::vector<BinaryBasicBlock *>
295 TailDuplication::aggressiveDuplicate(BinaryBasicBlock &BB, in aggressiveDuplicate()
296 BinaryBasicBlock &Tail) const { in aggressiveDuplicate()
297 std::vector<BinaryBasicBlock *> BlocksToDuplicate; in aggressiveDuplicate()
305 BinaryBasicBlock *CurrBB = &BB; in aggressiveDuplicate()
342 BinaryBasicBlock *SuccBB = CurrBB->getSuccessor(); in aggressiveDuplicate()
350 [](int value, BinaryBasicBlock *p) { in aggressiveDuplicate()
364 bool TailDuplication::shouldDuplicate(BinaryBasicBlock *Pred, in shouldDuplicate()
365 BinaryBasicBlock *Tail) const { in shouldDuplicate()
386 assert(Count != BinaryBasicBlock::COUNT_NO_PROFILE); in cacheScore()
408 BinaryBasicBlock *Pred, in cacheScoreImproved()
409 BinaryBasicBlock *Tail) const { in cacheScoreImproved()
411 DenseMap<const BinaryBasicBlock *, uint64_t> BBSize; in cacheScoreImproved()
412 for (const BinaryBasicBlock &BB : BF) { in cacheScoreImproved()
417 DenseMap<BinaryBasicBlock *, uint64_t> CurAddr; in cacheScoreImproved()
419 for (BinaryBasicBlock *SrcBB : BF.getLayout().blocks()) { in cacheScoreImproved()
425 DenseMap<BinaryBasicBlock *, uint64_t> NewAddr; in cacheScoreImproved()
427 for (BinaryBasicBlock *SrcBB : BF.getLayout().blocks()) { in cacheScoreImproved()
436 for (BinaryBasicBlock *SrcBB : BF.getLayout().blocks()) { in cacheScoreImproved()
438 for (BinaryBasicBlock *DstBB : SrcBB->successors()) { in cacheScoreImproved()
449 for (BinaryBasicBlock *SrcBB : BF.getLayout().blocks()) { in cacheScoreImproved()
451 for (BinaryBasicBlock *DstBB : SrcBB->successors()) { in cacheScoreImproved()
469 std::vector<BinaryBasicBlock *>
471 BinaryFunction &BF, BinaryBasicBlock *Pred, in cacheDuplicate()
472 BinaryBasicBlock *Tail) const { in cacheDuplicate()
473 std::vector<BinaryBasicBlock *> BlocksToDuplicate; in cacheDuplicate()
503 std::vector<BinaryBasicBlock *> TailDuplication::duplicateBlocks( in duplicateBlocks()
504 BinaryBasicBlock &BB, in duplicateBlocks()
505 const std::vector<BinaryBasicBlock *> &BlocksToDuplicate) const { in duplicateBlocks()
519 BinaryBasicBlock::BinaryBranchInfo &LastBI = in duplicateBlocks()
522 BinaryBasicBlock *LastOriginalBB = &BB; in duplicateBlocks()
523 BinaryBasicBlock *LastDuplicatedBB = &BB; in duplicateBlocks()
528 std::vector<std::unique_ptr<BinaryBasicBlock>> DuplicatedBlocks; in duplicateBlocks()
529 std::vector<BinaryBasicBlock *> DuplicatedBlocksToReturn; in duplicateBlocks()
531 for (BinaryBasicBlock *CurBB : BlocksToDuplicate) { in duplicateBlocks()
534 BinaryBasicBlock *NewBB = DuplicatedBlocks.back().get(); in duplicateBlocks()
584 for (BinaryBasicBlock *BB : BlockLayout) { in runOnFunction()
590 BinaryBasicBlock *Tail = BB->getSuccessor(); in runOnFunction()
595 std::vector<BinaryBasicBlock *> BlocksToDuplicate; in runOnFunction()
613 for (BinaryBasicBlock *BB : DuplicatedBlocks) { in runOnFunction()
620 BinaryBasicBlock *FirstBB = BlocksToDuplicate[0]; in runOnFunction()
622 BinaryBasicBlock *PredBB = *FirstBB->pred_begin(); in runOnFunction()