Lines Matching refs:Conf

181 createTargetMachine(const Config &Conf, const Target *TheTarget, Module &M) {  in createTargetMachine()  argument
185 for (const std::string &A : Conf.MAttrs) in createTargetMachine()
189 if (Conf.RelocModel) in createTargetMachine()
190 RelocModel = *Conf.RelocModel; in createTargetMachine()
196 if (Conf.CodeModel) in createTargetMachine()
197 CodeModel = *Conf.CodeModel; in createTargetMachine()
202 TheTriple, Conf.CPU, Features.getString(), Conf.Options, RelocModel, in createTargetMachine()
203 CodeModel, Conf.CGOptLevel)); in createTargetMachine()
208 static void runNewPMPasses(const Config &Conf, Module &Mod, TargetMachine *TM, in runNewPMPasses() argument
213 if (!Conf.SampleProfile.empty()) in runNewPMPasses()
214 PGOOpt = PGOOptions(Conf.SampleProfile, "", Conf.ProfileRemapping, in runNewPMPasses()
216 else if (Conf.RunCSIRInstr) { in runNewPMPasses()
217 PGOOpt = PGOOptions("", Conf.CSIRProfile, Conf.ProfileRemapping, in runNewPMPasses()
219 Conf.AddFSDiscriminator); in runNewPMPasses()
220 } else if (!Conf.CSIRProfile.empty()) { in runNewPMPasses()
221 PGOOpt = PGOOptions(Conf.CSIRProfile, "", Conf.ProfileRemapping, in runNewPMPasses()
223 Conf.AddFSDiscriminator); in runNewPMPasses()
224 } else if (Conf.AddFSDiscriminator) { in runNewPMPasses()
235 StandardInstrumentations SI(Conf.DebugPassManager); in runNewPMPasses()
237 PassBuilder PB(TM, Conf.PTO, PGOOpt, &PIC); in runNewPMPasses()
239 RegisterPassPlugins(Conf.PassPlugins, PB); in runNewPMPasses()
243 if (Conf.Freestanding) in runNewPMPasses()
249 if (!Conf.AAPipeline.empty()) { in runNewPMPasses()
250 if (auto Err = PB.parseAAPipeline(AA, Conf.AAPipeline)) { in runNewPMPasses()
252 Conf.AAPipeline + "': " + toString(std::move(Err))); in runNewPMPasses()
269 if (!Conf.DisableVerify) in runNewPMPasses()
292 if (!Conf.OptPipeline.empty()) { in runNewPMPasses()
293 if (auto Err = PB.parsePassPipeline(MPM, Conf.OptPipeline)) { in runNewPMPasses()
295 Conf.OptPipeline + "': " + toString(std::move(Err))); in runNewPMPasses()
303 if (!Conf.DisableVerify) in runNewPMPasses()
309 static void runOldPMPasses(const Config &Conf, Module &Mod, TargetMachine *TM, in runOldPMPasses() argument
317 if (Conf.Freestanding) in runOldPMPasses()
325 PMB.VerifyOutput = !Conf.DisableVerify; in runOldPMPasses()
328 PMB.OptLevel = Conf.OptLevel; in runOldPMPasses()
329 PMB.PGOSampleUse = Conf.SampleProfile; in runOldPMPasses()
330 PMB.EnablePGOCSInstrGen = Conf.RunCSIRInstr; in runOldPMPasses()
331 if (!Conf.RunCSIRInstr && !Conf.CSIRProfile.empty()) { in runOldPMPasses()
333 PMB.PGOInstrUse = Conf.CSIRProfile; in runOldPMPasses()
342 bool lto::opt(const Config &Conf, TargetMachine *TM, unsigned Task, Module &Mod, in opt() argument
364 if (Conf.UseNewPM || !Conf.OptPipeline.empty()) { in opt()
365 runNewPMPasses(Conf, Mod, TM, Conf.OptLevel, IsThinLTO, ExportSummary, in opt()
368 runOldPMPasses(Conf, Mod, TM, IsThinLTO, ExportSummary, ImportSummary); in opt()
370 return !Conf.PostOptModuleHook || Conf.PostOptModuleHook(Task, Mod); in opt()
373 static void codegen(const Config &Conf, TargetMachine *TM, in codegen() argument
376 if (Conf.PreCodeGenModuleHook && !Conf.PreCodeGenModuleHook(Task, Mod)) in codegen()
386 SmallString<1024> DwoFile(Conf.SplitDwarfOutput); in codegen()
387 if (!Conf.DwoDir.empty()) { in codegen()
389 if (auto EC = llvm::sys::fs::create_directories(Conf.DwoDir)) in codegen()
390 report_fatal_error("Failed to create directory " + Conf.DwoDir + ": " + in codegen()
393 DwoFile = Conf.DwoDir; in codegen()
397 TM->Options.MCOptions.SplitDwarfFile = Conf.SplitDwarfFile; in codegen()
410 if (Conf.PreCodeGenPassesHook) in codegen()
411 Conf.PreCodeGenPassesHook(CodeGenPasses); in codegen()
414 Conf.CGFileType)) in codegen()
544 Error lto::thinBackend(const Config &Conf, unsigned Task, AddStreamFn AddStream, in thinBackend() argument
550 Expected<const Target *> TOrErr = initAndLookupTarget(Conf, Mod); in thinBackend()
554 std::unique_ptr<TargetMachine> TM = createTargetMachine(Conf, *TOrErr, Mod); in thinBackend()
558 Mod.getContext(), Conf.RemarksFilename, Conf.RemarksPasses, in thinBackend()
559 Conf.RemarksFormat, Conf.RemarksWithHotness, Conf.RemarksHotnessThreshold, in thinBackend()
569 if (Conf.CodeGenOnly) { in thinBackend()
570 codegen(Conf, TM.get(), AddStream, Task, Mod, CombinedIndex); in thinBackend()
574 if (Conf.PreOptModuleHook && !Conf.PreOptModuleHook(Task, Mod)) in thinBackend()
580 if (!opt(Conf, TM, Task, Mod, /*IsThinLTO=*/true, in thinBackend()
585 codegen(Conf, TM, AddStream, Task, Mod, CombinedIndex); in thinBackend()
604 if (Conf.PostPromoteModuleHook && !Conf.PostPromoteModuleHook(Task, Mod)) in thinBackend()
610 if (Conf.PostInternalizeModuleHook && in thinBackend()
611 !Conf.PostInternalizeModuleHook(Task, Mod)) in thinBackend()
653 if (Conf.PostImportModuleHook && !Conf.PostImportModuleHook(Task, Mod)) in thinBackend()