Lines Matching refs:BF
107 const BinaryFunction &BF; member in llvm::bolt::__anon1bb11fe30111::FrameAccessAnalysis
136 LLVM_DEBUG(BC.printInstruction(outs(), Inst, 0, &BF, true, false, false)); in decodeFrameAccess()
174 FrameAccessAnalysis(BinaryFunction &BF, StackPointerTracking &SPT) in FrameAccessAnalysis() argument
175 : SPT(SPT), BC(BF.getBinaryContext()), BF(BF) {} in FrameAccessAnalysis()
192 const MCCFIInstruction *CFI = BF.getCFIFor(Inst); in doNext()
208 dbgs() << "Assertion is about to fail: " << BF.getPrintName() << "\n"; in doNext()
327 bool FrameAnalysis::updateArgsTouchedFor(const BinaryFunction &BF, MCInst &Inst, in updateArgsTouchedFor() argument
337 if (!FunctionsRequireAlignment.count(&BF)) { in updateArgsTouchedFor()
338 FunctionsRequireAlignment.insert(&BF); in updateArgsTouchedFor()
349 if (!FunctionsRequireAlignment.count(&BF)) { in updateArgsTouchedFor()
350 FunctionsRequireAlignment.insert(&BF); in updateArgsTouchedFor()
364 if (ArgsTouchedMap[&BF].find(Elem) == ArgsTouchedMap[&BF].end()) { in updateArgsTouchedFor()
365 ArgsTouchedMap[&BF].emplace(Elem); in updateArgsTouchedFor()
371 !FunctionsRequireAlignment.count(&BF)) { in updateArgsTouchedFor()
373 FunctionsRequireAlignment.insert(&BF); in updateArgsTouchedFor()
398 bool FrameAnalysis::computeArgsAccessed(BinaryFunction &BF) { in computeArgsAccessed() argument
399 if (!BF.isSimple() || !BF.hasCFG()) { in computeArgsAccessed()
400 LLVM_DEBUG(dbgs() << "Treating " << BF.getPrintName() in computeArgsAccessed()
402 ArgsTouchedMap[&BF].emplace(std::make_pair(-1, 0)); in computeArgsAccessed()
403 if (!FunctionsRequireAlignment.count(&BF)) { in computeArgsAccessed()
404 FunctionsRequireAlignment.insert(&BF); in computeArgsAccessed()
410 LLVM_DEBUG(dbgs() << "Now computing args accessed for: " << BF.getPrintName() in computeArgsAccessed()
414 FrameAccessAnalysis FAA(BF, getSPT(BF)); in computeArgsAccessed()
416 for (BinaryBasicBlock *BB : BF.getLayout().blocks()) { in computeArgsAccessed()
421 ArgsTouchedMap[&BF].emplace(std::make_pair(-1, 0)); in computeArgsAccessed()
428 if (updateArgsTouchedFor(BF, Inst, FAA.getSPOffset())) in computeArgsAccessed()
438 if (ArgsTouchedMap[&BF].find(std::make_pair(FIE.StackOffset, FIE.Size)) != in computeArgsAccessed()
439 ArgsTouchedMap[&BF].end()) in computeArgsAccessed()
443 ArgsTouchedMap[&BF].emplace(std::make_pair(FIE.StackOffset, FIE.Size)); in computeArgsAccessed()
447 BC.printInstruction(dbgs(), Inst, 0, &BF, true); in computeArgsAccessed()
453 if (FunctionsRequireAlignment.count(&BF)) in computeArgsAccessed()
457 FunctionsRequireAlignment.insert(&BF); in computeArgsAccessed()
461 for (BinaryBasicBlock &BB : BF) { in computeArgsAccessed()
464 FunctionsRequireAlignment.insert(&BF); in computeArgsAccessed()
472 bool FrameAnalysis::restoreFrameIndex(BinaryFunction &BF) { in restoreFrameIndex() argument
473 FrameAccessAnalysis FAA(BF, getSPT(BF)); in restoreFrameIndex()
475 LLVM_DEBUG(dbgs() << "Restoring frame indices for \"" << BF.getPrintName() in restoreFrameIndex()
477 for (BinaryBasicBlock *BB : BF.getLayout().blocks()) { in restoreFrameIndex()
491 if (!FunctionsWithStackArithmetic.count(&BF)) in restoreFrameIndex()
492 FunctionsWithStackArithmetic.insert(&BF); in restoreFrameIndex()
504 BC.printInstruction(dbgs(), Inst, 0, &BF, true); in restoreFrameIndex()
515 ParallelUtilities::WorkFuncTy CleanFunction = [&](BinaryFunction &BF) { in cleanAnnotations() argument
516 for (BinaryBasicBlock &BB : BF) { in cleanAnnotations()
597 ParallelUtilities::WorkFuncTy ClearFunctionSPT = [&](BinaryFunction &BF) { in clearSPTMap() argument
598 std::unique_ptr<StackPointerTracking> &SPTPtr = SPTMap.find(&BF)->second; in clearSPTMap()
602 ParallelUtilities::PredicateTy SkipFunc = [&](const BinaryFunction &BF) { in clearSPTMap() argument
603 return !BF.isSimple() || !BF.hasCFG(); in clearSPTMap()
619 BinaryFunction &BF = BFI.second; in preComputeSPT() local
620 if (!BF.isSimple() || !BF.hasCFG()) in preComputeSPT()
622 SPTMap.emplace(&BF, std::unique_ptr<StackPointerTracking>()); in preComputeSPT()
631 [&](BinaryFunction &BF, MCPlusBuilder::AllocatorIdTy AllocId) { in preComputeSPT() argument
633 SPTMap.find(&BF)->second; in preComputeSPT()
634 SPTPtr = std::make_unique<StackPointerTracking>(BF, AllocId); in preComputeSPT()
638 ParallelUtilities::PredicateTy SkipPredicate = [&](const BinaryFunction &BF) { in preComputeSPT() argument
639 return !BF.isSimple() || !BF.hasCFG(); in preComputeSPT()