Lines Matching refs:Opts

193 bool AssemblerInvocation::CreateFromArgs(AssemblerInvocation &Opts,
228 Opts.Triple = llvm::Triple::normalize(Args.getLastArgValue(OPT_triple));
230 Opts.DarwinTargetVariantTriple = llvm::Triple(A->getValue());
237 Opts.DarwinTargetVariantSDKVersion = Version;
240 Opts.CPU = std::string(Args.getLastArgValue(OPT_target_cpu));
241 Opts.Features = Args.getAllArgValues(OPT_target_feature);
244 if (Opts.Triple.empty())
245 Opts.Triple = llvm::sys::getDefaultTargetTriple();
248 Opts.IncludePaths = Args.getAllArgValues(OPT_I);
249 Opts.NoInitialTextSection = Args.hasArg(OPT_n);
250 Opts.SaveTemporaryLabels = Args.hasArg(OPT_msave_temp_labels);
252 Opts.GenDwarfForAssembly = Args.hasArg(OPT_debug_info_kind_EQ);
255 Opts.CompressDebugSections =
263 Opts.RelaxELFRelocations = !Args.hasArg(OPT_mrelax_relocations_no);
265 Opts.Dwarf64 = DwarfFormatArg->getOption().matches(OPT_gdwarf64);
266 Opts.DwarfVersion = getLastArgIntValue(Args, OPT_dwarf_version_EQ, 2, Diags);
267 Opts.DwarfDebugFlags =
269 Opts.DwarfDebugProducer =
273 Opts.DebugCompilationDir = A->getValue();
274 Opts.MainFileName = std::string(Args.getLastArgValue(OPT_main_file_name));
278 Opts.DebugPrefixMap.insert(
287 Opts.InputFile = A->getValue();
295 Opts.LLVMArgs = Args.getAllArgValues(OPT_mllvm);
296 Opts.OutputPath = std::string(Args.getLastArgValue(OPT_o));
297 Opts.SplitDwarfOutput =
310 Opts.OutputType = FileType(OutputType);
312 Opts.ShowHelp = Args.hasArg(OPT_help);
313 Opts.ShowVersion = Args.hasArg(OPT_version);
316 Opts.OutputAsmVariant =
318 Opts.ShowEncoding = Args.hasArg(OPT_show_encoding);
319 Opts.ShowInst = Args.hasArg(OPT_show_inst);
322 Opts.RelaxAll = Args.hasArg(OPT_mrelax_all);
323 Opts.NoExecStack = Args.hasArg(OPT_mno_exec_stack);
324 Opts.FatalWarnings = Args.hasArg(OPT_massembler_fatal_warnings);
325 Opts.NoWarn = Args.hasArg(OPT_massembler_no_warn);
326 Opts.NoTypeCheck = Args.hasArg(OPT_mno_type_check);
327 Opts.RelocationModel =
329 Opts.TargetABI = std::string(Args.getLastArgValue(OPT_target_abi));
330 Opts.IncrementalLinkerCompatible =
332 Opts.SymbolDefs = Args.getAllArgValues(OPT_defsym);
337 Opts.EmbedBitcode = llvm::StringSwitch<unsigned>(A->getValue())
345 Opts.EmitDwarfUnwind =
352 Opts.AsSecureLogFile = Args.getLastArgValue(OPT_as_secure_log_file);
375 static bool ExecuteAssemblerImpl(AssemblerInvocation &Opts,
379 const Target *TheTarget = TargetRegistry::lookupTarget(Opts.Triple, Error);
381 return Diags.Report(diag::err_target_unknown_triple) << Opts.Triple;
384 MemoryBuffer::getFileOrSTDIN(Opts.InputFile, /*IsText=*/true);
388 return Diags.Report(diag::err_fe_error_reading) << Opts.InputFile;
398 SrcMgr.setIncludeDirs(Opts.IncludePaths);
400 std::unique_ptr<MCRegisterInfo> MRI(TheTarget->createMCRegInfo(Opts.Triple));
404 MCOptions.EmitDwarfUnwind = Opts.EmitDwarfUnwind;
405 MCOptions.AsSecureLogFile = Opts.AsSecureLogFile;
408 TheTarget->createMCAsmInfo(*MRI, Opts.Triple, MCOptions));
413 MAI->setCompressDebugSections(Opts.CompressDebugSections);
415 MAI->setRelaxELFRelocations(Opts.RelaxELFRelocations);
417 bool IsBinary = Opts.OutputType == AssemblerInvocation::FT_Obj;
418 if (Opts.OutputPath.empty())
419 Opts.OutputPath = "-";
421 getOutputStream(Opts.OutputPath, Diags, IsBinary);
425 if (!Opts.SplitDwarfOutput.empty())
426 DwoOS = getOutputStream(Opts.SplitDwarfOutput, Diags, IsBinary);
429 std::string FS = llvm::join(Opts.Features, ",");
432 TheTarget->createMCSubtargetInfo(Opts.Triple, Opts.CPU, FS));
435 MCContext Ctx(Triple(Opts.Triple), MAI.get(), MRI.get(), STI.get(), &SrcMgr,
439 if (Opts.RelocationModel == "static") {
441 } else if (Opts.RelocationModel == "pic") {
444 assert(Opts.RelocationModel == "dynamic-no-pic" &&
453 if (Opts.DarwinTargetVariantTriple)
454 MOFI->setDarwinTargetVariantTriple(*Opts.DarwinTargetVariantTriple);
455 if (!Opts.DarwinTargetVariantSDKVersion.empty())
456 MOFI->setDarwinTargetVariantSDKVersion(Opts.DarwinTargetVariantSDKVersion);
459 if (Opts.SaveTemporaryLabels)
461 if (Opts.GenDwarfForAssembly)
463 if (!Opts.DwarfDebugFlags.empty())
464 Ctx.setDwarfDebugFlags(StringRef(Opts.DwarfDebugFlags));
465 if (!Opts.DwarfDebugProducer.empty())
466 Ctx.setDwarfDebugProducer(StringRef(Opts.DwarfDebugProducer));
467 if (!Opts.DebugCompilationDir.empty())
468 Ctx.setCompilationDir(Opts.DebugCompilationDir);
475 if (!Opts.DebugPrefixMap.empty())
476 for (const auto &KV : Opts.DebugPrefixMap)
478 if (!Opts.MainFileName.empty())
479 Ctx.setMainFileName(StringRef(Opts.MainFileName));
480 Ctx.setDwarfFormat(Opts.Dwarf64 ? dwarf::DWARF64 : dwarf::DWARF32);
481 Ctx.setDwarfVersion(Opts.DwarfVersion);
482 if (Opts.GenDwarfForAssembly)
483 Ctx.setGenDwarfRootFile(Opts.InputFile,
494 MCOptions.MCNoWarn = Opts.NoWarn;
495 MCOptions.MCFatalWarnings = Opts.FatalWarnings;
496 MCOptions.MCNoTypeCheck = Opts.NoTypeCheck;
497 MCOptions.ABIName = Opts.TargetABI;
500 if (Opts.OutputType == AssemblerInvocation::FT_Asm) {
502 llvm::Triple(Opts.Triple), Opts.OutputAsmVariant, *MAI, *MCII, *MRI);
505 if (Opts.ShowEncoding)
514 Opts.ShowInst));
515 } else if (Opts.OutputType == AssemblerInvocation::FT_Null) {
518 assert(Opts.OutputType == AssemblerInvocation::FT_Obj &&
535 Triple T(Opts.Triple);
538 Opts.RelaxAll, Opts.IncrementalLinkerCompatible,
540 Str.get()->initSections(Opts.NoExecStack, *STI);
545 if (Opts.EmbedBitcode && Ctx.getObjectFileType() == MCContext::IsMachO) {
564 Failed = Diags.Report(diag::err_target_unknown_triple) << Opts.Triple;
567 for (auto &S : Opts.SymbolDefs) {
579 Failed = Parser->Run(Opts.NoInitialTextSection);
585 static bool ExecuteAssembler(AssemblerInvocation &Opts,
587 bool Failed = ExecuteAssemblerImpl(Opts, Diags);
591 if (Opts.OutputPath != "-")
592 sys::fs::remove(Opts.OutputPath);
593 if (!Opts.SplitDwarfOutput.empty() && Opts.SplitDwarfOutput != "-")
594 sys::fs::remove(Opts.SplitDwarfOutput);