Lines Matching refs:Opts
807 static void GenerateAnalyzerArgs(AnalyzerOptions &Opts, in GenerateAnalyzerArgs() argument
810 const AnalyzerOptions *AnalyzerOpts = &Opts; in GenerateAnalyzerArgs()
823 if (Opts.AnalysisConstraintsOpt != RangeConstraintsModel) { in GenerateAnalyzerArgs()
824 switch (Opts.AnalysisConstraintsOpt) { in GenerateAnalyzerArgs()
835 if (Opts.AnalysisDiagOpt != PD_HTML) { in GenerateAnalyzerArgs()
836 switch (Opts.AnalysisDiagOpt) { in GenerateAnalyzerArgs()
847 if (Opts.AnalysisPurgeOpt != PurgeStmt) { in GenerateAnalyzerArgs()
848 switch (Opts.AnalysisPurgeOpt) { in GenerateAnalyzerArgs()
859 if (Opts.InliningMode != NoRedundancy) { in GenerateAnalyzerArgs()
860 switch (Opts.InliningMode) { in GenerateAnalyzerArgs()
871 for (const auto &CP : Opts.CheckersAndPackages) { in GenerateAnalyzerArgs()
880 for (const auto &C : Opts.Config) { in GenerateAnalyzerArgs()
893 static bool ParseAnalyzerArgs(AnalyzerOptions &Opts, ArgList &Args, in ParseAnalyzerArgs() argument
897 AnalyzerOptions *AnalyzerOpts = &Opts; in ParseAnalyzerArgs()
926 Opts.AnalysisConstraintsOpt = Value; in ParseAnalyzerArgs()
941 Opts.AnalysisDiagOpt = Value; in ParseAnalyzerArgs()
956 Opts.AnalysisPurgeOpt = Value; in ParseAnalyzerArgs()
971 Opts.InliningMode = Value; in ParseAnalyzerArgs()
975 Opts.CheckersAndPackages.clear(); in ParseAnalyzerArgs()
986 Opts.CheckersAndPackages.emplace_back(std::string(CheckerOrPackage), in ParseAnalyzerArgs()
1015 if (!key.contains(":") && Opts.isUnknownAnalyzerConfig(key)) { in ParseAnalyzerArgs()
1016 if (Opts.ShouldEmitErrorsOnInvalidConfigValue) in ParseAnalyzerArgs()
1022 Opts.Config[key] = std::string(val); in ParseAnalyzerArgs()
1035 if (Opts.ShouldEmitErrorsOnInvalidConfigValue) in ParseAnalyzerArgs()
1036 parseAnalyzerConfigs(Opts, &Diags); in ParseAnalyzerArgs()
1038 parseAnalyzerConfigs(Opts, nullptr); in ParseAnalyzerArgs()
1040 llvm::raw_string_ostream os(Opts.FullCompilerInvocation); in ParseAnalyzerArgs()
1305 static void setPGOUseInstrumentor(CodeGenOptions &Opts, in setPGOUseInstrumentor() argument
1324 Opts.setProfileUse(CodeGenOptions::ProfileCSIRInstr); in setPGOUseInstrumentor()
1326 Opts.setProfileUse(CodeGenOptions::ProfileIRInstr); in setPGOUseInstrumentor()
1328 Opts.setProfileUse(CodeGenOptions::ProfileClangInstr); in setPGOUseInstrumentor()
1332 const CodeGenOptions &Opts, SmallVectorImpl<const char *> &Args, in GenerateCodeGenArgs() argument
1335 const CodeGenOptions &CodeGenOpts = Opts; in GenerateCodeGenArgs()
1337 if (Opts.OptimizationLevel == 0) in GenerateCodeGenArgs()
1340 GenerateArg(Args, OPT_O, Twine(Opts.OptimizationLevel), SA); in GenerateCodeGenArgs()
1353 if (Opts.OptimizationLevel > 0) { in GenerateCodeGenArgs()
1354 if (Opts.Inlining == CodeGenOptions::NormalInlining) in GenerateCodeGenArgs()
1356 else if (Opts.Inlining == CodeGenOptions::OnlyHintInlining) in GenerateCodeGenArgs()
1358 else if (Opts.Inlining == CodeGenOptions::OnlyAlwaysInlining) in GenerateCodeGenArgs()
1362 if (Opts.DirectAccessExternalData && LangOpts->PICLevel != 0) in GenerateCodeGenArgs()
1364 else if (!Opts.DirectAccessExternalData && LangOpts->PICLevel == 0) in GenerateCodeGenArgs()
1368 switch (Opts.DebugInfo) { in GenerateCodeGenArgs()
1397 for (const auto &Prefix : Opts.DebugPrefixMap) in GenerateCodeGenArgs()
1401 for (const auto &Prefix : Opts.CoveragePrefixMap) in GenerateCodeGenArgs()
1405 if (Opts.NewStructPathTBAA) in GenerateCodeGenArgs()
1408 if (Opts.OptimizeSize == 1) in GenerateCodeGenArgs()
1410 else if (Opts.OptimizeSize == 2) in GenerateCodeGenArgs()
1418 if (Opts.UnrollLoops && Opts.OptimizationLevel <= 1) in GenerateCodeGenArgs()
1420 else if (!Opts.UnrollLoops && Opts.OptimizationLevel > 1) in GenerateCodeGenArgs()
1423 if (!Opts.BinutilsVersion.empty()) in GenerateCodeGenArgs()
1424 GenerateArg(Args, OPT_fbinutils_version_EQ, Opts.BinutilsVersion, SA); in GenerateCodeGenArgs()
1426 if (Opts.DebugNameTable == in GenerateCodeGenArgs()
1429 else if (Opts.DebugNameTable == in GenerateCodeGenArgs()
1434 auto TNK = Opts.getDebugSimpleTemplateNames(); in GenerateCodeGenArgs()
1444 if (Opts.TimePasses) { in GenerateCodeGenArgs()
1445 if (Opts.TimePassesPerRun) in GenerateCodeGenArgs()
1451 if (Opts.PrepareForLTO && !Opts.PrepareForThinLTO) in GenerateCodeGenArgs()
1454 if (Opts.PrepareForThinLTO) in GenerateCodeGenArgs()
1457 if (!Opts.ThinLTOIndexFile.empty()) in GenerateCodeGenArgs()
1458 GenerateArg(Args, OPT_fthinlto_index_EQ, Opts.ThinLTOIndexFile, SA); in GenerateCodeGenArgs()
1460 if (Opts.SaveTempsFilePrefix == OutputFile) in GenerateCodeGenArgs()
1464 if (!Opts.MemoryProfileOutput.empty()) { in GenerateCodeGenArgs()
1465 if (Opts.MemoryProfileOutput == MemProfileBasename) { in GenerateCodeGenArgs()
1469 Opts.MemoryProfileOutput.size() - MemProfileBasename.size(); in GenerateCodeGenArgs()
1471 Opts.MemoryProfileOutput.substr(0, ArgLength), SA); in GenerateCodeGenArgs()
1475 if (memcmp(Opts.CoverageVersion, "408*", 4) != 0) in GenerateCodeGenArgs()
1477 StringRef(Opts.CoverageVersion, 4), SA); in GenerateCodeGenArgs()
1483 if (Opts.XRayInstrumentationBundle.Mask != XRayInstrKind::All) { in GenerateCodeGenArgs()
1485 serializeXRayInstrumentationBundle(Opts.XRayInstrumentationBundle); in GenerateCodeGenArgs()
1490 if (Opts.CFProtectionReturn && Opts.CFProtectionBranch) in GenerateCodeGenArgs()
1492 else if (Opts.CFProtectionReturn) in GenerateCodeGenArgs()
1494 else if (Opts.CFProtectionBranch) in GenerateCodeGenArgs()
1497 if (Opts.FunctionReturnThunks) in GenerateCodeGenArgs()
1500 for (const auto &F : Opts.LinkBitcodeFiles) { in GenerateCodeGenArgs()
1508 if (Opts.ReturnProtector) { in GenerateCodeGenArgs()
1513 Args, Opts.EmulatedTLS ? OPT_femulated_tls : OPT_fno_emulated_tls, SA); in GenerateCodeGenArgs()
1515 if (Opts.FPDenormalMode != llvm::DenormalMode::getIEEE()) in GenerateCodeGenArgs()
1516 GenerateArg(Args, OPT_fdenormal_fp_math_EQ, Opts.FPDenormalMode.str(), SA); in GenerateCodeGenArgs()
1518 if ((Opts.FPDenormalMode != Opts.FP32DenormalMode) || in GenerateCodeGenArgs()
1519 (Opts.FP32DenormalMode != llvm::DenormalMode::getIEEE())) in GenerateCodeGenArgs()
1520 GenerateArg(Args, OPT_fdenormal_fp_math_f32_EQ, Opts.FP32DenormalMode.str(), in GenerateCodeGenArgs()
1523 if (Opts.StructReturnConvention == CodeGenOptions::SRCK_OnStack) { in GenerateCodeGenArgs()
1527 } else if (Opts.StructReturnConvention == CodeGenOptions::SRCK_InRegs) { in GenerateCodeGenArgs()
1533 if (Opts.EnableAIXExtendedAltivecABI) in GenerateCodeGenArgs()
1536 if (!Opts.OptRecordPasses.empty()) in GenerateCodeGenArgs()
1537 GenerateArg(Args, OPT_opt_record_passes, Opts.OptRecordPasses, SA); in GenerateCodeGenArgs()
1539 if (!Opts.OptRecordFormat.empty()) in GenerateCodeGenArgs()
1540 GenerateArg(Args, OPT_opt_record_format, Opts.OptRecordFormat, SA); in GenerateCodeGenArgs()
1543 Opts.OptimizationRemark); in GenerateCodeGenArgs()
1546 Opts.OptimizationRemarkMissed); in GenerateCodeGenArgs()
1549 Opts.OptimizationRemarkAnalysis); in GenerateCodeGenArgs()
1552 Opts.DiagnosticsHotnessThreshold in GenerateCodeGenArgs()
1553 ? Twine(*Opts.DiagnosticsHotnessThreshold) in GenerateCodeGenArgs()
1558 Twine(*Opts.DiagnosticsMisExpectTolerance), SA); in GenerateCodeGenArgs()
1560 for (StringRef Sanitizer : serializeSanitizerKinds(Opts.SanitizeRecover)) in GenerateCodeGenArgs()
1563 for (StringRef Sanitizer : serializeSanitizerKinds(Opts.SanitizeTrap)) in GenerateCodeGenArgs()
1566 if (!Opts.EmitVersionIdentMetadata) in GenerateCodeGenArgs()
1569 switch (Opts.FiniteLoops) { in GenerateCodeGenArgs()
1581 bool CompilerInvocation::ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, in ParseCodeGenArgs() argument
1599 Opts.OptimizationLevel = OptimizationLevel; in ParseCodeGenArgs()
1603 CodeGenOptions &CodeGenOpts = Opts; in ParseCodeGenArgs()
1621 if (Opts.OptimizationLevel == 0) { in ParseCodeGenArgs()
1622 Opts.setInlining(CodeGenOptions::OnlyAlwaysInlining); in ParseCodeGenArgs()
1630 Opts.setInlining(CodeGenOptions::NormalInlining); in ParseCodeGenArgs()
1632 Opts.setInlining(CodeGenOptions::OnlyHintInlining); in ParseCodeGenArgs()
1634 Opts.setInlining(CodeGenOptions::OnlyAlwaysInlining); in ParseCodeGenArgs()
1636 Opts.setInlining(CodeGenOptions::NormalInlining); in ParseCodeGenArgs()
1641 Opts.DirectAccessExternalData = in ParseCodeGenArgs()
1660 Opts.setDebugInfo(static_cast<codegenoptions::DebugInfoKind>(Val)); in ParseCodeGenArgs()
1668 Opts.getDebugInfo() == codegenoptions::LimitedDebugInfo) in ParseCodeGenArgs()
1669 Opts.setDebugInfo(codegenoptions::DebugInfoConstructor); in ParseCodeGenArgs()
1671 Opts.getDebugInfo() == codegenoptions::DebugInfoConstructor) in ParseCodeGenArgs()
1672 Opts.setDebugInfo(codegenoptions::LimitedDebugInfo); in ParseCodeGenArgs()
1677 Opts.DebugPrefixMap.insert( in ParseCodeGenArgs()
1683 Opts.CoveragePrefixMap.insert( in ParseCodeGenArgs()
1692 if (Opts.OptimizationLevel > 0 && Opts.hasReducedDebugInfo() && in ParseCodeGenArgs()
1694 Opts.EmitCallSiteInfo = true; in ParseCodeGenArgs()
1696 if (!Opts.EnableDIPreservationVerify && Opts.DIBugsReportFilePath.size()) { in ParseCodeGenArgs()
1698 << Opts.DIBugsReportFilePath; in ParseCodeGenArgs()
1699 Opts.DIBugsReportFilePath = ""; in ParseCodeGenArgs()
1702 Opts.NewStructPathTBAA = !Args.hasArg(OPT_no_struct_path_tbaa) && in ParseCodeGenArgs()
1704 Opts.OptimizeSize = getOptimizationLevelSize(Args); in ParseCodeGenArgs()
1705 Opts.SimplifyLibCalls = !LangOpts->NoBuiltin; in ParseCodeGenArgs()
1706 if (Opts.SimplifyLibCalls) in ParseCodeGenArgs()
1707 Opts.NoBuiltinFuncs = LangOpts->NoBuiltinFuncs; in ParseCodeGenArgs()
1708 Opts.UnrollLoops = in ParseCodeGenArgs()
1710 (Opts.OptimizationLevel > 1)); in ParseCodeGenArgs()
1711 Opts.BinutilsVersion = in ParseCodeGenArgs()
1714 Opts.DebugNameTable = static_cast<unsigned>( in ParseCodeGenArgs()
1725 Opts.setDebugSimpleTemplateNames( in ParseCodeGenArgs()
1731 if (!Opts.ProfileInstrumentUsePath.empty()) in ParseCodeGenArgs()
1732 setPGOUseInstrumentor(Opts, Opts.ProfileInstrumentUsePath, Diags); in ParseCodeGenArgs()
1735 Opts.TimePasses = true; in ParseCodeGenArgs()
1741 Opts.TimePassesPerRun = false; in ParseCodeGenArgs()
1743 Opts.TimePassesPerRun = true; in ParseCodeGenArgs()
1750 Opts.PrepareForLTO = false; in ParseCodeGenArgs()
1751 Opts.PrepareForThinLTO = false; in ParseCodeGenArgs()
1753 Opts.PrepareForLTO = true; in ParseCodeGenArgs()
1756 Opts.PrepareForThinLTO = true; in ParseCodeGenArgs()
1764 Opts.ThinLTOIndexFile = in ParseCodeGenArgs()
1768 Opts.SaveTempsFilePrefix = in ParseCodeGenArgs()
1779 Opts.MemoryProfileOutput = std::string(Path); in ParseCodeGenArgs()
1781 Opts.MemoryProfileOutput = MemProfileBasename; in ParseCodeGenArgs()
1783 memcpy(Opts.CoverageVersion, "408*", 4); in ParseCodeGenArgs()
1784 if (Opts.EmitGcovArcs || Opts.EmitGcovNotes) { in ParseCodeGenArgs()
1792 memcpy(Opts.CoverageVersion, CoverageVersion.data(), 4); in ParseCodeGenArgs()
1811 Opts.CmdArgs.insert(Opts.CmdArgs.end(), ArgStr.begin(), ArgStr.end()); in ParseCodeGenArgs()
1813 Opts.CmdArgs.push_back('\0'); in ParseCodeGenArgs()
1820 Opts.XRayInstrumentationBundle.Mask = XRayInstrKind::All; in ParseCodeGenArgs()
1824 Diags, Opts.XRayInstrumentationBundle); in ParseCodeGenArgs()
1829 Opts.CFProtectionReturn = 1; in ParseCodeGenArgs()
1830 Opts.CFProtectionBranch = 1; in ParseCodeGenArgs()
1832 Opts.CFProtectionReturn = 1; in ParseCodeGenArgs()
1834 Opts.CFProtectionBranch = 1; in ParseCodeGenArgs()
1857 Opts.FunctionReturnThunks = static_cast<unsigned>(Val); in ParseCodeGenArgs()
1871 Opts.LinkBitcodeFiles.push_back(F); in ParseCodeGenArgs()
1874 Opts.ReturnProtector = Args.hasArg(OPT_ret_protector); in ParseCodeGenArgs()
1878 Opts.EmulatedTLS = T.hasDefaultEmulatedTLS(); in ParseCodeGenArgs()
1891 Opts.FPDenormalMode = llvm::parseDenormalFPAttribute(Val); in ParseCodeGenArgs()
1892 Opts.FP32DenormalMode = Opts.FPDenormalMode; in ParseCodeGenArgs()
1893 if (!Opts.FPDenormalMode.isValid()) in ParseCodeGenArgs()
1899 Opts.FP32DenormalMode = llvm::parseDenormalFPAttribute(Val); in ParseCodeGenArgs()
1900 if (!Opts.FP32DenormalMode.isValid()) in ParseCodeGenArgs()
1918 Opts.setStructReturnConvention(CodeGenOptions::SRCK_OnStack); in ParseCodeGenArgs()
1922 Opts.setStructReturnConvention(CodeGenOptions::SRCK_InRegs); in ParseCodeGenArgs()
1933 Opts.EnableAIXExtendedAltivecABI = O.matches(OPT_mabi_EQ_vec_extabi); in ParseCodeGenArgs()
1944 if (!Opts.OptRecordFile.empty()) in ParseCodeGenArgs()
1948 Opts.OptRecordPasses = A->getValue(); in ParseCodeGenArgs()
1953 Opts.OptRecordFormat = A->getValue(); in ParseCodeGenArgs()
1957 Opts.OptimizationRemark = in ParseCodeGenArgs()
1960 Opts.OptimizationRemarkMissed = in ParseCodeGenArgs()
1963 Opts.OptimizationRemarkAnalysis = ParseOptimizationRemark( in ParseCodeGenArgs()
1966 NeedLocTracking |= Opts.OptimizationRemark.hasValidPattern() || in ParseCodeGenArgs()
1967 Opts.OptimizationRemarkMissed.hasValidPattern() || in ParseCodeGenArgs()
1968 Opts.OptimizationRemarkAnalysis.hasValidPattern(); in ParseCodeGenArgs()
1970 bool UsingSampleProfile = !Opts.SampleProfileFile.empty(); in ParseCodeGenArgs()
1972 (Opts.getProfileUse() != CodeGenOptions::ProfileNone); in ParseCodeGenArgs()
1974 if (Opts.DiagnosticsWithHotness && !UsingProfile && in ParseCodeGenArgs()
1990 Opts.DiagnosticsHotnessThreshold = *ResultOrErr; in ParseCodeGenArgs()
1991 if ((!Opts.DiagnosticsHotnessThreshold || in ParseCodeGenArgs()
1992 *Opts.DiagnosticsHotnessThreshold > 0) && in ParseCodeGenArgs()
2007 Opts.DiagnosticsMisExpectTolerance = *ResultOrErr; in ParseCodeGenArgs()
2008 if ((!Opts.DiagnosticsMisExpectTolerance || in ParseCodeGenArgs()
2009 *Opts.DiagnosticsMisExpectTolerance > 0) && in ParseCodeGenArgs()
2022 if (!Opts.StackUsageOutput.empty()) in ParseCodeGenArgs()
2027 if (NeedLocTracking && Opts.getDebugInfo() == codegenoptions::NoDebugInfo) in ParseCodeGenArgs()
2028 Opts.setDebugInfo(codegenoptions::LocTrackingOnly); in ParseCodeGenArgs()
2034 Opts.SanitizeRecover); in ParseCodeGenArgs()
2037 Opts.SanitizeTrap); in ParseCodeGenArgs()
2039 Opts.EmitVersionIdentMetadata = Args.hasFlag(OPT_Qy, OPT_Qn, true); in ParseCodeGenArgs()
2042 Opts.FiniteLoops = CodeGenOptions::FiniteLoopsKind::Always; in ParseCodeGenArgs()
2044 Opts.FiniteLoops = CodeGenOptions::FiniteLoopsKind::Never; in ParseCodeGenArgs()
2046 Opts.EmitIEEENaNCompliantInsts = Args.hasFlag( in ParseCodeGenArgs()
2048 if (!Opts.EmitIEEENaNCompliantInsts && !LangOptsRef.NoHonorNaNs) in ParseCodeGenArgs()
2055 GenerateDependencyOutputArgs(const DependencyOutputOptions &Opts, in GenerateDependencyOutputArgs() argument
2058 const DependencyOutputOptions &DependencyOutputOpts = Opts; in GenerateDependencyOutputArgs()
2070 if (Opts.ShowIncludesDest != ShowIncludesDestination::None) in GenerateDependencyOutputArgs()
2073 for (const auto &Dep : Opts.ExtraDeps) { in GenerateDependencyOutputArgs()
2093 static bool ParseDependencyOutputArgs(DependencyOutputOptions &Opts, in ParseDependencyOutputArgs() argument
2099 DependencyOutputOptions &DependencyOutputOpts = Opts; in ParseDependencyOutputArgs()
2116 Opts.ShowIncludesDest = ShowIncludesDestination::Stderr; in ParseDependencyOutputArgs()
2118 Opts.ShowIncludesDest = ShowIncludesDestination::Stdout; in ParseDependencyOutputArgs()
2120 Opts.ShowIncludesDest = ShowIncludesDestination::None; in ParseDependencyOutputArgs()
2130 Opts.ExtraDeps.emplace_back(std::string(Val), EDK_SanitizeIgnorelist); in ParseDependencyOutputArgs()
2132 if (Opts.IncludeSystemHeaders) { in ParseDependencyOutputArgs()
2136 Opts.ExtraDeps.emplace_back(std::string(Val), EDK_SanitizeIgnorelist); in ParseDependencyOutputArgs()
2143 Opts.ExtraDeps.emplace_back(Filename, EDK_ProfileList); in ParseDependencyOutputArgs()
2147 Opts.ExtraDeps.emplace_back(A->getValue(), EDK_DepFileEntry); in ParseDependencyOutputArgs()
2153 Opts.ExtraDeps.emplace_back(std::string(Val), EDK_ModuleFile); in ParseDependencyOutputArgs()
2158 if ((Opts.HeaderIncludeFormat == HIFMT_Textual && in ParseDependencyOutputArgs()
2159 Opts.HeaderIncludeFiltering != HIFIL_None) || in ParseDependencyOutputArgs()
2160 (Opts.HeaderIncludeFormat == HIFMT_JSON && in ParseDependencyOutputArgs()
2161 Opts.HeaderIncludeFiltering != HIFIL_Only_Direct_System)) in ParseDependencyOutputArgs()
2218 static void GenerateFileSystemArgs(const FileSystemOptions &Opts, in GenerateFileSystemArgs() argument
2221 const FileSystemOptions &FileSystemOpts = Opts; in GenerateFileSystemArgs()
2235 static bool ParseFileSystemArgs(FileSystemOptions &Opts, const ArgList &Args, in ParseFileSystemArgs() argument
2239 FileSystemOptions &FileSystemOpts = Opts; in ParseFileSystemArgs()
2255 static void GenerateMigratorArgs(const MigratorOptions &Opts, in GenerateMigratorArgs() argument
2258 const MigratorOptions &MigratorOpts = Opts; in GenerateMigratorArgs()
2271 static bool ParseMigratorArgs(MigratorOptions &Opts, const ArgList &Args, in ParseMigratorArgs() argument
2275 MigratorOptions &MigratorOpts = Opts; in ParseMigratorArgs()
2292 const DiagnosticOptions &Opts, SmallVectorImpl<const char *> &Args, in GenerateDiagnosticArgs() argument
2294 const DiagnosticOptions *DiagnosticOpts = &Opts; in GenerateDiagnosticArgs()
2306 if (!Opts.DiagnosticSerializationFile.empty()) in GenerateDiagnosticArgs()
2308 Opts.DiagnosticSerializationFile, SA); in GenerateDiagnosticArgs()
2310 if (Opts.ShowColors) in GenerateDiagnosticArgs()
2313 if (Opts.VerifyDiagnostics && in GenerateDiagnosticArgs()
2314 llvm::is_contained(Opts.VerifyPrefixes, "expected")) in GenerateDiagnosticArgs()
2317 for (const auto &Prefix : Opts.VerifyPrefixes) in GenerateDiagnosticArgs()
2321 DiagnosticLevelMask VIU = Opts.getVerifyIgnoreUnexpected(); in GenerateDiagnosticArgs()
2337 for (const auto &Warning : Opts.Warnings) { in GenerateDiagnosticArgs()
2344 for (const auto &Remark : Opts.Remarks) { in GenerateDiagnosticArgs()
2370 bool clang::ParseDiagnosticArgs(DiagnosticOptions &Opts, ArgList &Args, in ParseDiagnosticArgs() argument
2384 DiagnosticOptions *DiagnosticOpts = &Opts; in ParseDiagnosticArgs()
2397 llvm::sys::Process::UseANSIEscapeCodes(Opts.UseANSIEscapeCodes); in ParseDiagnosticArgs()
2401 Opts.DiagnosticSerializationFile = A->getValue(); in ParseDiagnosticArgs()
2402 Opts.ShowColors = parseShowColorsArgs(Args, DefaultDiagColor); in ParseDiagnosticArgs()
2404 Opts.VerifyDiagnostics = Args.hasArg(OPT_verify) || Args.hasArg(OPT_verify_EQ); in ParseDiagnosticArgs()
2405 Opts.VerifyPrefixes = Args.getAllArgValues(OPT_verify_EQ); in ParseDiagnosticArgs()
2407 Opts.VerifyPrefixes.push_back("expected"); in ParseDiagnosticArgs()
2410 if (!checkVerifyPrefixes(Opts.VerifyPrefixes, *Diags)) in ParseDiagnosticArgs()
2411 Opts.VerifyDiagnostics = false; in ParseDiagnosticArgs()
2413 llvm::sort(Opts.VerifyPrefixes); in ParseDiagnosticArgs()
2420 Opts.setVerifyIgnoreUnexpected(DiagMask); in ParseDiagnosticArgs()
2421 if (Opts.TabStop == 0 || Opts.TabStop > DiagnosticOptions::MaxTabStop) { in ParseDiagnosticArgs()
2422 Opts.TabStop = DiagnosticOptions::DefaultTabStop; in ParseDiagnosticArgs()
2424 << Opts.TabStop << DiagnosticOptions::DefaultTabStop; in ParseDiagnosticArgs()
2427 addDiagnosticArgs(Args, OPT_W_Group, OPT_W_value_Group, Opts.Warnings); in ParseDiagnosticArgs()
2428 addDiagnosticArgs(Args, OPT_R_Group, OPT_R_value_Group, Opts.Remarks); in ParseDiagnosticArgs()
2534 static void GenerateFrontendArgs(const FrontendOptions &Opts, in GenerateFrontendArgs() argument
2538 const FrontendOptions &FrontendOpts = Opts; in GenerateFrontendArgs()
2551 getProgramActionOpt(Opts.ProgramAction); in GenerateFrontendArgs()
2560 assert(Opts.ProgramAction == frontend::PluginAction && in GenerateFrontendArgs()
2563 GenerateArg(Args, OPT_plugin, Opts.ActionName, SA); in GenerateFrontendArgs()
2568 if (Opts.ProgramAction == frontend::ASTDump) { in GenerateFrontendArgs()
2573 if (Opts.ASTDumpFormat != ADOF_Default) { in GenerateFrontendArgs()
2575 switch (Opts.ASTDumpFormat) { in GenerateFrontendArgs()
2583 if (Opts.ASTDumpAll) in GenerateFrontendArgs()
2585 if (Opts.ASTDumpDecls) in GenerateFrontendArgs()
2588 if (Opts.ASTDumpAll) in GenerateFrontendArgs()
2590 if (Opts.ASTDumpDecls) in GenerateFrontendArgs()
2596 if (Opts.ProgramAction == frontend::FixIt && !Opts.FixItSuffix.empty()) { in GenerateFrontendArgs()
2598 GenerateArg(Args, OPT_fixit_EQ, Opts.FixItSuffix, SA); in GenerateFrontendArgs()
2604 for (const auto &PluginArgs : Opts.PluginArgs) { in GenerateFrontendArgs()
2612 for (const auto &Ext : Opts.ModuleFileExtensions) in GenerateFrontendArgs()
2616 if (!Opts.CodeCompletionAt.FileName.empty()) in GenerateFrontendArgs()
2617 GenerateArg(Args, OPT_code_completion_at, Opts.CodeCompletionAt.ToString(), in GenerateFrontendArgs()
2620 for (const auto &Plugin : Opts.Plugins) in GenerateFrontendArgs()
2625 for (const auto &ModuleFile : Opts.ModuleFiles) in GenerateFrontendArgs()
2628 if (Opts.AuxTargetCPU) in GenerateFrontendArgs()
2629 GenerateArg(Args, OPT_aux_target_cpu, *Opts.AuxTargetCPU, SA); in GenerateFrontendArgs()
2631 if (Opts.AuxTargetFeatures) in GenerateFrontendArgs()
2632 for (const auto &Feature : *Opts.AuxTargetFeatures) in GenerateFrontendArgs()
2636 StringRef Preprocessed = Opts.DashX.isPreprocessed() ? "-cpp-output" : ""; in GenerateFrontendArgs()
2638 Opts.DashX.getFormat() == InputKind::ModuleMap ? "-module-map" : ""; in GenerateFrontendArgs()
2640 switch (Opts.DashX.getHeaderUnitKind()) { in GenerateFrontendArgs()
2656 switch (Opts.DashX.getLanguage()) { in GenerateFrontendArgs()
2688 assert(Opts.DashX.getFormat() == InputKind::Precompiled && in GenerateFrontendArgs()
2705 for (const auto &Input : Opts.Inputs) in GenerateFrontendArgs()
2709 static bool ParseFrontendArgs(FrontendOptions &Opts, ArgList &Args, in ParseFrontendArgs() argument
2713 FrontendOptions &FrontendOpts = Opts; in ParseFrontendArgs()
2726 Opts.ProgramAction = frontend::ParseSyntaxOnly; in ParseFrontendArgs()
2740 Opts.ASTDumpFormat = static_cast<ASTDumpOutputFormat>(Val); in ParseFrontendArgs()
2744 Opts.ASTDumpFormat = ADOF_Default; in ParseFrontendArgs()
2749 Opts.FixItSuffix = A->getValue(); in ParseFrontendArgs()
2778 Opts.ProgramAction = *ProgramAction; in ParseFrontendArgs()
2782 Opts.Plugins.emplace_back(A->getValue(0)); in ParseFrontendArgs()
2783 Opts.ProgramAction = frontend::PluginAction; in ParseFrontendArgs()
2784 Opts.ActionName = A->getValue(); in ParseFrontendArgs()
2787 Opts.PluginArgs[AA->getValue(0)].emplace_back(AA->getValue(1)); in ParseFrontendArgs()
2804 Opts.ModuleFileExtensions.push_back( in ParseFrontendArgs()
2810 Opts.CodeCompletionAt = in ParseFrontendArgs()
2812 if (Opts.CodeCompletionAt.FileName.empty()) in ParseFrontendArgs()
2817 Opts.Plugins = Args.getAllArgValues(OPT_load); in ParseFrontendArgs()
2818 Opts.ASTDumpDecls = Args.hasArg(OPT_ast_dump, OPT_ast_dump_EQ); in ParseFrontendArgs()
2819 Opts.ASTDumpAll = Args.hasArg(OPT_ast_dump_all, OPT_ast_dump_all_EQ); in ParseFrontendArgs()
2824 Opts.ModuleFiles.push_back(std::string(Val)); in ParseFrontendArgs()
2827 if (Opts.ProgramAction != frontend::GenerateModule && Opts.IsSystemModule) in ParseFrontendArgs()
2832 Opts.AuxTargetCPU = std::string(Args.getLastArgValue(OPT_aux_target_cpu)); in ParseFrontendArgs()
2834 Opts.AuxTargetFeatures = Args.getAllArgValues(OPT_aux_target_feature); in ParseFrontendArgs()
2836 if (Opts.ARCMTAction != FrontendOptions::ARCMT_None && in ParseFrontendArgs()
2837 Opts.ObjCMTAction != FrontendOptions::ObjCMT_None) { in ParseFrontendArgs()
2925 Opts.Inputs.clear(); in ParseFrontendArgs()
2949 if (Opts.ProgramAction == frontend::GenerateModule && in ParseFrontendArgs()
2952 IsSystem = Opts.IsSystemModule; in ParseFrontendArgs()
2955 Opts.Inputs.emplace_back(std::move(Inputs[i]), IK, IsSystem); in ParseFrontendArgs()
2958 Opts.DashX = DashX; in ParseFrontendArgs()
2970 static void GenerateHeaderSearchArgs(HeaderSearchOptions &Opts, in GenerateHeaderSearchArgs() argument
2973 const HeaderSearchOptions *HeaderSearchOpts = &Opts; in GenerateHeaderSearchArgs()
2985 if (Opts.UseLibcxx) in GenerateHeaderSearchArgs()
2988 if (!Opts.ModuleCachePath.empty()) in GenerateHeaderSearchArgs()
2989 GenerateArg(Args, OPT_fmodules_cache_path, Opts.ModuleCachePath, SA); in GenerateHeaderSearchArgs()
2991 for (const auto &File : Opts.PrebuiltModuleFiles) in GenerateHeaderSearchArgs()
2994 for (const auto &Path : Opts.PrebuiltModulePaths) in GenerateHeaderSearchArgs()
2997 for (const auto &Macro : Opts.ModulesIgnoreMacros) in GenerateHeaderSearchArgs()
3009 auto It = Opts.UserEntries.begin(); in GenerateHeaderSearchArgs()
3010 auto End = Opts.UserEntries.end(); in GenerateHeaderSearchArgs()
3087 for (const auto &P : Opts.SystemHeaderPrefixes) { in GenerateHeaderSearchArgs()
3093 for (const std::string &F : Opts.VFSOverlayFiles) in GenerateHeaderSearchArgs()
3097 static bool ParseHeaderSearchArgs(HeaderSearchOptions &Opts, ArgList &Args, in ParseHeaderSearchArgs() argument
3102 HeaderSearchOptions *HeaderSearchOpts = &Opts; in ParseHeaderSearchArgs()
3116 Opts.UseLibcxx = (strcmp(A->getValue(), "libc++") == 0); in ParseHeaderSearchArgs()
3127 Opts.ModuleCachePath = std::string(P.str()); in ParseHeaderSearchArgs()
3134 Opts.PrebuiltModuleFiles.insert( in ParseHeaderSearchArgs()
3139 Opts.AddPrebuiltModulePath(A->getValue()); in ParseHeaderSearchArgs()
3143 Opts.ModulesIgnoreMacros.insert( in ParseHeaderSearchArgs()
3166 llvm::sys::path::append(Buffer, Opts.Sysroot, in ParseHeaderSearchArgs()
3171 Opts.AddPath(Path, Group, IsFramework, in ParseHeaderSearchArgs()
3183 Opts.AddPath(Prefix.str() + A->getValue(), frontend::After, false, true); in ParseHeaderSearchArgs()
3185 Opts.AddPath(Prefix.str() + A->getValue(), frontend::Angled, false, true); in ParseHeaderSearchArgs()
3189 Opts.AddPath(A->getValue(), frontend::After, false, true); in ParseHeaderSearchArgs()
3191 Opts.AddPath(A->getValue(), frontend::Quoted, false, true); in ParseHeaderSearchArgs()
3193 Opts.AddPath(A->getValue(), frontend::System, false, in ParseHeaderSearchArgs()
3196 Opts.AddPath(A->getValue(), frontend::System, true, true); in ParseHeaderSearchArgs()
3198 Opts.AddPath(A->getValue(), frontend::System, /*IsFramework=*/true, in ParseHeaderSearchArgs()
3203 Opts.AddPath(A->getValue(), frontend::CSystem, false, true); in ParseHeaderSearchArgs()
3205 Opts.AddPath(A->getValue(), frontend::CXXSystem, false, true); in ParseHeaderSearchArgs()
3207 Opts.AddPath(A->getValue(), frontend::ObjCSystem, false,true); in ParseHeaderSearchArgs()
3209 Opts.AddPath(A->getValue(), frontend::ObjCXXSystem, false, true); in ParseHeaderSearchArgs()
3217 Opts.AddPath(A->getValue(), Group, false, true); in ParseHeaderSearchArgs()
3223 Opts.AddSystemHeaderPrefix( in ParseHeaderSearchArgs()
3227 Opts.AddVFSOverlayFile(A->getValue()); in ParseHeaderSearchArgs()
3313 void CompilerInvocation::GenerateLangArgs(const LangOptions &Opts, in GenerateLangArgs() argument
3319 if (Opts.ObjCAutoRefCount) in GenerateLangArgs()
3321 if (Opts.PICLevel != 0) in GenerateLangArgs()
3322 GenerateArg(Args, OPT_pic_level, Twine(Opts.PICLevel), SA); in GenerateLangArgs()
3323 if (Opts.PIE) in GenerateLangArgs()
3325 for (StringRef Sanitizer : serializeSanitizerKinds(Opts.Sanitize)) in GenerateLangArgs()
3332 switch (Opts.LangStd) { in GenerateLangArgs()
3347 auto LangStandard = LangStandard::getLangStandardForKind(Opts.LangStd); in GenerateLangArgs()
3350 if (Opts.IncludeDefaultHeader) in GenerateLangArgs()
3352 if (Opts.DeclareOpenCLBuiltins) in GenerateLangArgs()
3355 const LangOptions *LangOpts = &Opts; in GenerateLangArgs()
3370 if (Opts.ObjC) { in GenerateLangArgs()
3371 GenerateArg(Args, OPT_fobjc_runtime_EQ, Opts.ObjCRuntime.getAsString(), SA); in GenerateLangArgs()
3373 if (Opts.GC == LangOptions::GCOnly) in GenerateLangArgs()
3375 else if (Opts.GC == LangOptions::HybridGC) in GenerateLangArgs()
3377 else if (Opts.ObjCAutoRefCount == 1) in GenerateLangArgs()
3380 if (Opts.ObjCWeakRuntime) in GenerateLangArgs()
3383 if (Opts.ObjCWeak) in GenerateLangArgs()
3386 if (Opts.ObjCSubscriptingLegacyRuntime) in GenerateLangArgs()
3390 if (Opts.GNUCVersion != 0) { in GenerateLangArgs()
3391 unsigned Major = Opts.GNUCVersion / 100 / 100; in GenerateLangArgs()
3392 unsigned Minor = (Opts.GNUCVersion / 100) % 100; in GenerateLangArgs()
3393 unsigned Patch = Opts.GNUCVersion % 100; in GenerateLangArgs()
3398 if (Opts.IgnoreXCOFFVisibility) in GenerateLangArgs()
3401 if (Opts.SignedOverflowBehavior == LangOptions::SOB_Trapping) { in GenerateLangArgs()
3403 GenerateArg(Args, OPT_ftrapv_handler, Opts.OverflowHandler, SA); in GenerateLangArgs()
3404 } else if (Opts.SignedOverflowBehavior == LangOptions::SOB_Defined) { in GenerateLangArgs()
3408 if (Opts.MSCompatibilityVersion != 0) { in GenerateLangArgs()
3409 unsigned Major = Opts.MSCompatibilityVersion / 10000000; in GenerateLangArgs()
3410 unsigned Minor = (Opts.MSCompatibilityVersion / 100000) % 100; in GenerateLangArgs()
3411 unsigned Subminor = Opts.MSCompatibilityVersion % 100000; in GenerateLangArgs()
3416 if ((!Opts.GNUMode && !Opts.MSVCCompat && !Opts.CPlusPlus17) || T.isOSzOS()) { in GenerateLangArgs()
3417 if (!Opts.Trigraphs) in GenerateLangArgs()
3420 if (Opts.Trigraphs) in GenerateLangArgs()
3424 if (Opts.Blocks && !(Opts.OpenCL && Opts.OpenCLVersion == 200)) in GenerateLangArgs()
3427 if (Opts.ConvergentFunctions && in GenerateLangArgs()
3428 !(Opts.OpenCL || (Opts.CUDA && Opts.CUDAIsDevice) || Opts.SYCLIsDevice)) in GenerateLangArgs()
3431 if (Opts.NoBuiltin && !Opts.Freestanding) in GenerateLangArgs()
3434 if (!Opts.NoBuiltin) in GenerateLangArgs()
3435 for (const auto &Func : Opts.NoBuiltinFuncs) in GenerateLangArgs()
3438 if (Opts.LongDoubleSize == 128) in GenerateLangArgs()
3440 else if (Opts.LongDoubleSize == 64) in GenerateLangArgs()
3442 else if (Opts.LongDoubleSize == 80) in GenerateLangArgs()
3449 if (Opts.OpenMP && !Opts.OpenMPSimd) { in GenerateLangArgs()
3452 if (Opts.OpenMP != 50) in GenerateLangArgs()
3453 GenerateArg(Args, OPT_fopenmp_version_EQ, Twine(Opts.OpenMP), SA); in GenerateLangArgs()
3455 if (!Opts.OpenMPUseTLS) in GenerateLangArgs()
3458 if (Opts.OpenMPIsDevice) in GenerateLangArgs()
3461 if (Opts.OpenMPIRBuilder) in GenerateLangArgs()
3465 if (Opts.OpenMPSimd) { in GenerateLangArgs()
3468 if (Opts.OpenMP != 50) in GenerateLangArgs()
3469 GenerateArg(Args, OPT_fopenmp_version_EQ, Twine(Opts.OpenMP), SA); in GenerateLangArgs()
3472 if (Opts.OpenMPThreadSubscription) in GenerateLangArgs()
3475 if (Opts.OpenMPTeamSubscription) in GenerateLangArgs()
3478 if (Opts.OpenMPTargetDebug != 0) in GenerateLangArgs()
3480 Twine(Opts.OpenMPTargetDebug), SA); in GenerateLangArgs()
3482 if (Opts.OpenMPCUDANumSMs != 0) in GenerateLangArgs()
3484 Twine(Opts.OpenMPCUDANumSMs), SA); in GenerateLangArgs()
3486 if (Opts.OpenMPCUDABlocksPerSM != 0) in GenerateLangArgs()
3488 Twine(Opts.OpenMPCUDABlocksPerSM), SA); in GenerateLangArgs()
3490 if (Opts.OpenMPCUDAReductionBufNum != 1024) in GenerateLangArgs()
3492 Twine(Opts.OpenMPCUDAReductionBufNum), SA); in GenerateLangArgs()
3494 if (!Opts.OMPTargetTriples.empty()) { in GenerateLangArgs()
3498 Opts.OMPTargetTriples, OS, in GenerateLangArgs()
3503 if (!Opts.OMPHostIRFile.empty()) in GenerateLangArgs()
3504 GenerateArg(Args, OPT_fopenmp_host_ir_file_path, Opts.OMPHostIRFile, SA); in GenerateLangArgs()
3506 if (Opts.OpenMPCUDAMode) in GenerateLangArgs()
3512 if (Opts.DefaultFPContractMode == LangOptions::FPM_Fast) in GenerateLangArgs()
3514 else if (Opts.DefaultFPContractMode == LangOptions::FPM_On) in GenerateLangArgs()
3516 else if (Opts.DefaultFPContractMode == LangOptions::FPM_Off) in GenerateLangArgs()
3518 else if (Opts.DefaultFPContractMode == LangOptions::FPM_FastHonorPragmas) in GenerateLangArgs()
3521 for (StringRef Sanitizer : serializeSanitizerKinds(Opts.Sanitize)) in GenerateLangArgs()
3525 for (const std::string &F : Opts.NoSanitizeFiles) in GenerateLangArgs()
3528 if (Opts.getClangABICompat() == LangOptions::ClangABI::Ver3_8) in GenerateLangArgs()
3530 else if (Opts.getClangABICompat() == LangOptions::ClangABI::Ver4) in GenerateLangArgs()
3532 else if (Opts.getClangABICompat() == LangOptions::ClangABI::Ver6) in GenerateLangArgs()
3534 else if (Opts.getClangABICompat() == LangOptions::ClangABI::Ver7) in GenerateLangArgs()
3536 else if (Opts.getClangABICompat() == LangOptions::ClangABI::Ver9) in GenerateLangArgs()
3538 else if (Opts.getClangABICompat() == LangOptions::ClangABI::Ver11) in GenerateLangArgs()
3540 else if (Opts.getClangABICompat() == LangOptions::ClangABI::Ver12) in GenerateLangArgs()
3542 else if (Opts.getClangABICompat() == LangOptions::ClangABI::Ver14) in GenerateLangArgs()
3544 else if (Opts.getClangABICompat() == LangOptions::ClangABI::Ver15) in GenerateLangArgs()
3547 if (Opts.getSignReturnAddressScope() == in GenerateLangArgs()
3550 else if (Opts.getSignReturnAddressScope() == in GenerateLangArgs()
3554 if (Opts.getSignReturnAddressKey() == in GenerateLangArgs()
3558 if (Opts.CXXABI) in GenerateLangArgs()
3559 GenerateArg(Args, OPT_fcxx_abi_EQ, TargetCXXABI::getSpelling(*Opts.CXXABI), in GenerateLangArgs()
3562 if (Opts.RelativeCXXABIVTables) in GenerateLangArgs()
3567 if (Opts.UseTargetPathSeparator) in GenerateLangArgs()
3572 for (const auto &MP : Opts.MacroPrefixMap) in GenerateLangArgs()
3575 if (!Opts.RandstructSeed.empty()) in GenerateLangArgs()
3576 GenerateArg(Args, OPT_frandomize_layout_seed_EQ, Opts.RandstructSeed, SA); in GenerateLangArgs()
3579 bool CompilerInvocation::ParseLangArgs(LangOptions &Opts, ArgList &Args, in ParseLangArgs() argument
3591 Opts.ObjCAutoRefCount = 1; in ParseLangArgs()
3594 Opts.PICLevel = getLastArgIntValue(Args, OPT_pic_level, 0, Diags); in ParseLangArgs()
3595 Opts.PIE = Args.hasArg(OPT_pic_is_pie); in ParseLangArgs()
3597 Diags, Opts.Sanitize); in ParseLangArgs()
3671 Opts.IncludeDefaultHeader = Args.hasArg(OPT_finclude_default_header); in ParseLangArgs()
3672 Opts.DeclareOpenCLBuiltins = Args.hasArg(OPT_fdeclare_opencl_builtins); in ParseLangArgs()
3674 LangOptions::setLangDefaults(Opts, IK.getLanguage(), T, Includes, LangStd); in ParseLangArgs()
3678 LangOptions *LangOpts = &Opts; in ParseLangArgs()
3694 Opts.CFProtectionBranch = 1; in ParseLangArgs()
3705 Opts.setSYCLVersion(LangOptions::SYCL_Default); in ParseLangArgs()
3708 if (Opts.ObjC) { in ParseLangArgs()
3711 if (Opts.ObjCRuntime.tryParse(value)) in ParseLangArgs()
3716 Opts.setGC(LangOptions::GCOnly); in ParseLangArgs()
3718 Opts.setGC(LangOptions::HybridGC); in ParseLangArgs()
3720 Opts.ObjCAutoRefCount = 1; in ParseLangArgs()
3721 if (!Opts.ObjCRuntime.allowsARC()) in ParseLangArgs()
3730 Opts.ObjCWeakRuntime = 1; in ParseLangArgs()
3732 Opts.ObjCWeakRuntime = Opts.ObjCRuntime.allowsWeak(); in ParseLangArgs()
3738 assert(!Opts.ObjCWeak); in ParseLangArgs()
3739 } else if (Opts.getGC() != LangOptions::NonGC) { in ParseLangArgs()
3741 } else if (!Opts.ObjCWeakRuntime) { in ParseLangArgs()
3744 Opts.ObjCWeak = 1; in ParseLangArgs()
3746 } else if (Opts.ObjCAutoRefCount) { in ParseLangArgs()
3747 Opts.ObjCWeak = Opts.ObjCWeakRuntime; in ParseLangArgs()
3751 Opts.ObjCSubscriptingLegacyRuntime = in ParseLangArgs()
3752 (Opts.ObjCRuntime.getKind() == ObjCRuntime::FragileMacOSX); in ParseLangArgs()
3767 Opts.GNUCVersion = Major * 100 * 100 + Minor * 100 + Patch; in ParseLangArgs()
3771 Opts.IgnoreXCOFFVisibility = 1; in ParseLangArgs()
3774 Opts.setSignedOverflowBehavior(LangOptions::SOB_Trapping); in ParseLangArgs()
3776 Opts.OverflowHandler = in ParseLangArgs()
3780 Opts.setSignedOverflowBehavior(LangOptions::SOB_Defined); in ParseLangArgs()
3782 Opts.MSCompatibilityVersion = 0; in ParseLangArgs()
3788 Opts.MSCompatibilityVersion = VT.getMajor() * 10000000 + in ParseLangArgs()
3797 Opts.Trigraphs = in ParseLangArgs()
3798 (!Opts.GNUMode && !Opts.MSVCCompat && !Opts.CPlusPlus17) || T.isOSzOS(); in ParseLangArgs()
3799 Opts.Trigraphs = in ParseLangArgs()
3800 Args.hasFlag(OPT_ftrigraphs, OPT_fno_trigraphs, Opts.Trigraphs); in ParseLangArgs()
3802 Opts.Blocks = Args.hasArg(OPT_fblocks) || (Opts.OpenCL in ParseLangArgs()
3803 && Opts.OpenCLVersion == 200); in ParseLangArgs()
3805 Opts.ConvergentFunctions = Opts.OpenCL || (Opts.CUDA && Opts.CUDAIsDevice) || in ParseLangArgs()
3806 Opts.SYCLIsDevice || in ParseLangArgs()
3809 Opts.NoBuiltin = Args.hasArg(OPT_fno_builtin) || Opts.Freestanding; in ParseLangArgs()
3810 if (!Opts.NoBuiltin) in ParseLangArgs()
3811 getAllNoBuiltinFuncValues(Args, Opts.NoBuiltinFuncs); in ParseLangArgs()
3814 Opts.LongDoubleSize = 64; in ParseLangArgs()
3816 Opts.LongDoubleSize = 80; in ParseLangArgs()
3818 Opts.LongDoubleSize = 128; in ParseLangArgs()
3820 Opts.LongDoubleSize = 0; in ParseLangArgs()
3822 if (Opts.FastRelaxedMath || Opts.CLUnsafeMath) in ParseLangArgs()
3823 Opts.setDefaultFPContractMode(LangOptions::FPM_Fast); in ParseLangArgs()
3825 llvm::sort(Opts.ModuleFeatures); in ParseLangArgs()
3829 if (Opts.getDefaultCallingConv() != LangOptions::DCC_None) in ParseLangArgs()
3837 Opts.setDefaultCallingConv(LangOptions::DCC_StdCall); in ParseLangArgs()
3842 Opts.OpenMP = Args.hasArg(OPT_fopenmp) ? 50 : 0; in ParseLangArgs()
3847 Opts.OpenMPSimd = !Opts.OpenMP && IsSimdSpecified; in ParseLangArgs()
3848 Opts.OpenMPUseTLS = in ParseLangArgs()
3849 Opts.OpenMP && !Args.hasArg(options::OPT_fnoopenmp_use_tls); in ParseLangArgs()
3850 Opts.OpenMPIsDevice = in ParseLangArgs()
3851 Opts.OpenMP && Args.hasArg(options::OPT_fopenmp_is_device); in ParseLangArgs()
3852 Opts.OpenMPIRBuilder = in ParseLangArgs()
3853 Opts.OpenMP && Args.hasArg(options::OPT_fopenmp_enable_irbuilder); in ParseLangArgs()
3855 Opts.OpenMPIsDevice || Args.hasArg(options::OPT_fopenmp_targets_EQ); in ParseLangArgs()
3857 Opts.ConvergentFunctions = Opts.ConvergentFunctions || Opts.OpenMPIsDevice; in ParseLangArgs()
3859 if (Opts.OpenMP || Opts.OpenMPSimd) { in ParseLangArgs()
3862 (IsSimdSpecified || IsTargetSpecified) ? 50 : Opts.OpenMP, Diags)) in ParseLangArgs()
3863 Opts.OpenMP = Version; in ParseLangArgs()
3866 if (!Opts.OpenMPIsDevice) { in ParseLangArgs()
3881 if ((Opts.OpenMPIsDevice && (T.isNVPTX() || T.isAMDGCN())) || in ParseLangArgs()
3882 Opts.OpenCLCPlusPlus) { in ParseLangArgs()
3884 Opts.Exceptions = 0; in ParseLangArgs()
3885 Opts.CXXExceptions = 0; in ParseLangArgs()
3887 if (Opts.OpenMPIsDevice && T.isNVPTX()) { in ParseLangArgs()
3888 Opts.OpenMPCUDANumSMs = in ParseLangArgs()
3890 Opts.OpenMPCUDANumSMs, Diags); in ParseLangArgs()
3891 Opts.OpenMPCUDABlocksPerSM = in ParseLangArgs()
3893 Opts.OpenMPCUDABlocksPerSM, Diags); in ParseLangArgs()
3894 Opts.OpenMPCUDAReductionBufNum = getLastArgIntValue( in ParseLangArgs()
3896 Opts.OpenMPCUDAReductionBufNum, Diags); in ParseLangArgs()
3901 if (Opts.OpenMPIsDevice && (Args.hasArg(OPT_fopenmp_target_debug) || in ParseLangArgs()
3903 Opts.OpenMPTargetDebug = getLastArgIntValue( in ParseLangArgs()
3904 Args, OPT_fopenmp_target_debug_EQ, Opts.OpenMPTargetDebug, Diags); in ParseLangArgs()
3905 if (!Opts.OpenMPTargetDebug && Args.hasArg(OPT_fopenmp_target_debug)) in ParseLangArgs()
3906 Opts.OpenMPTargetDebug = 1; in ParseLangArgs()
3909 if (Opts.OpenMPIsDevice) { in ParseLangArgs()
3911 Opts.OpenMPTeamSubscription = true; in ParseLangArgs()
3913 Opts.OpenMPThreadSubscription = true; in ParseLangArgs()
3943 Opts.OMPTargetTriples.push_back(TT); in ParseLangArgs()
3950 Opts.OMPHostIRFile = A->getValue(); in ParseLangArgs()
3951 if (!llvm::sys::fs::exists(Opts.OMPHostIRFile)) in ParseLangArgs()
3953 << Opts.OMPHostIRFile; in ParseLangArgs()
3957 Opts.OpenMPCUDAMode = Opts.OpenMPIsDevice && (T.isNVPTX() || T.isAMDGCN()) && in ParseLangArgs()
3963 Opts.Optimize = Opt != 0; in ParseLangArgs()
3964 Opts.OptimizeSize = OptSize != 0; in ParseLangArgs()
3969 Opts.NoInlineDefine = !Opts.Optimize; in ParseLangArgs()
3974 Opts.NoInlineDefine = true; in ParseLangArgs()
3979 Opts.setDefaultFPContractMode(LangOptions::FPM_Fast); in ParseLangArgs()
3981 Opts.setDefaultFPContractMode(LangOptions::FPM_On); in ParseLangArgs()
3983 Opts.setDefaultFPContractMode(LangOptions::FPM_Off); in ParseLangArgs()
3985 Opts.setDefaultFPContractMode(LangOptions::FPM_FastHonorPragmas); in ParseLangArgs()
3992 Diags, Opts.Sanitize); in ParseLangArgs()
3993 Opts.NoSanitizeFiles = Args.getAllArgValues(OPT_fsanitize_ignorelist_EQ); in ParseLangArgs()
3996 Opts.NoSanitizeFiles.insert(Opts.NoSanitizeFiles.end(), in ParseLangArgs()
4001 Opts.setClangABICompat(LangOptions::ClangABI::Latest); in ParseLangArgs()
4018 Opts.setClangABICompat(LangOptions::ClangABI::Ver3_8); in ParseLangArgs()
4020 Opts.setClangABICompat(LangOptions::ClangABI::Ver4); in ParseLangArgs()
4022 Opts.setClangABICompat(LangOptions::ClangABI::Ver6); in ParseLangArgs()
4024 Opts.setClangABICompat(LangOptions::ClangABI::Ver7); in ParseLangArgs()
4026 Opts.setClangABICompat(LangOptions::ClangABI::Ver9); in ParseLangArgs()
4028 Opts.setClangABICompat(LangOptions::ClangABI::Ver11); in ParseLangArgs()
4030 Opts.setClangABICompat(LangOptions::ClangABI::Ver12); in ParseLangArgs()
4032 Opts.setClangABICompat(LangOptions::ClangABI::Ver14); in ParseLangArgs()
4034 Opts.setClangABICompat(LangOptions::ClangABI::Ver15); in ParseLangArgs()
4045 Opts.setSignReturnAddressScope( in ParseLangArgs()
4048 Opts.setSignReturnAddressScope( in ParseLangArgs()
4051 Opts.setSignReturnAddressScope( in ParseLangArgs()
4061 Opts.setSignReturnAddressKey( in ParseLangArgs()
4064 Opts.setSignReturnAddressKey( in ParseLangArgs()
4083 Opts.CXXABI = Kind; in ParseLangArgs()
4087 Opts.RelativeCXXABIVTables = in ParseLangArgs()
4094 Opts.MacroPrefixMap.insert( in ParseLangArgs()
4098 Opts.UseTargetPathSeparator = in ParseLangArgs()
4118 std::getline(SeedFile, Opts.RandstructSeed); in ParseLangArgs()
4122 Opts.RandstructSeed = A->getValue(0); in ParseLangArgs()
4125 if (Opts.HLSL) { in ParseLangArgs()
4180 static void GeneratePreprocessorArgs(PreprocessorOptions &Opts, in GeneratePreprocessorArgs() argument
4186 PreprocessorOptions *PreprocessorOpts = &Opts; in GeneratePreprocessorArgs()
4199 if (Opts.PCHWithHdrStop && !Opts.PCHWithHdrStopCreate) in GeneratePreprocessorArgs()
4202 for (const auto &D : Opts.DeserializedPCHDeclsToErrorOn) in GeneratePreprocessorArgs()
4205 if (Opts.PrecompiledPreambleBytes != std::make_pair(0u, false)) in GeneratePreprocessorArgs()
4207 Twine(Opts.PrecompiledPreambleBytes.first) + "," + in GeneratePreprocessorArgs()
4208 (Opts.PrecompiledPreambleBytes.second ? "1" : "0"), in GeneratePreprocessorArgs()
4211 for (const auto &M : Opts.Macros) { in GeneratePreprocessorArgs()
4227 for (const auto &I : Opts.Includes) { in GeneratePreprocessorArgs()
4242 for (const auto &CI : Opts.ChainedIncludes) in GeneratePreprocessorArgs()
4245 for (const auto &RF : Opts.RemappedFiles) in GeneratePreprocessorArgs()
4248 if (Opts.SourceDateEpoch) in GeneratePreprocessorArgs()
4249 GenerateArg(Args, OPT_source_date_epoch, Twine(*Opts.SourceDateEpoch), SA); in GeneratePreprocessorArgs()
4255 static bool ParsePreprocessorArgs(PreprocessorOptions &Opts, ArgList &Args, in ParsePreprocessorArgs() argument
4261 PreprocessorOptions *PreprocessorOpts = &Opts; in ParsePreprocessorArgs()
4274 Opts.PCHWithHdrStop = Args.hasArg(OPT_pch_through_hdrstop_create) || in ParsePreprocessorArgs()
4278 Opts.DeserializedPCHDeclsToErrorOn.insert(A->getValue()); in ParsePreprocessorArgs()
4291 Opts.PrecompiledPreambleBytes.first = Bytes; in ParsePreprocessorArgs()
4292 Opts.PrecompiledPreambleBytes.second = (EndOfLine != 0); in ParsePreprocessorArgs()
4300 Opts.addMacroDef("__CET__=1"); in ParsePreprocessorArgs()
4302 Opts.addMacroDef("__CET__=2"); in ParsePreprocessorArgs()
4304 Opts.addMacroDef("__CET__=3"); in ParsePreprocessorArgs()
4310 Opts.addMacroDef(A->getValue()); in ParsePreprocessorArgs()
4312 Opts.addMacroUndef(A->getValue()); in ParsePreprocessorArgs()
4317 Opts.Includes.emplace_back(A->getValue()); in ParsePreprocessorArgs()
4320 Opts.ChainedIncludes.emplace_back(A->getValue()); in ParsePreprocessorArgs()
4330 Opts.addRemappedFile(Split.first, Split.second); in ParsePreprocessorArgs()
4345 Opts.SourceDateEpoch = V; in ParsePreprocessorArgs()
4353 Opts.LexEditorPlaceholders = false; in ParsePreprocessorArgs()
4359 const PreprocessorOutputOptions &Opts, SmallVectorImpl<const char *> &Args, in GeneratePreprocessorOutputArgs() argument
4361 const PreprocessorOutputOptions &PreprocessorOutputOpts = Opts; in GeneratePreprocessorOutputArgs()
4374 bool Generate_dM = isStrictlyPreprocessorAction(Action) && !Opts.ShowCPP; in GeneratePreprocessorOutputArgs()
4377 if (!Generate_dM && Opts.ShowMacros) in GeneratePreprocessorOutputArgs()
4379 if (Opts.DirectivesOnly) in GeneratePreprocessorOutputArgs()
4383 static bool ParsePreprocessorOutputArgs(PreprocessorOutputOptions &Opts, in ParsePreprocessorOutputArgs() argument
4388 PreprocessorOutputOptions &PreprocessorOutputOpts = Opts; in ParsePreprocessorOutputArgs()
4401 Opts.ShowCPP = isStrictlyPreprocessorAction(Action) && !Args.hasArg(OPT_dM); in ParsePreprocessorOutputArgs()
4402 Opts.ShowMacros = Args.hasArg(OPT_dM) || Args.hasArg(OPT_dD); in ParsePreprocessorOutputArgs()
4403 Opts.DirectivesOnly = Args.hasArg(OPT_fdirectives_only); in ParsePreprocessorOutputArgs()
4408 static void GenerateTargetArgs(const TargetOptions &Opts, in GenerateTargetArgs() argument
4411 const TargetOptions *TargetOpts = &Opts; in GenerateTargetArgs()
4423 if (!Opts.SDKVersion.empty()) in GenerateTargetArgs()
4424 GenerateArg(Args, OPT_target_sdk_version_EQ, Opts.SDKVersion.getAsString(), in GenerateTargetArgs()
4426 if (!Opts.DarwinTargetVariantSDKVersion.empty()) in GenerateTargetArgs()
4428 Opts.DarwinTargetVariantSDKVersion.getAsString(), SA); in GenerateTargetArgs()
4431 static bool ParseTargetArgs(TargetOptions &Opts, ArgList &Args, in ParseTargetArgs() argument
4435 TargetOptions *TargetOpts = &Opts; in ParseTargetArgs()
4454 Opts.SDKVersion = Version; in ParseTargetArgs()
4463 Opts.DarwinTargetVariantSDKVersion = Version; in ParseTargetArgs()
4475 const OptTable &Opts = getDriverOptTable(); in CreateFromArgsImpl() local
4478 InputArgList Args = Opts.ParseArgs(CommandLineArgs, MissingArgIndex, in CreateFromArgsImpl()
4491 if (Opts.findNearest(ArgString, Nearest, IncludedFlagsBitmask) > 1) in CreateFromArgsImpl()