Home | History | Annotate | Download | only in driver

Lines Matching refs:Opts

158 bool AssemblerInvocation::CreateFromArgs(AssemblerInvocation &Opts,
187 Opts.Triple = llvm::Triple::normalize(Args.getLastArgValue(OPT_triple));
188 Opts.CPU = Args.getLastArgValue(OPT_target_cpu);
189 Opts.Features = Args.getAllArgValues(OPT_target_feature);
192 if (Opts.Triple.empty())
193 Opts.Triple = llvm::sys::getDefaultTargetTriple();
196 Opts.IncludePaths = Args.getAllArgValues(OPT_I);
197 Opts.NoInitialTextSection = Args.hasArg(OPT_n);
198 Opts.SaveTemporaryLabels = Args.hasArg(OPT_msave_temp_labels);
200 Opts.GenDwarfForAssembly = Args.hasArg(OPT_debug_info_kind_EQ);
201 Opts.CompressDebugSections = Args.hasArg(OPT_compress_debug_sections);
202 Opts.RelaxELFRelocations = Args.hasArg(OPT_mrelax_relocations);
203 Opts.DwarfVersion = getLastArgIntValue(Args, OPT_dwarf_version_EQ, 2, Diags);
204 Opts.DwarfDebugFlags = Args.getLastArgValue(OPT_dwarf_debug_flags);
205 Opts.DwarfDebugProducer = Args.getLastArgValue(OPT_dwarf_debug_producer);
206 Opts.DebugCompilationDir = Args.getLastArgValue(OPT_fdebug_compilation_dir);
207 Opts.MainFileName = Args.getLastArgValue(OPT_main_file_name);
217 Opts.InputFile = A->getValue();
224 Opts.LLVMArgs = Args.getAllArgValues(OPT_mllvm);
225 Opts.OutputPath = Args.getLastArgValue(OPT_o);
237 Opts.OutputType = FileType(OutputType);
239 Opts.ShowHelp = Args.hasArg(OPT_help);
240 Opts.ShowVersion = Args.hasArg(OPT_version);
243 Opts.OutputAsmVariant =
245 Opts.ShowEncoding = Args.hasArg(OPT_show_encoding);
246 Opts.ShowInst = Args.hasArg(OPT_show_inst);
249 Opts.RelaxAll = Args.hasArg(OPT_mrelax_all);
250 Opts.NoExecStack = Args.hasArg(OPT_mno_exec_stack);
251 Opts.FatalWarnings = Args.hasArg(OPT_massembler_fatal_warnings);
252 Opts.RelocationModel = Args.getLastArgValue(OPT_mrelocation_model, "pic");
253 Opts.IncrementalLinkerCompatible =
260 getOutputStream(AssemblerInvocation &Opts, DiagnosticsEngine &Diags,
262 if (Opts.OutputPath.empty())
263 Opts.OutputPath = "-";
267 if (Opts.OutputPath != "-")
268 sys::RemoveFileOnSignal(Opts.OutputPath);
272 Opts.OutputPath, EC, (Binary ? sys::fs::F_None : sys::fs::F_Text));
274 Diags.Report(diag::err_fe_unable_to_open_output) << Opts.OutputPath
282 static bool ExecuteAssembler(AssemblerInvocation &Opts,
286 const Target *TheTarget = TargetRegistry::lookupTarget(Opts.Triple, Error);
288 return Diags.Report(diag::err_target_unknown_triple) << Opts.Triple;
291 MemoryBuffer::getFileOrSTDIN(Opts.InputFile);
295 return Diags.Report(diag::err_fe_error_reading) << Opts.InputFile;
305 SrcMgr.setIncludeDirs(Opts.IncludePaths);
307 std::unique_ptr<MCRegisterInfo> MRI(TheTarget->createMCRegInfo(Opts.Triple));
310 std::unique_ptr<MCAsmInfo> MAI(TheTarget->createMCAsmInfo(*MRI, Opts.Triple));
315 if (Opts.CompressDebugSections)
318 MAI->setRelaxELFRelocations(Opts.RelaxELFRelocations);
320 bool IsBinary = Opts.OutputType == AssemblerInvocation::FT_Obj;
321 std::unique_ptr<raw_fd_ostream> FDOS = getOutputStream(Opts, Diags, IsBinary);
332 if (Opts.RelocationModel == "static") {
334 } else if (Opts.RelocationModel == "pic") {
337 assert(Opts.RelocationModel == "dynamic-no-pic" &&
342 MOFI->InitMCObjectFileInfo(Triple(Opts.Triple), PIC, CodeModel::Default, Ctx);
343 if (Opts.SaveTemporaryLabels)
345 if (Opts.GenDwarfForAssembly)
347 if (!Opts.DwarfDebugFlags.empty())
348 Ctx.setDwarfDebugFlags(StringRef(Opts.DwarfDebugFlags));
349 if (!Opts.DwarfDebugProducer.empty())
350 Ctx.setDwarfDebugProducer(StringRef(Opts.DwarfDebugProducer));
351 if (!Opts.DebugCompilationDir.empty())
352 Ctx.setCompilationDir(Opts.DebugCompilationDir);
353 if (!Opts.MainFileName.empty())
354 Ctx.setMainFileName(StringRef(Opts.MainFileName));
355 Ctx.setDwarfVersion(Opts.DwarfVersion);
359 if (!Opts.Features.empty()) {
360 FS = Opts.Features[0];
361 for (unsigned i = 1, e = Opts.Features.size(); i != e; ++i)
362 FS += "," + Opts.Features[i];
369 TheTarget->createMCSubtargetInfo(Opts.Triple, Opts.CPU, FS));
375 if (Opts.OutputType == AssemblerInvocation::FT_Asm) {
377 llvm::Triple(Opts.Triple), Opts.OutputAsmVariant, *MAI, *MCII, *MRI);
380 if (Opts.ShowEncoding) {
382 MAB = TheTarget->createMCAsmBackend(*MRI, Opts.Triple, Opts.CPU);
387 /*useDwarfDirectory*/ true, IP, CE, MAB, Opts.ShowInst));
388 } else if (Opts.OutputType == AssemblerInvocation::FT_Null) {
391 assert(Opts.OutputType == AssemblerInvocation::FT_Obj &&
399 MCAsmBackend *MAB = TheTarget->createMCAsmBackend(*MRI, Opts.Triple,
400 Opts.CPU);
401 Triple T(Opts.Triple);
403 T, Ctx, *MAB, *Out, CE, *STI, Opts.RelaxAll,
404 Opts.IncrementalLinkerCompatible,
406 Str.get()->InitSections(Opts.NoExecStack);
419 Failed = Diags.Report(diag::err_target_unknown_triple) << Opts.Triple;
423 Failed = Parser->Run(Opts.NoInitialTextSection);
434 if (Failed && Opts.OutputPath != "-")
435 sys::fs::remove(Opts.OutputPath);
475 std::unique_ptr<OptTable> Opts(driver::createDriverOptTable());
476 Opts->PrintHelp(llvm::outs(), "clang -cc1as", "Clang Integrated Assembler",