Lines Matching refs:BinaryBasicBlock

37 void relaxStubToShortJmp(BinaryBasicBlock &StubBB, const MCSymbol *Tgt) {  in relaxStubToShortJmp()
45 void relaxStubToLongJmp(BinaryBasicBlock &StubBB, const MCSymbol *Tgt) { in relaxStubToLongJmp()
53 BinaryBasicBlock *getBBAtHotColdSplitPoint(BinaryFunction &Func) { in getBBAtHotColdSplitPoint()
75 std::pair<std::unique_ptr<BinaryBasicBlock>, MCSymbol *>
76 LongJmpPass::createNewStub(BinaryBasicBlock &SourceBB, const MCSymbol *TgtSym, in createNewStub()
82 std::unique_ptr<BinaryBasicBlock> StubBB = Func.createBasicBlock(StubSym); in createNewStub()
96 [&](const std::pair<uint64_t, BinaryBasicBlock *> &LHS, in createNewStub()
97 const std::pair<uint64_t, BinaryBasicBlock *> &RHS) { in createNewStub()
120 BinaryBasicBlock *LongJmpPass::lookupStubFromGroup( in lookupStubFromGroup()
132 [&](const std::pair<uint64_t, BinaryBasicBlock *> &LHS, in lookupStubFromGroup()
133 const std::pair<uint64_t, BinaryBasicBlock *> &RHS) { in lookupStubFromGroup()
158 BinaryBasicBlock *
159 LongJmpPass::lookupGlobalStub(const BinaryBasicBlock &SourceBB, in lookupGlobalStub()
168 BinaryBasicBlock *LongJmpPass::lookupLocalStub(const BinaryBasicBlock &SourceBB, in lookupLocalStub()
181 std::unique_ptr<BinaryBasicBlock>
182 LongJmpPass::replaceTargetWithStub(BinaryBasicBlock &BB, MCInst &Inst, in replaceTargetWithStub()
187 std::unique_ptr<BinaryBasicBlock> NewBB; in replaceTargetWithStub()
191 BinaryBasicBlock::BinaryBranchInfo BI{0, 0}; in replaceTargetWithStub()
192 BinaryBasicBlock *TgtBB = BB.getSuccessor(TgtSym, BI); in replaceTargetWithStub()
211 BinaryBasicBlock *StubBB = lookupLocalStub(BB, Inst, TgtSym, DotAddress); in replaceTargetWithStub()
277 for (const BinaryBasicBlock *BB : Func.getLayout().blocks()) { in tentativeBBLayout()
421 const BinaryBasicBlock *TgtBB = Func.getBasicBlockForLabel(TgtSym); in usesStub()
430 const BinaryBasicBlock *TgtBB) const { in getSymbolAddress()
449 bool LongJmpPass::relaxStub(BinaryBasicBlock &StubBB) { in relaxStub()
464 const BinaryBasicBlock *TgtBB = Func.getBasicBlockForLabel(RealTargetSym); in relaxStub()
502 bool LongJmpPass::needsStub(const BinaryBasicBlock &BB, const MCInst &Inst, in needsStub()
509 const BinaryBasicBlock *TgtBB = Func.getBasicBlockForLabel(TgtSym); in needsStub()
533 std::vector<std::pair<BinaryBasicBlock *, std::unique_ptr<BinaryBasicBlock>>> in relax()
536 BinaryBasicBlock *Frontier = getBBAtHotColdSplitPoint(Func); in relax()
543 for (BinaryBasicBlock &BB : Func) { in relax()
568 BinaryBasicBlock *InsertionPoint = &BB; in relax()
597 for (BinaryBasicBlock &BB : Func) { in relax()
604 for (std::pair<BinaryBasicBlock *, std::unique_ptr<BinaryBasicBlock>> &Elmt : in relax()
608 std::vector<std::unique_ptr<BinaryBasicBlock>> NewBBs; in relax()