Lines Matching defs:OF
478 OutlinedFunction &OF);
481 void emitOutlinedFunctionRemark(OutlinedFunction &OF);
521 /// Creates a function for \p OF and inserts it into the module.
522 MachineFunction *createOutlinedFunction(Module &M, OutlinedFunction &OF,
544 /// Return a DISubprogram for OF if one exists, and null otherwise. Helper
546 DISubprogram *getSubprogramOrNull(const OutlinedFunction &OF) {
547 for (const Candidate &C : OF.Candidates)
589 OutlinedFunction &OF) {
603 << NV("OutliningCost", OF.getOutliningCost()) << ")"
605 << NV("NotOutliningCost", OF.getNotOutlinedCost()) << ")"
621 void MachineOutliner::emitOutlinedFunctionRemark(OutlinedFunction &OF) {
622 MachineBasicBlock *MBB = &*OF.MF->begin();
623 MachineOptimizationRemarkEmitter MORE(*OF.MF, nullptr);
626 R << "Saved " << NV("OutliningBenefit", OF.getBenefit()) << " bytes by "
627 << "outlining " << NV("Length", OF.getNumInstrs()) << " instructions "
628 << "from " << NV("NumOccurrences", OF.getOccurrenceCount())
633 for (size_t i = 0, e = OF.Candidates.size(); i < e; i++) {
636 OF.Candidates[i].front().getDebugLoc());
732 std::optional<std::unique_ptr<OutlinedFunction>> OF =
735 if (!OF.has_value() || OF.value()->Candidates.empty())
738 assert(OF.value()->Candidates.size() == MinRepeats);
740 std::move(OF.value()), ME.Count));
834 std::optional<std::unique_ptr<OutlinedFunction>> OF =
840 if (!OF.has_value() || OF.value()->Candidates.size() < MinRepeats)
844 if (OF.value()->getBenefit() < OutlinerBenefitThreshold) {
846 *OF.value());
850 FunctionList.emplace_back(std::move(OF.value()));
888 Module &M, OutlinedFunction &OF, InstructionMapper &Mapper, unsigned Name) {
914 Candidate &FirstCand = OF.Candidates.front();
918 TII.mergeOutliningCandidateAttributes(*F, OF.Candidates);
922 OF.Candidates.cbegin(), OF.Candidates.cend(), UWTableKind::None,
962 computeAndPublishHashSequence(MF, OF.Candidates.size());
975 for (auto &Cand : OF.Candidates) {
991 TII.buildOutlinedFrame(MBB, MF, OF);
995 if (DISubprogram *SP = getSubprogramOrNull(OF)) {
1031 LLVM_DEBUG(dbgs() << "NUMBER OF POTENTIAL FUNCTIONS: " << FunctionList.size()
1047 for (auto &OF : FunctionList) {
1049 auto NumCandidatesBefore = OF->Candidates.size();
1053 erase_if(OF->Candidates, [&UnsignedVecBegin](Candidate &C) {
1061 auto NumCandidatesAfter = OF->Candidates.size();
1067 if (OF->getBenefit() < OutlinerBenefitThreshold) {
1068 LLVM_DEBUG(dbgs() << "SKIP: Expected benefit (" << OF->getBenefit()
1074 LLVM_DEBUG(dbgs() << "OUTLINE: Expected benefit (" << OF->getBenefit()
1080 OF->MF = createOutlinedFunction(M, *OF, Mapper, OutlinedFunctionNum);
1081 emitOutlinedFunctionRemark(*OF);
1084 MachineFunction *MF = OF->MF;
1090 for (Candidate &C : OF->Candidates) {