Lines Matching refs:BinaryBasicBlock
269 BinaryBasicBlock *
288 BinaryBasicBlock *BB = I->second; in getBasicBlockContainingOffset()
293 std::stack<BinaryBasicBlock *> Stack; in markUnreachableBlocks()
295 for (BinaryBasicBlock &BB : blocks()) in markUnreachableBlocks()
299 for (BinaryBasicBlock *BB : BasicBlocks) { in markUnreachableBlocks()
319 BinaryBasicBlock *BB = Stack.top(); in markUnreachableBlocks()
321 for (BinaryBasicBlock *Succ : BB->successors()) { in markUnreachableBlocks()
333 DenseSet<const BinaryBasicBlock *> InvalidBBs; in eraseInvalidBBs()
336 for (BinaryBasicBlock *const BB : BasicBlocks) { in eraseInvalidBBs()
349 BinaryBasicBlock *BB = *I; in eraseInvalidBBs()
463 for (const BinaryBasicBlock *BB : Layout.blocks()) in print()
509 for (const BinaryBasicBlock *BB : F) { in print()
526 if (BB->getExecutionCount() != BinaryBasicBlock::COUNT_NO_PROFILE) in print()
540 for (BinaryBasicBlock *Pred : BB->predecessors()) in print()
547 for (BinaryBasicBlock *Throw : BB->throwers()) in print()
570 BinaryBasicBlock *Succ = BB->Successors[Indices[I]]; in print()
571 const BinaryBasicBlock::BinaryBranchInfo &BI = in print()
575 BI.MispredictedCount != BinaryBasicBlock::COUNT_INFERRED) { in print()
579 BI.Count != BinaryBasicBlock::COUNT_NO_PROFILE) { in print()
589 for (BinaryBasicBlock *LP : BB->landing_pads()) { in print()
1742 auto addUnknownControlFlow = [&](BinaryBasicBlock &BB) { in postProcessIndirectBranches()
1746 if (BinaryBasicBlock *SuccBB = getBasicBlockAtOffset(PossibleDestination)) in postProcessIndirectBranches()
1752 BinaryBasicBlock *LastIndirectJumpBB = nullptr; in postProcessIndirectBranches()
1755 for (BinaryBasicBlock &BB : blocks()) { in postProcessIndirectBranches()
1873 for (BinaryBasicBlock *BB : BasicBlocks) { in recomputeLandingPads()
1878 for (BinaryBasicBlock *BB : BasicBlocks) { in recomputeLandingPads()
1879 std::unordered_set<const BinaryBasicBlock *> BBLandingPads; in recomputeLandingPads()
1888 BinaryBasicBlock *LPBlock = getBasicBlockForLabel(EHInfo->first); in recomputeLandingPads()
1928 BinaryBasicBlock *InsertBB = nullptr; in buildCFG()
1929 BinaryBasicBlock *PrevBB = nullptr; in buildCFG()
1935 BinaryBasicBlock *InsertBB) { in buildCFG()
1950 for (BinaryBasicBlock::reverse_iterator RII = PrevBB->getLastNonPseudo(), in buildCFG()
2064 BinaryBasicBlock *FromBB = getBasicBlockContainingOffset(Branch.first); in buildCFG()
2065 BinaryBasicBlock *ToBB = getBasicBlockAtOffset(Branch.second); in buildCFG()
2081 for (BinaryBasicBlock *BB : BasicBlocks) { in buildCFG()
2124 for (BinaryBasicBlock *BB : BasicBlocks) { in buildCFG()
2185 for (BinaryBasicBlock &BB : blocks()) in postProcessCFG()
2197 for (const BinaryBasicBlock &BB : blocks()) { in calculateMacroOpFusionStats()
2218 for (BinaryBasicBlock *BB : BasicBlocks) { in removeTagsFromProfile()
2219 if (BB->ExecutionCount == BinaryBasicBlock::COUNT_NO_PROFILE) in removeTagsFromProfile()
2221 for (BinaryBasicBlock::BinaryBranchInfo &BI : BB->branch_info()) { in removeTagsFromProfile()
2222 if (BI.Count != BinaryBasicBlock::COUNT_NO_PROFILE && in removeTagsFromProfile()
2223 BI.MispredictedCount != BinaryBasicBlock::COUNT_NO_PROFILE) in removeTagsFromProfile()
2233 std::vector<std::unique_ptr<BinaryBasicBlock>> NewBlocks; in removeConditionalTailCalls()
2236 BinaryBasicBlock &BB = *BBI; in removeConditionalTailCalls()
2249 uint64_t CTCTakenCount = BinaryBasicBlock::COUNT_NO_PROFILE; in removeConditionalTailCalls()
2250 uint64_t CTCMispredCount = BinaryBasicBlock::COUNT_NO_PROFILE; in removeConditionalTailCalls()
2271 std::unique_ptr<BinaryBasicBlock> TailCallBB = in removeConditionalTailCalls()
2313 for (const BinaryBasicBlock &BB : blocks()) { in getFunctionScore()
2315 if (BBExecCount == BinaryBasicBlock::COUNT_NO_PROFILE) in getFunctionScore()
2343 for (BinaryBasicBlock *BB : BasicBlocks) { in annotateCFIState()
2597 BinaryBasicBlock *InBB, in replayCFIInstrs()
2598 BinaryBasicBlock::iterator InsertIt) { in replayCFIInstrs()
2632 BinaryBasicBlock *InBB, in unwindCFIState()
2633 BinaryBasicBlock::iterator &InsertIt) { in unwindCFIState()
2762 for (BinaryBasicBlock *CurBB : Layout.blocks()) { in normalizeCFIState()
2794 for (BinaryBasicBlock *BB : F) { in finalizeCFIState()
2820 for (BinaryBasicBlock &BB : blocks()) { in finalizeCFIState()
2841 for (const BinaryBasicBlock &BB : blocks()) in getInstructionCount()
2893 for (BinaryBasicBlock *BB : BasicBlocks) in setIgnored()
2897 for (BinaryBasicBlock *BB : DeletedBasicBlocks) in setIgnored()
2914 for (BinaryBasicBlock *BB : getLayout().blocks()) { in duplicateConstantIslands()
3007 for (BinaryBasicBlock *BB : BasicBlocks) { in dumpGraph()
3059 for (BinaryBasicBlock *Succ : BB->successors()) { in dumpGraph()
3080 BI->MispredictedCount != BinaryBasicBlock::COUNT_INFERRED) { in dumpGraph()
3083 BI->Count != BinaryBasicBlock::COUNT_NO_PROFILE) { in dumpGraph()
3090 for (BinaryBasicBlock *LP : BB->landing_pads()) { in dumpGraph()
3140 for (BinaryBasicBlock *BB : BasicBlocks) in validateCFG()
3147 auto validateBlock = [this](const BinaryBasicBlock *BB, StringRef Desc) { in validateCFG()
3156 for (const BinaryBasicBlock *BB : BasicBlocks) { in validateCFG()
3159 for (const BinaryBasicBlock *PredBB : BB->predecessors()) in validateCFG()
3162 for (const BinaryBasicBlock *SuccBB : BB->successors()) in validateCFG()
3165 for (const BinaryBasicBlock *LP : BB->landing_pads()) in validateCFG()
3168 for (const BinaryBasicBlock *Thrower : BB->throwers()) in validateCFG()
3173 for (const BinaryBasicBlock *BB : BasicBlocks) { in validateCFG()
3174 std::unordered_set<const BinaryBasicBlock *> BBLandingPads; in validateCFG()
3175 for (const BinaryBasicBlock *LP : BB->landing_pads()) { in validateCFG()
3184 std::unordered_set<const BinaryBasicBlock *> BBThrowers; in validateCFG()
3185 for (const BinaryBasicBlock *Thrower : BB->throwers()) { in validateCFG()
3194 for (const BinaryBasicBlock *LPBlock : BB->landing_pads()) { in validateCFG()
3202 for (const BinaryBasicBlock *Thrower : BB->throwers()) { in validateCFG()
3219 for (BinaryBasicBlock *BB : BasicBlocks) { in fixBranches()
3232 const BinaryBasicBlock *NextBB = in fixBranches()
3247 const BinaryBasicBlock *TSuccessor = BB->getConditionalSuccessor(true); in fixBranches()
3248 const BinaryBasicBlock *FSuccessor = BB->getConditionalSuccessor(false); in fixBranches()
3304 for (BinaryBasicBlock *BB : BasicBlocks) { in propagateGnuArgsSizeInfo()
3329 for (BinaryBasicBlock &BB : blocks()) { in postProcessBranches()
3392 MCSymbol *BinaryFunction::addEntryPoint(const BinaryBasicBlock &BB) { in addEntryPoint()
3422 for (BinaryBasicBlock *BB : BasicBlocks) { in getSymbolForEntryID()
3454 for (const BinaryBasicBlock *BB : BasicBlocks) { in getEntryIDForSymbol()
3497 std::stack<BinaryBasicBlock *> Stack; in dfs()
3502 SmallVector<BinaryBasicBlock *> EntryPoints; in dfs()
3504 [&](const BinaryBasicBlock *const BB) { return isEntryPoint(*BB); }); in dfs()
3507 llvm::stable_sort(EntryPoints, [](const BinaryBasicBlock *const A, in dfs()
3508 const BinaryBasicBlock *const B) { in dfs()
3511 for (BinaryBasicBlock *const BB : reverse(EntryPoints)) in dfs()
3514 for (BinaryBasicBlock &BB : blocks()) in dfs()
3515 BB.setLayoutIndex(BinaryBasicBlock::InvalidIndex); in dfs()
3518 BinaryBasicBlock *BB = Stack.top(); in dfs()
3521 if (BB->getLayoutIndex() != BinaryBasicBlock::InvalidIndex) in dfs()
3527 for (BinaryBasicBlock *SuccBB : BB->landing_pads()) { in dfs()
3546 for (BinaryBasicBlock *SuccBB : BB->successors()) { in dfs()
3571 for (const BinaryBasicBlock *BB : Order) { in computeHash()
3602 BinaryBasicBlock *Start, in insertBasicBlocks()
3603 std::vector<std::unique_ptr<BinaryBasicBlock>> &&NewBBs, in insertBasicBlocks()
3613 for (std::unique_ptr<BinaryBasicBlock> &BB : NewBBs) { in insertBasicBlocks()
3632 std::vector<std::unique_ptr<BinaryBasicBlock>> &&NewBBs, in insertBasicBlocks()
3643 for (std::unique_ptr<BinaryBasicBlock> &BB : NewBBs) { in insertBasicBlocks()
3667 void BinaryFunction::updateCFIState(BinaryBasicBlock *Start, in updateCFIState()
3675 void BinaryFunction::updateLayout(BinaryBasicBlock *Start, in updateLayout()
3697 for (BinaryBasicBlock *&BB : BasicBlocks) { in checkForAmbiguousJumpTables()
3721 for (BinaryBasicBlock *&BB : BasicBlocks) { in disambiguateJumpTables()
3820 bool BinaryFunction::replaceJumpTableEntryIn(BinaryBasicBlock *BB, in replaceJumpTableEntryIn()
3821 BinaryBasicBlock *OldDest, in replaceJumpTableEntryIn()
3822 BinaryBasicBlock *NewDest) { in replaceJumpTableEntryIn()
3837 BinaryBasicBlock *BinaryFunction::splitEdge(BinaryBasicBlock *From, in splitEdge()
3838 BinaryBasicBlock *To) { in splitEdge()
3848 std::unique_ptr<BinaryBasicBlock> NewBB = createBasicBlock(Tmp); in splitEdge()
3850 BinaryBasicBlock *NewBBPtr = NewBB.get(); in splitEdge()
3871 std::vector<std::unique_ptr<BinaryBasicBlock>> NewBBs; in splitEdge()
3883 BinaryBasicBlock *BB = *I; in deleteConservativeEdges()
3954 for (BinaryBasicBlock &BB : blocks()) in adjustExecutionCount()
3961 for (BinaryBasicBlock *BB : BasicBlocks) in ~BinaryFunction()
3963 for (BinaryBasicBlock *BB : DeletedBasicBlocks) in ~BinaryFunction()
4000 SmallVector<BinaryBasicBlock *, 1> Latches; in calculateLoopInfo()
4003 for (BinaryBasicBlock *Latch : Latches) { in calculateLoopInfo()
4005 for (BinaryBasicBlock *Succ : Latch->successors()) { in calculateLoopInfo()
4007 assert(BI->Count != BinaryBasicBlock::COUNT_NO_PROFILE && in calculateLoopInfo()
4022 const BinaryBasicBlock *Exiting = Exit.first; in calculateLoopInfo()
4023 const BinaryBasicBlock *ExitTarget = Exit.second; in calculateLoopInfo()
4025 for (BinaryBasicBlock *Succ : Exiting->successors()) { in calculateLoopInfo()
4027 assert(BI->Count != BinaryBasicBlock::COUNT_NO_PROFILE && in calculateLoopInfo()
4095 BinaryBasicBlock *PrevBB = nullptr; in updateOutputValues()
4096 for (BinaryBasicBlock *BB : this->Layout.blocks()) { in updateOutputValues()
4175 const BinaryBasicBlock *BB = getBasicBlockContainingOffset(Offset); in translateInputToOutputAddress()
4226 const BinaryBasicBlock *BB = BBI->second; in translateInputToOutputRanges()
4281 BinaryBasicBlock *BB = getBasicBlockContainingOffset(Offset); in getInstructionAtOffset()
4334 const BinaryBasicBlock *BB = BBI->second; in translateInputToOutputLocationList()
4415 for (BinaryBasicBlock *BB : L->blocks()) in printLoopInfo()
4440 BinaryBasicBlock &BB = **BasicBlocks.begin(); in isAArch64Veneer()