Lines Matching defs:Conf
204 createTargetMachine(const Config &Conf, const Target *TheTarget, Module &M) {
208 for (const std::string &A : Conf.MAttrs)
212 if (Conf.RelocModel)
213 RelocModel = *Conf.RelocModel;
219 if (Conf.CodeModel)
220 CodeModel = *Conf.CodeModel;
225 TheTriple, Conf.CPU, Features.getString(), Conf.Options, RelocModel,
226 CodeModel, Conf.CGOptLevel));
236 static void runNewPMPasses(const Config &Conf, Module &Mod, TargetMachine *TM,
242 if (!Conf.SampleProfile.empty())
243 PGOOpt = PGOOptions(Conf.SampleProfile, "", Conf.ProfileRemapping,
247 else if (Conf.RunCSIRInstr) {
248 PGOOpt = PGOOptions("", Conf.CSIRProfile, Conf.ProfileRemapping,
251 Conf.AddFSDiscriminator);
252 } else if (!Conf.CSIRProfile.empty()) {
253 PGOOpt = PGOOptions(Conf.CSIRProfile, "", Conf.ProfileRemapping,
256 Conf.AddFSDiscriminator);
257 NoPGOWarnMismatch = !Conf.PGOWarnMismatch;
258 } else if (Conf.AddFSDiscriminator) {
271 StandardInstrumentations SI(Mod.getContext(), Conf.DebugPassManager,
272 Conf.VerifyEach);
274 PassBuilder PB(TM, Conf.PTO, PGOOpt, &PIC);
276 RegisterPassPlugins(Conf.PassPlugins, PB);
280 if (Conf.Freestanding)
285 if (!Conf.AAPipeline.empty()) {
287 if (auto Err = PB.parseAAPipeline(AA, Conf.AAPipeline)) {
289 Conf.AAPipeline + "': " + toString(std::move(Err)));
304 if (!Conf.DisableVerify)
327 if (!Conf.OptPipeline.empty()) {
328 if (auto Err = PB.parsePassPipeline(MPM, Conf.OptPipeline)) {
330 Conf.OptPipeline + "': " + toString(std::move(Err)));
338 if (!Conf.DisableVerify)
362 bool lto::opt(const Config &Conf, TargetMachine *TM, unsigned Task, Module &Mod,
390 runNewPMPasses(Conf, Mod, TM, Conf.OptLevel, IsThinLTO, ExportSummary,
393 return !Conf.PostOptModuleHook || Conf.PostOptModuleHook(Task, Mod);
396 static void codegen(const Config &Conf, TargetMachine *TM,
399 if (Conf.PreCodeGenModuleHook && !Conf.PreCodeGenModuleHook(Task, Mod))
409 SmallString<1024> DwoFile(Conf.SplitDwarfOutput);
410 if (!Conf.DwoDir.empty()) {
412 if (auto EC = llvm::sys::fs::create_directories(Conf.DwoDir))
413 report_fatal_error(Twine("Failed to create directory ") + Conf.DwoDir +
416 DwoFile = Conf.DwoDir;
420 TM->Options.MCOptions.SplitDwarfFile = Conf.SplitDwarfFile;
448 if (Conf.PreCodeGenPassesHook)
449 Conf.PreCodeGenPassesHook(CodeGenPasses);
452 Conf.CGFileType))
587 Error lto::thinBackend(const Config &Conf, unsigned Task, AddStreamFn AddStream,
594 Expected<const Target *> TOrErr = initAndLookupTarget(Conf, Mod);
598 std::unique_ptr<TargetMachine> TM = createTargetMachine(Conf, *TOrErr, Mod);
602 Mod.getContext(), Conf.RemarksFilename, Conf.RemarksPasses,
603 Conf.RemarksFormat, Conf.RemarksWithHotness, Conf.RemarksHotnessThreshold,
616 // optimization. This value may differ from Conf.CodeGenOnly.
617 codegen(Conf, TM.get(), AddStream, Task, Mod, CombinedIndex);
621 if (Conf.PreOptModuleHook && !Conf.PreOptModuleHook(Task, Mod))
628 if (!opt(Conf, TM, Task, Mod, /*IsThinLTO=*/true,
640 codegen(Conf, TM, AddStream, Task, Mod, CombinedIndex);
659 if (Conf.PostPromoteModuleHook && !Conf.PostPromoteModuleHook(Task, Mod))
665 if (Conf.PostInternalizeModuleHook &&
666 !Conf.PostInternalizeModuleHook(Task, Mod))
712 if (Conf.PostImportModuleHook && !Conf.PostImportModuleHook(Task, Mod))