Lines Matching defs:Conf

201 createTargetMachine(const Config &Conf, const Target *TheTarget, Module &M) {
205 for (const std::string &A : Conf.MAttrs)
209 if (Conf.RelocModel)
210 RelocModel = *Conf.RelocModel;
216 if (Conf.CodeModel)
217 CodeModel = *Conf.CodeModel;
222 TheTriple, Conf.CPU, Features.getString(), Conf.Options, RelocModel,
223 CodeModel, Conf.CGOptLevel));
233 static void runNewPMPasses(const Config &Conf, Module &Mod, TargetMachine *TM,
239 if (!Conf.SampleProfile.empty())
240 PGOOpt = PGOOptions(Conf.SampleProfile, "", Conf.ProfileRemapping,
244 else if (Conf.RunCSIRInstr) {
245 PGOOpt = PGOOptions("", Conf.CSIRProfile, Conf.ProfileRemapping,
248 Conf.AddFSDiscriminator);
249 } else if (!Conf.CSIRProfile.empty()) {
250 PGOOpt = PGOOptions(Conf.CSIRProfile, "", Conf.ProfileRemapping,
253 Conf.AddFSDiscriminator);
254 NoPGOWarnMismatch = !Conf.PGOWarnMismatch;
255 } else if (Conf.AddFSDiscriminator) {
268 StandardInstrumentations SI(Mod.getContext(), Conf.DebugPassManager,
269 Conf.VerifyEach);
271 PassBuilder PB(TM, Conf.PTO, PGOOpt, &PIC);
273 RegisterPassPlugins(Conf.PassPlugins, PB);
277 if (Conf.Freestanding)
282 if (!Conf.AAPipeline.empty()) {
284 if (auto Err = PB.parseAAPipeline(AA, Conf.AAPipeline)) {
286 Conf.AAPipeline + "': " + toString(std::move(Err)));
301 if (!Conf.DisableVerify)
324 if (!Conf.OptPipeline.empty()) {
325 if (auto Err = PB.parsePassPipeline(MPM, Conf.OptPipeline)) {
327 Conf.OptPipeline + "': " + toString(std::move(Err)));
335 if (!Conf.DisableVerify)
341 bool lto::opt(const Config &Conf, TargetMachine *TM, unsigned Task, Module &Mod,
363 runNewPMPasses(Conf, Mod, TM, Conf.OptLevel, IsThinLTO, ExportSummary,
365 return !Conf.PostOptModuleHook || Conf.PostOptModuleHook(Task, Mod);
368 static void codegen(const Config &Conf, TargetMachine *TM,
371 if (Conf.PreCodeGenModuleHook && !Conf.PreCodeGenModuleHook(Task, Mod))
381 SmallString<1024> DwoFile(Conf.SplitDwarfOutput);
382 if (!Conf.DwoDir.empty()) {
384 if (auto EC = llvm::sys::fs::create_directories(Conf.DwoDir))
385 report_fatal_error(Twine("Failed to create directory ") + Conf.DwoDir +
388 DwoFile = Conf.DwoDir;
392 TM->Options.MCOptions.SplitDwarfFile = Conf.SplitDwarfFile;
414 if (Conf.PreCodeGenPassesHook)
415 Conf.PreCodeGenPassesHook(CodeGenPasses);
418 Conf.CGFileType))
553 Error lto::thinBackend(const Config &Conf, unsigned Task, AddStreamFn AddStream,
559 Expected<const Target *> TOrErr = initAndLookupTarget(Conf, Mod);
563 std::unique_ptr<TargetMachine> TM = createTargetMachine(Conf, *TOrErr, Mod);
567 Mod.getContext(), Conf.RemarksFilename, Conf.RemarksPasses,
568 Conf.RemarksFormat, Conf.RemarksWithHotness, Conf.RemarksHotnessThreshold,
579 if (Conf.CodeGenOnly) {
580 codegen(Conf, TM.get(), AddStream, Task, Mod, CombinedIndex);
584 if (Conf.PreOptModuleHook && !Conf.PreOptModuleHook(Task, Mod))
590 if (!opt(Conf, TM, Task, Mod, /*IsThinLTO=*/true,
595 codegen(Conf, TM, AddStream, Task, Mod, CombinedIndex);
614 if (Conf.PostPromoteModuleHook && !Conf.PostPromoteModuleHook(Task, Mod))
620 if (Conf.PostInternalizeModuleHook &&
621 !Conf.PostInternalizeModuleHook(Task, Mod))
667 if (Conf.PostImportModuleHook && !Conf.PostImportModuleHook(Task, Mod))