Lines Matching refs:BinaryBasicBlock
14 #include "bolt/Core/BinaryBasicBlock.h"
130 return llvm::all_of(BF.blocks(), [](const BinaryBasicBlock &BB) {
131 return BB.getExecutionCount() != BinaryBasicBlock::COUNT_NO_PROFILE;
136 return llvm::all_of(BF.blocks(), [](const BinaryBasicBlock &BB) {
149 for (BinaryBasicBlock *const BB : llvm::make_range(Start, End)) {
189 BinaryBasicBlock *BB = BlockOrder[Index];
217 DenseMap<const BinaryBasicBlock *, size_t> GlobalIndices;
218 DenseMap<const BinaryBasicBlock *, size_t> BBSizes;
219 DenseMap<const BinaryBasicBlock *, size_t> BBOffsets;
222 std::vector<SmallVector<const BinaryBasicBlock *, 0>> Callers;
223 std::vector<SmallVector<const BinaryBasicBlock *, 0>> Callees;
237 // This populates BinaryBasicBlock::OutputAddressRange which
241 for (BinaryBasicBlock *BB : BF->getLayout().blocks()) {
264 for (BinaryBasicBlock &SrcBB : SrcFunction->blocks()) {
286 const BinaryBasicBlock *DstBB = &(DstFunction->front());
299 /// Populate BinaryBasicBlock::OutputAddressRange with estimated basic block
313 BinaryBasicBlock *BB = BlockOrder[Index];
330 for (BinaryBasicBlock *BB : BlockOrder) {
360 const BinaryBasicBlock *ThisBB = &(ThisBF->front());
367 const BinaryBasicBlock *DstBB = &(DstBF->front());
372 for (const BinaryBasicBlock *SrcBB : Callers[DstGI]) {
416 for (const BinaryBasicBlock *SrcBB : BlockOrder) {
423 const BinaryBasicBlock *DstBB = std::get<0>(Pair);
424 const BinaryBasicBlock::BinaryBranchInfo &Branch = std::get<1>(Pair);
452 for (const BinaryBasicBlock *SrcBB : BlockOrder) {
462 for (const BinaryBasicBlock *DstBB : Callees[GlobalIndices[SrcBB]]) {
509 // Populate BinaryBasicBlock::OutputAddressRange with estimated
543 const BinaryBasicBlock *getMostLikelySuccessor(const BinaryBasicBlock *BB) {
548 assert(TakenCount != BinaryBasicBlock::COUNT_NO_PROFILE);
550 assert(NonTakenCount != BinaryBasicBlock::COUNT_NO_PROFILE);
586 const BinaryBasicBlock *LastHotBB = BlockOrder[Index];
626 for (BinaryBasicBlock *BB : llvm::make_range(Start + SplitPoint, End))
672 for (BinaryBasicBlock *const BB : make_range(Start, End)) {
697 for (BinaryBasicBlock *const BB : llvm::make_range(Start, End))
809 for (BinaryBasicBlock *const BB : NewLayout) {
851 for (BinaryBasicBlock *const BB : NewLayout) {
860 llvm::stable_sort(NewLayout, [&](const BinaryBasicBlock *const A,
861 const BinaryBasicBlock *const B) {
873 [&](BinaryBasicBlock *A, BinaryBasicBlock *B) {
880 for (BinaryBasicBlock *const BB : reverse(NewLayout)) {
889 for (BinaryBasicBlock *const BB : NewLayout) {
912 for (const BinaryBasicBlock *BB : FF)
913 for (const BinaryBasicBlock *LPB : BB->landing_pads())
966 for (BinaryBasicBlock &BB : BF)
994 std::vector<BinaryBasicBlock *> Blocks(BF.pbegin(), BF.pend());
995 for (BinaryBasicBlock *BB : Blocks) {
1002 BinaryBasicBlock *LPBlock = BF.getBasicBlockForLabel(LPLabel);
1015 BinaryBasicBlock *TrampolineBB = BF.addBasicBlock();
1037 stable_sort(NewLayout, [&](BinaryBasicBlock *A, BinaryBasicBlock *B) {
1062 for (BinaryBasicBlock *BB : Layout) {
1066 BinaryBasicBlock *LPBlock = BF.getBasicBlockForLabel(Trampoline);