Lines Matching refs:Opts
942 static void GenerateAnalyzerArgs(const AnalyzerOptions &Opts, in GenerateAnalyzerArgs() argument
944 const AnalyzerOptions *AnalyzerOpts = &Opts; in GenerateAnalyzerArgs()
951 if (Opts.AnalysisConstraintsOpt != RangeConstraintsModel) { in GenerateAnalyzerArgs()
952 switch (Opts.AnalysisConstraintsOpt) { in GenerateAnalyzerArgs()
963 if (Opts.AnalysisDiagOpt != PD_HTML) { in GenerateAnalyzerArgs()
964 switch (Opts.AnalysisDiagOpt) { in GenerateAnalyzerArgs()
975 if (Opts.AnalysisPurgeOpt != PurgeStmt) { in GenerateAnalyzerArgs()
976 switch (Opts.AnalysisPurgeOpt) { in GenerateAnalyzerArgs()
987 if (Opts.InliningMode != NoRedundancy) { in GenerateAnalyzerArgs()
988 switch (Opts.InliningMode) { in GenerateAnalyzerArgs()
999 for (const auto &CP : Opts.CheckersAndPackages) { in GenerateAnalyzerArgs()
1010 for (const auto &C : Opts.Config) in GenerateAnalyzerArgs()
1027 static bool ParseAnalyzerArgs(AnalyzerOptions &Opts, ArgList &Args, in ParseAnalyzerArgs() argument
1031 AnalyzerOptions *AnalyzerOpts = &Opts; in ParseAnalyzerArgs()
1054 Opts.AnalysisConstraintsOpt = Value; in ParseAnalyzerArgs()
1069 Opts.AnalysisDiagOpt = Value; in ParseAnalyzerArgs()
1084 Opts.AnalysisPurgeOpt = Value; in ParseAnalyzerArgs()
1099 Opts.InliningMode = Value; in ParseAnalyzerArgs()
1103 Opts.CheckersAndPackages.clear(); in ParseAnalyzerArgs()
1114 Opts.CheckersAndPackages.emplace_back(std::string(CheckerOrPackage), in ParseAnalyzerArgs()
1143 if (!key.contains(":") && Opts.isUnknownAnalyzerConfig(key)) { in ParseAnalyzerArgs()
1144 if (Opts.ShouldEmitErrorsOnInvalidConfigValue) in ParseAnalyzerArgs()
1150 Opts.Config[key] = std::string(val); in ParseAnalyzerArgs()
1154 if (Opts.ShouldEmitErrorsOnInvalidConfigValue) in ParseAnalyzerArgs()
1155 parseAnalyzerConfigs(Opts, &Diags); in ParseAnalyzerArgs()
1157 parseAnalyzerConfigs(Opts, nullptr); in ParseAnalyzerArgs()
1159 llvm::raw_string_ostream os(Opts.FullCompilerInvocation); in ParseAnalyzerArgs()
1423 static void setPGOUseInstrumentor(CodeGenOptions &Opts, in setPGOUseInstrumentor() argument
1443 Opts.setProfileUse(CodeGenOptions::ProfileCSIRInstr); in setPGOUseInstrumentor()
1445 Opts.setProfileUse(CodeGenOptions::ProfileIRInstr); in setPGOUseInstrumentor()
1447 Opts.setProfileUse(CodeGenOptions::ProfileClangInstr); in setPGOUseInstrumentor()
1450 void CompilerInvocationBase::GenerateCodeGenArgs(const CodeGenOptions &Opts, in GenerateCodeGenArgs() argument
1455 const CodeGenOptions &CodeGenOpts = Opts; in GenerateCodeGenArgs()
1457 if (Opts.OptimizationLevel == 0) in GenerateCodeGenArgs()
1460 GenerateArg(Consumer, OPT_O, Twine(Opts.OptimizationLevel)); in GenerateCodeGenArgs()
1467 if (Opts.OptimizationLevel > 0) { in GenerateCodeGenArgs()
1468 if (Opts.Inlining == CodeGenOptions::NormalInlining) in GenerateCodeGenArgs()
1470 else if (Opts.Inlining == CodeGenOptions::OnlyHintInlining) in GenerateCodeGenArgs()
1472 else if (Opts.Inlining == CodeGenOptions::OnlyAlwaysInlining) in GenerateCodeGenArgs()
1476 if (Opts.DirectAccessExternalData && LangOpts->PICLevel != 0) in GenerateCodeGenArgs()
1478 else if (!Opts.DirectAccessExternalData && LangOpts->PICLevel == 0) in GenerateCodeGenArgs()
1482 switch (Opts.DebugInfo) { in GenerateCodeGenArgs()
1511 for (const auto &Prefix : Opts.DebugPrefixMap) in GenerateCodeGenArgs()
1515 for (const auto &Prefix : Opts.CoveragePrefixMap) in GenerateCodeGenArgs()
1519 if (Opts.NewStructPathTBAA) in GenerateCodeGenArgs()
1522 if (Opts.OptimizeSize == 1) in GenerateCodeGenArgs()
1524 else if (Opts.OptimizeSize == 2) in GenerateCodeGenArgs()
1532 if (Opts.UnrollLoops && Opts.OptimizationLevel <= 1) in GenerateCodeGenArgs()
1534 else if (!Opts.UnrollLoops && Opts.OptimizationLevel > 1) in GenerateCodeGenArgs()
1537 if (!Opts.BinutilsVersion.empty()) in GenerateCodeGenArgs()
1538 GenerateArg(Consumer, OPT_fbinutils_version_EQ, Opts.BinutilsVersion); in GenerateCodeGenArgs()
1540 if (Opts.DebugNameTable == in GenerateCodeGenArgs()
1543 else if (Opts.DebugNameTable == in GenerateCodeGenArgs()
1548 auto TNK = Opts.getDebugSimpleTemplateNames(); in GenerateCodeGenArgs()
1558 if (Opts.TimePasses) { in GenerateCodeGenArgs()
1559 if (Opts.TimePassesPerRun) in GenerateCodeGenArgs()
1565 if (Opts.PrepareForLTO && !Opts.PrepareForThinLTO) in GenerateCodeGenArgs()
1568 if (Opts.PrepareForThinLTO) in GenerateCodeGenArgs()
1571 if (!Opts.ThinLTOIndexFile.empty()) in GenerateCodeGenArgs()
1572 GenerateArg(Consumer, OPT_fthinlto_index_EQ, Opts.ThinLTOIndexFile); in GenerateCodeGenArgs()
1574 if (Opts.SaveTempsFilePrefix == OutputFile) in GenerateCodeGenArgs()
1578 if (!Opts.MemoryProfileOutput.empty()) { in GenerateCodeGenArgs()
1579 if (Opts.MemoryProfileOutput == MemProfileBasename) { in GenerateCodeGenArgs()
1583 Opts.MemoryProfileOutput.size() - MemProfileBasename.size(); in GenerateCodeGenArgs()
1585 Opts.MemoryProfileOutput.substr(0, ArgLength)); in GenerateCodeGenArgs()
1589 if (memcmp(Opts.CoverageVersion, "408*", 4) != 0) in GenerateCodeGenArgs()
1591 StringRef(Opts.CoverageVersion, 4)); in GenerateCodeGenArgs()
1597 if (Opts.XRayInstrumentationBundle.Mask != XRayInstrKind::All) { in GenerateCodeGenArgs()
1599 serializeXRayInstrumentationBundle(Opts.XRayInstrumentationBundle); in GenerateCodeGenArgs()
1604 if (Opts.CFProtectionReturn && Opts.CFProtectionBranch) in GenerateCodeGenArgs()
1606 else if (Opts.CFProtectionReturn) in GenerateCodeGenArgs()
1608 else if (Opts.CFProtectionBranch) in GenerateCodeGenArgs()
1611 if (Opts.FunctionReturnThunks) in GenerateCodeGenArgs()
1614 for (const auto &F : Opts.LinkBitcodeFiles) { in GenerateCodeGenArgs()
1622 if (Opts.EmulatedTLS) in GenerateCodeGenArgs()
1625 if (Opts.FPDenormalMode != llvm::DenormalMode::getIEEE()) in GenerateCodeGenArgs()
1626 GenerateArg(Consumer, OPT_fdenormal_fp_math_EQ, Opts.FPDenormalMode.str()); in GenerateCodeGenArgs()
1628 if ((Opts.FPDenormalMode != Opts.FP32DenormalMode) || in GenerateCodeGenArgs()
1629 (Opts.FP32DenormalMode != llvm::DenormalMode::getIEEE())) in GenerateCodeGenArgs()
1631 Opts.FP32DenormalMode.str()); in GenerateCodeGenArgs()
1633 if (Opts.StructReturnConvention == CodeGenOptions::SRCK_OnStack) { in GenerateCodeGenArgs()
1637 } else if (Opts.StructReturnConvention == CodeGenOptions::SRCK_InRegs) { in GenerateCodeGenArgs()
1643 if (Opts.EnableAIXExtendedAltivecABI) in GenerateCodeGenArgs()
1646 if (Opts.XCOFFReadOnlyPointers) in GenerateCodeGenArgs()
1649 if (!Opts.OptRecordPasses.empty()) in GenerateCodeGenArgs()
1650 GenerateArg(Consumer, OPT_opt_record_passes, Opts.OptRecordPasses); in GenerateCodeGenArgs()
1652 if (!Opts.OptRecordFormat.empty()) in GenerateCodeGenArgs()
1653 GenerateArg(Consumer, OPT_opt_record_format, Opts.OptRecordFormat); in GenerateCodeGenArgs()
1656 Opts.OptimizationRemark); in GenerateCodeGenArgs()
1659 Opts.OptimizationRemarkMissed); in GenerateCodeGenArgs()
1662 Opts.OptimizationRemarkAnalysis); in GenerateCodeGenArgs()
1665 Opts.DiagnosticsHotnessThreshold in GenerateCodeGenArgs()
1666 ? Twine(*Opts.DiagnosticsHotnessThreshold) in GenerateCodeGenArgs()
1670 Twine(*Opts.DiagnosticsMisExpectTolerance)); in GenerateCodeGenArgs()
1672 for (StringRef Sanitizer : serializeSanitizerKinds(Opts.SanitizeRecover)) in GenerateCodeGenArgs()
1675 for (StringRef Sanitizer : serializeSanitizerKinds(Opts.SanitizeTrap)) in GenerateCodeGenArgs()
1678 if (!Opts.EmitVersionIdentMetadata) in GenerateCodeGenArgs()
1681 switch (Opts.FiniteLoops) { in GenerateCodeGenArgs()
1693 bool CompilerInvocation::ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, in ParseCodeGenArgs() argument
1711 Opts.OptimizationLevel = OptimizationLevel; in ParseCodeGenArgs()
1715 CodeGenOptions &CodeGenOpts = Opts; in ParseCodeGenArgs()
1727 if (Opts.OptimizationLevel == 0) { in ParseCodeGenArgs()
1728 Opts.setInlining(CodeGenOptions::OnlyAlwaysInlining); in ParseCodeGenArgs()
1736 Opts.setInlining(CodeGenOptions::NormalInlining); in ParseCodeGenArgs()
1738 Opts.setInlining(CodeGenOptions::OnlyHintInlining); in ParseCodeGenArgs()
1740 Opts.setInlining(CodeGenOptions::OnlyAlwaysInlining); in ParseCodeGenArgs()
1742 Opts.setInlining(CodeGenOptions::NormalInlining); in ParseCodeGenArgs()
1747 Opts.DirectAccessExternalData = in ParseCodeGenArgs()
1767 Opts.setDebugInfo(static_cast<llvm::codegenoptions::DebugInfoKind>(Val)); in ParseCodeGenArgs()
1775 Opts.getDebugInfo() == llvm::codegenoptions::LimitedDebugInfo) in ParseCodeGenArgs()
1776 Opts.setDebugInfo(llvm::codegenoptions::DebugInfoConstructor); in ParseCodeGenArgs()
1778 Opts.getDebugInfo() == llvm::codegenoptions::DebugInfoConstructor) in ParseCodeGenArgs()
1779 Opts.setDebugInfo(llvm::codegenoptions::LimitedDebugInfo); in ParseCodeGenArgs()
1784 Opts.DebugPrefixMap.emplace_back(Split.first, Split.second); in ParseCodeGenArgs()
1789 Opts.CoveragePrefixMap.emplace_back(Split.first, Split.second); in ParseCodeGenArgs()
1797 if (Opts.OptimizationLevel > 0 && Opts.hasReducedDebugInfo() && in ParseCodeGenArgs()
1799 Opts.EmitCallSiteInfo = true; in ParseCodeGenArgs()
1801 if (!Opts.EnableDIPreservationVerify && Opts.DIBugsReportFilePath.size()) { in ParseCodeGenArgs()
1803 << Opts.DIBugsReportFilePath; in ParseCodeGenArgs()
1804 Opts.DIBugsReportFilePath = ""; in ParseCodeGenArgs()
1807 Opts.NewStructPathTBAA = !Args.hasArg(OPT_no_struct_path_tbaa) && in ParseCodeGenArgs()
1809 Opts.OptimizeSize = getOptimizationLevelSize(Args); in ParseCodeGenArgs()
1810 Opts.SimplifyLibCalls = !LangOpts->NoBuiltin; in ParseCodeGenArgs()
1811 if (Opts.SimplifyLibCalls) in ParseCodeGenArgs()
1812 Opts.NoBuiltinFuncs = LangOpts->NoBuiltinFuncs; in ParseCodeGenArgs()
1813 Opts.UnrollLoops = in ParseCodeGenArgs()
1815 (Opts.OptimizationLevel > 1)); in ParseCodeGenArgs()
1816 Opts.BinutilsVersion = in ParseCodeGenArgs()
1819 Opts.DebugNameTable = static_cast<unsigned>( in ParseCodeGenArgs()
1830 Opts.setDebugSimpleTemplateNames( in ParseCodeGenArgs()
1837 Opts.TimePasses = true; in ParseCodeGenArgs()
1843 Opts.TimePassesPerRun = false; in ParseCodeGenArgs()
1845 Opts.TimePassesPerRun = true; in ParseCodeGenArgs()
1852 Opts.PrepareForLTO = false; in ParseCodeGenArgs()
1853 Opts.PrepareForThinLTO = false; in ParseCodeGenArgs()
1855 Opts.PrepareForLTO = true; in ParseCodeGenArgs()
1858 Opts.PrepareForThinLTO = true; in ParseCodeGenArgs()
1862 Opts.PrepareForThinLTO = true; in ParseCodeGenArgs()
1868 Opts.ThinLTOIndexFile = in ParseCodeGenArgs()
1872 Opts.SaveTempsFilePrefix = in ParseCodeGenArgs()
1883 Opts.MemoryProfileOutput = std::string(Path); in ParseCodeGenArgs()
1885 Opts.MemoryProfileOutput = MemProfileBasename; in ParseCodeGenArgs()
1887 memcpy(Opts.CoverageVersion, "408*", 4); in ParseCodeGenArgs()
1888 if (Opts.CoverageNotesFile.size() || Opts.CoverageDataFile.size()) { in ParseCodeGenArgs()
1896 memcpy(Opts.CoverageVersion, CoverageVersion.data(), 4); in ParseCodeGenArgs()
1915 Opts.CmdArgs.insert(Opts.CmdArgs.end(), ArgStr.begin(), ArgStr.end()); in ParseCodeGenArgs()
1917 Opts.CmdArgs.push_back('\0'); in ParseCodeGenArgs()
1924 Opts.XRayInstrumentationBundle.Mask = XRayInstrKind::All; in ParseCodeGenArgs()
1928 Diags, Opts.XRayInstrumentationBundle); in ParseCodeGenArgs()
1933 Opts.CFProtectionReturn = 1; in ParseCodeGenArgs()
1934 Opts.CFProtectionBranch = 1; in ParseCodeGenArgs()
1936 Opts.CFProtectionReturn = 1; in ParseCodeGenArgs()
1938 Opts.CFProtectionBranch = 1; in ParseCodeGenArgs()
1961 Opts.FunctionReturnThunks = static_cast<unsigned>(Val); in ParseCodeGenArgs()
1975 Opts.LinkBitcodeFiles.push_back(F); in ParseCodeGenArgs()
1988 Opts.FPDenormalMode = llvm::parseDenormalFPAttribute(Val); in ParseCodeGenArgs()
1989 Opts.FP32DenormalMode = Opts.FPDenormalMode; in ParseCodeGenArgs()
1990 if (!Opts.FPDenormalMode.isValid()) in ParseCodeGenArgs()
1996 Opts.FP32DenormalMode = llvm::parseDenormalFPAttribute(Val); in ParseCodeGenArgs()
1997 if (!Opts.FP32DenormalMode.isValid()) in ParseCodeGenArgs()
2015 Opts.setStructReturnConvention(CodeGenOptions::SRCK_OnStack); in ParseCodeGenArgs()
2019 Opts.setStructReturnConvention(CodeGenOptions::SRCK_InRegs); in ParseCodeGenArgs()
2039 Opts.XCOFFReadOnlyPointers = true; in ParseCodeGenArgs()
2050 if (!Opts.OptRecordFile.empty()) in ParseCodeGenArgs()
2054 Opts.OptRecordPasses = A->getValue(); in ParseCodeGenArgs()
2059 Opts.OptRecordFormat = A->getValue(); in ParseCodeGenArgs()
2063 Opts.OptimizationRemark = in ParseCodeGenArgs()
2066 Opts.OptimizationRemarkMissed = in ParseCodeGenArgs()
2069 Opts.OptimizationRemarkAnalysis = ParseOptimizationRemark( in ParseCodeGenArgs()
2072 NeedLocTracking |= Opts.OptimizationRemark.hasValidPattern() || in ParseCodeGenArgs()
2073 Opts.OptimizationRemarkMissed.hasValidPattern() || in ParseCodeGenArgs()
2074 Opts.OptimizationRemarkAnalysis.hasValidPattern(); in ParseCodeGenArgs()
2076 bool UsingSampleProfile = !Opts.SampleProfileFile.empty(); in ParseCodeGenArgs()
2078 UsingSampleProfile || !Opts.ProfileInstrumentUsePath.empty(); in ParseCodeGenArgs()
2080 if (Opts.DiagnosticsWithHotness && !UsingProfile && in ParseCodeGenArgs()
2096 Opts.DiagnosticsHotnessThreshold = *ResultOrErr; in ParseCodeGenArgs()
2097 if ((!Opts.DiagnosticsHotnessThreshold || in ParseCodeGenArgs()
2098 *Opts.DiagnosticsHotnessThreshold > 0) && in ParseCodeGenArgs()
2113 Opts.DiagnosticsMisExpectTolerance = *ResultOrErr; in ParseCodeGenArgs()
2114 if ((!Opts.DiagnosticsMisExpectTolerance || in ParseCodeGenArgs()
2115 *Opts.DiagnosticsMisExpectTolerance > 0) && in ParseCodeGenArgs()
2128 if (!Opts.StackUsageOutput.empty()) in ParseCodeGenArgs()
2134 Opts.getDebugInfo() == llvm::codegenoptions::NoDebugInfo) in ParseCodeGenArgs()
2135 Opts.setDebugInfo(llvm::codegenoptions::LocTrackingOnly); in ParseCodeGenArgs()
2141 Opts.SanitizeRecover); in ParseCodeGenArgs()
2144 Opts.SanitizeTrap); in ParseCodeGenArgs()
2146 Opts.EmitVersionIdentMetadata = Args.hasFlag(OPT_Qy, OPT_Qn, true); in ParseCodeGenArgs()
2149 Opts.FiniteLoops = CodeGenOptions::FiniteLoopsKind::Always; in ParseCodeGenArgs()
2151 Opts.FiniteLoops = CodeGenOptions::FiniteLoopsKind::Never; in ParseCodeGenArgs()
2153 Opts.EmitIEEENaNCompliantInsts = Args.hasFlag( in ParseCodeGenArgs()
2155 if (!Opts.EmitIEEENaNCompliantInsts && !LangOptsRef.NoHonorNaNs) in ParseCodeGenArgs()
2161 static void GenerateDependencyOutputArgs(const DependencyOutputOptions &Opts, in GenerateDependencyOutputArgs() argument
2163 const DependencyOutputOptions &DependencyOutputOpts = Opts; in GenerateDependencyOutputArgs()
2169 if (Opts.ShowIncludesDest != ShowIncludesDestination::None) in GenerateDependencyOutputArgs()
2172 for (const auto &Dep : Opts.ExtraDeps) { in GenerateDependencyOutputArgs()
2192 static bool ParseDependencyOutputArgs(DependencyOutputOptions &Opts, in ParseDependencyOutputArgs() argument
2198 DependencyOutputOptions &DependencyOutputOpts = Opts; in ParseDependencyOutputArgs()
2209 Opts.ShowIncludesDest = ShowIncludesDestination::Stderr; in ParseDependencyOutputArgs()
2211 Opts.ShowIncludesDest = ShowIncludesDestination::Stdout; in ParseDependencyOutputArgs()
2213 Opts.ShowIncludesDest = ShowIncludesDestination::None; in ParseDependencyOutputArgs()
2223 Opts.ExtraDeps.emplace_back(std::string(Val), EDK_SanitizeIgnorelist); in ParseDependencyOutputArgs()
2225 if (Opts.IncludeSystemHeaders) { in ParseDependencyOutputArgs()
2229 Opts.ExtraDeps.emplace_back(std::string(Val), EDK_SanitizeIgnorelist); in ParseDependencyOutputArgs()
2236 Opts.ExtraDeps.emplace_back(Filename, EDK_ProfileList); in ParseDependencyOutputArgs()
2240 Opts.ExtraDeps.emplace_back(A->getValue(), EDK_DepFileEntry); in ParseDependencyOutputArgs()
2246 Opts.ExtraDeps.emplace_back(std::string(Val), EDK_ModuleFile); in ParseDependencyOutputArgs()
2251 if ((Opts.HeaderIncludeFormat == HIFMT_Textual && in ParseDependencyOutputArgs()
2252 Opts.HeaderIncludeFiltering != HIFIL_None) || in ParseDependencyOutputArgs()
2253 (Opts.HeaderIncludeFormat == HIFMT_JSON && in ParseDependencyOutputArgs()
2254 Opts.HeaderIncludeFiltering != HIFIL_Only_Direct_System)) in ParseDependencyOutputArgs()
2311 static void GenerateFileSystemArgs(const FileSystemOptions &Opts, in GenerateFileSystemArgs() argument
2313 const FileSystemOptions &FileSystemOpts = Opts; in GenerateFileSystemArgs()
2321 static bool ParseFileSystemArgs(FileSystemOptions &Opts, const ArgList &Args, in ParseFileSystemArgs() argument
2325 FileSystemOptions &FileSystemOpts = Opts; in ParseFileSystemArgs()
2335 static void GenerateMigratorArgs(const MigratorOptions &Opts, in GenerateMigratorArgs() argument
2337 const MigratorOptions &MigratorOpts = Opts; in GenerateMigratorArgs()
2344 static bool ParseMigratorArgs(MigratorOptions &Opts, const ArgList &Args, in ParseMigratorArgs() argument
2348 MigratorOptions &MigratorOpts = Opts; in ParseMigratorArgs()
2359 const DiagnosticOptions &Opts, ArgumentConsumer Consumer, in GenerateDiagnosticArgs() argument
2361 const DiagnosticOptions *DiagnosticOpts = &Opts; in GenerateDiagnosticArgs()
2367 if (!Opts.DiagnosticSerializationFile.empty()) in GenerateDiagnosticArgs()
2369 Opts.DiagnosticSerializationFile); in GenerateDiagnosticArgs()
2371 if (Opts.ShowColors) in GenerateDiagnosticArgs()
2374 if (Opts.VerifyDiagnostics && in GenerateDiagnosticArgs()
2375 llvm::is_contained(Opts.VerifyPrefixes, "expected")) in GenerateDiagnosticArgs()
2378 for (const auto &Prefix : Opts.VerifyPrefixes) in GenerateDiagnosticArgs()
2382 DiagnosticLevelMask VIU = Opts.getVerifyIgnoreUnexpected(); in GenerateDiagnosticArgs()
2398 for (const auto &Warning : Opts.Warnings) { in GenerateDiagnosticArgs()
2405 for (const auto &Remark : Opts.Remarks) { in GenerateDiagnosticArgs()
2441 bool clang::ParseDiagnosticArgs(DiagnosticOptions &Opts, ArgList &Args, in ParseDiagnosticArgs() argument
2455 DiagnosticOptions *DiagnosticOpts = &Opts; in ParseDiagnosticArgs()
2462 llvm::sys::Process::UseANSIEscapeCodes(Opts.UseANSIEscapeCodes); in ParseDiagnosticArgs()
2466 Opts.DiagnosticSerializationFile = A->getValue(); in ParseDiagnosticArgs()
2467 Opts.ShowColors = parseShowColorsArgs(Args, DefaultDiagColor); in ParseDiagnosticArgs()
2469 Opts.VerifyDiagnostics = Args.hasArg(OPT_verify) || Args.hasArg(OPT_verify_EQ); in ParseDiagnosticArgs()
2470 Opts.VerifyPrefixes = Args.getAllArgValues(OPT_verify_EQ); in ParseDiagnosticArgs()
2472 Opts.VerifyPrefixes.push_back("expected"); in ParseDiagnosticArgs()
2475 if (!checkVerifyPrefixes(Opts.VerifyPrefixes, *Diags)) in ParseDiagnosticArgs()
2476 Opts.VerifyDiagnostics = false; in ParseDiagnosticArgs()
2478 llvm::sort(Opts.VerifyPrefixes); in ParseDiagnosticArgs()
2485 Opts.setVerifyIgnoreUnexpected(DiagMask); in ParseDiagnosticArgs()
2486 if (Opts.TabStop == 0 || Opts.TabStop > DiagnosticOptions::MaxTabStop) { in ParseDiagnosticArgs()
2488 << Opts.TabStop << DiagnosticOptions::DefaultTabStop; in ParseDiagnosticArgs()
2489 Opts.TabStop = DiagnosticOptions::DefaultTabStop; in ParseDiagnosticArgs()
2492 addDiagnosticArgs(Args, OPT_W_Group, OPT_W_value_Group, Opts.Warnings); in ParseDiagnosticArgs()
2493 addDiagnosticArgs(Args, OPT_R_Group, OPT_R_value_Group, Opts.Remarks); in ParseDiagnosticArgs()
2599 static void GenerateFrontendArgs(const FrontendOptions &Opts, in GenerateFrontendArgs() argument
2601 const FrontendOptions &FrontendOpts = Opts; in GenerateFrontendArgs()
2608 getProgramActionOpt(Opts.ProgramAction); in GenerateFrontendArgs()
2617 assert(Opts.ProgramAction == frontend::PluginAction && in GenerateFrontendArgs()
2620 GenerateArg(Consumer, OPT_plugin, Opts.ActionName); in GenerateFrontendArgs()
2625 if (Opts.ProgramAction == frontend::ASTDump) { in GenerateFrontendArgs()
2630 if (Opts.ASTDumpFormat != ADOF_Default) { in GenerateFrontendArgs()
2632 switch (Opts.ASTDumpFormat) { in GenerateFrontendArgs()
2640 if (Opts.ASTDumpAll) in GenerateFrontendArgs()
2642 if (Opts.ASTDumpDecls) in GenerateFrontendArgs()
2645 if (Opts.ASTDumpAll) in GenerateFrontendArgs()
2647 if (Opts.ASTDumpDecls) in GenerateFrontendArgs()
2653 if (Opts.ProgramAction == frontend::FixIt && !Opts.FixItSuffix.empty()) { in GenerateFrontendArgs()
2655 GenerateArg(Consumer, OPT_fixit_EQ, Opts.FixItSuffix); in GenerateFrontendArgs()
2661 for (const auto &PluginArgs : Opts.PluginArgs) { in GenerateFrontendArgs()
2669 for (const auto &Ext : Opts.ModuleFileExtensions) in GenerateFrontendArgs()
2673 if (!Opts.CodeCompletionAt.FileName.empty()) in GenerateFrontendArgs()
2675 Opts.CodeCompletionAt.ToString()); in GenerateFrontendArgs()
2677 for (const auto &Plugin : Opts.Plugins) in GenerateFrontendArgs()
2682 for (const auto &ModuleFile : Opts.ModuleFiles) in GenerateFrontendArgs()
2685 if (Opts.AuxTargetCPU) in GenerateFrontendArgs()
2686 GenerateArg(Consumer, OPT_aux_target_cpu, *Opts.AuxTargetCPU); in GenerateFrontendArgs()
2688 if (Opts.AuxTargetFeatures) in GenerateFrontendArgs()
2689 for (const auto &Feature : *Opts.AuxTargetFeatures) in GenerateFrontendArgs()
2693 StringRef Preprocessed = Opts.DashX.isPreprocessed() ? "-cpp-output" : ""; in GenerateFrontendArgs()
2695 Opts.DashX.getFormat() == InputKind::ModuleMap ? "-module-map" : ""; in GenerateFrontendArgs()
2697 switch (Opts.DashX.getHeaderUnitKind()) { in GenerateFrontendArgs()
2713 switch (Opts.DashX.getLanguage()) { in GenerateFrontendArgs()
2745 assert(Opts.DashX.getFormat() == InputKind::Precompiled && in GenerateFrontendArgs()
2762 for (const auto &Input : Opts.Inputs) in GenerateFrontendArgs()
2766 static bool ParseFrontendArgs(FrontendOptions &Opts, ArgList &Args, in ParseFrontendArgs() argument
2770 FrontendOptions &FrontendOpts = Opts; in ParseFrontendArgs()
2777 Opts.ProgramAction = frontend::ParseSyntaxOnly; in ParseFrontendArgs()
2791 Opts.ASTDumpFormat = static_cast<ASTDumpOutputFormat>(Val); in ParseFrontendArgs()
2795 Opts.ASTDumpFormat = ADOF_Default; in ParseFrontendArgs()
2800 Opts.FixItSuffix = A->getValue(); in ParseFrontendArgs()
2829 Opts.ProgramAction = *ProgramAction; in ParseFrontendArgs()
2833 Opts.Plugins.emplace_back(A->getValue(0)); in ParseFrontendArgs()
2834 Opts.ProgramAction = frontend::PluginAction; in ParseFrontendArgs()
2835 Opts.ActionName = A->getValue(); in ParseFrontendArgs()
2838 Opts.PluginArgs[AA->getValue(0)].emplace_back(AA->getValue(1)); in ParseFrontendArgs()
2855 Opts.ModuleFileExtensions.push_back( in ParseFrontendArgs()
2861 Opts.CodeCompletionAt = in ParseFrontendArgs()
2863 if (Opts.CodeCompletionAt.FileName.empty()) in ParseFrontendArgs()
2868 Opts.Plugins = Args.getAllArgValues(OPT_load); in ParseFrontendArgs()
2869 Opts.ASTDumpDecls = Args.hasArg(OPT_ast_dump, OPT_ast_dump_EQ); in ParseFrontendArgs()
2870 Opts.ASTDumpAll = Args.hasArg(OPT_ast_dump_all, OPT_ast_dump_all_EQ); in ParseFrontendArgs()
2875 Opts.ModuleFiles.push_back(std::string(Val)); in ParseFrontendArgs()
2878 if (Opts.ProgramAction != frontend::GenerateModule && Opts.IsSystemModule) in ParseFrontendArgs()
2883 Opts.AuxTargetCPU = std::string(Args.getLastArgValue(OPT_aux_target_cpu)); in ParseFrontendArgs()
2885 Opts.AuxTargetFeatures = Args.getAllArgValues(OPT_aux_target_feature); in ParseFrontendArgs()
2887 if (Opts.ARCMTAction != FrontendOptions::ARCMT_None && in ParseFrontendArgs()
2888 Opts.ObjCMTAction != FrontendOptions::ObjCMT_None) { in ParseFrontendArgs()
2976 Opts.Inputs.clear(); in ParseFrontendArgs()
3000 if (Opts.ProgramAction == frontend::GenerateModule && in ParseFrontendArgs()
3003 IsSystem = Opts.IsSystemModule; in ParseFrontendArgs()
3006 Opts.Inputs.emplace_back(std::move(Inputs[i]), IK, IsSystem); in ParseFrontendArgs()
3009 Opts.DashX = DashX; in ParseFrontendArgs()
3021 static void GenerateHeaderSearchArgs(const HeaderSearchOptions &Opts, in GenerateHeaderSearchArgs() argument
3023 const HeaderSearchOptions *HeaderSearchOpts = &Opts; in GenerateHeaderSearchArgs()
3029 if (Opts.UseLibcxx) in GenerateHeaderSearchArgs()
3032 if (!Opts.ModuleCachePath.empty()) in GenerateHeaderSearchArgs()
3033 GenerateArg(Consumer, OPT_fmodules_cache_path, Opts.ModuleCachePath); in GenerateHeaderSearchArgs()
3035 for (const auto &File : Opts.PrebuiltModuleFiles) in GenerateHeaderSearchArgs()
3038 for (const auto &Path : Opts.PrebuiltModulePaths) in GenerateHeaderSearchArgs()
3041 for (const auto &Macro : Opts.ModulesIgnoreMacros) in GenerateHeaderSearchArgs()
3053 auto It = Opts.UserEntries.begin(); in GenerateHeaderSearchArgs()
3054 auto End = Opts.UserEntries.end(); in GenerateHeaderSearchArgs()
3131 for (const auto &P : Opts.SystemHeaderPrefixes) { in GenerateHeaderSearchArgs()
3137 for (const std::string &F : Opts.VFSOverlayFiles) in GenerateHeaderSearchArgs()
3141 static bool ParseHeaderSearchArgs(HeaderSearchOptions &Opts, ArgList &Args, in ParseHeaderSearchArgs() argument
3146 HeaderSearchOptions *HeaderSearchOpts = &Opts; in ParseHeaderSearchArgs()
3154 Opts.UseLibcxx = (strcmp(A->getValue(), "libc++") == 0); in ParseHeaderSearchArgs()
3165 Opts.ModuleCachePath = std::string(P); in ParseHeaderSearchArgs()
3172 Opts.PrebuiltModuleFiles.insert_or_assign( in ParseHeaderSearchArgs()
3177 Opts.AddPrebuiltModulePath(A->getValue()); in ParseHeaderSearchArgs()
3181 Opts.ModulesIgnoreMacros.insert( in ParseHeaderSearchArgs()
3204 llvm::sys::path::append(Buffer, Opts.Sysroot, in ParseHeaderSearchArgs()
3209 Opts.AddPath(Path, Group, IsFramework, in ParseHeaderSearchArgs()
3221 Opts.AddPath(Prefix.str() + A->getValue(), frontend::After, false, true); in ParseHeaderSearchArgs()
3223 Opts.AddPath(Prefix.str() + A->getValue(), frontend::Angled, false, true); in ParseHeaderSearchArgs()
3227 Opts.AddPath(A->getValue(), frontend::After, false, true); in ParseHeaderSearchArgs()
3229 Opts.AddPath(A->getValue(), frontend::Quoted, false, true); in ParseHeaderSearchArgs()
3231 Opts.AddPath(A->getValue(), frontend::System, false, in ParseHeaderSearchArgs()
3234 Opts.AddPath(A->getValue(), frontend::System, true, true); in ParseHeaderSearchArgs()
3236 Opts.AddPath(A->getValue(), frontend::System, /*IsFramework=*/true, in ParseHeaderSearchArgs()
3241 Opts.AddPath(A->getValue(), frontend::CSystem, false, true); in ParseHeaderSearchArgs()
3243 Opts.AddPath(A->getValue(), frontend::CXXSystem, false, true); in ParseHeaderSearchArgs()
3245 Opts.AddPath(A->getValue(), frontend::ObjCSystem, false,true); in ParseHeaderSearchArgs()
3247 Opts.AddPath(A->getValue(), frontend::ObjCXXSystem, false, true); in ParseHeaderSearchArgs()
3255 Opts.AddPath(A->getValue(), Group, false, true); in ParseHeaderSearchArgs()
3261 Opts.AddSystemHeaderPrefix( in ParseHeaderSearchArgs()
3265 Opts.AddVFSOverlayFile(A->getValue()); in ParseHeaderSearchArgs()
3270 static void GenerateAPINotesArgs(const APINotesOptions &Opts, in GenerateAPINotesArgs() argument
3272 if (!Opts.SwiftVersion.empty()) in GenerateAPINotesArgs()
3274 Opts.SwiftVersion.getAsString()); in GenerateAPINotesArgs()
3276 for (const auto &Path : Opts.ModuleSearchPaths) in GenerateAPINotesArgs()
3280 static void ParseAPINotesArgs(APINotesOptions &Opts, ArgList &Args, in ParseAPINotesArgs() argument
3283 if (Opts.SwiftVersion.tryParse(A->getValue())) in ParseAPINotesArgs()
3288 Opts.ModuleSearchPaths.push_back(A->getValue()); in ParseAPINotesArgs()
3372 void CompilerInvocationBase::GenerateLangArgs(const LangOptions &Opts, in GenerateLangArgs() argument
3378 if (Opts.ObjCAutoRefCount) in GenerateLangArgs()
3380 if (Opts.PICLevel != 0) in GenerateLangArgs()
3381 GenerateArg(Consumer, OPT_pic_level, Twine(Opts.PICLevel)); in GenerateLangArgs()
3382 if (Opts.PIE) in GenerateLangArgs()
3384 for (StringRef Sanitizer : serializeSanitizerKinds(Opts.Sanitize)) in GenerateLangArgs()
3391 switch (Opts.LangStd) { in GenerateLangArgs()
3406 auto LangStandard = LangStandard::getLangStandardForKind(Opts.LangStd); in GenerateLangArgs()
3409 if (Opts.IncludeDefaultHeader) in GenerateLangArgs()
3411 if (Opts.DeclareOpenCLBuiltins) in GenerateLangArgs()
3414 const LangOptions *LangOpts = &Opts; in GenerateLangArgs()
3423 if (Opts.ObjC) { in GenerateLangArgs()
3424 GenerateArg(Consumer, OPT_fobjc_runtime_EQ, Opts.ObjCRuntime.getAsString()); in GenerateLangArgs()
3426 if (Opts.GC == LangOptions::GCOnly) in GenerateLangArgs()
3428 else if (Opts.GC == LangOptions::HybridGC) in GenerateLangArgs()
3430 else if (Opts.ObjCAutoRefCount == 1) in GenerateLangArgs()
3433 if (Opts.ObjCWeakRuntime) in GenerateLangArgs()
3436 if (Opts.ObjCWeak) in GenerateLangArgs()
3439 if (Opts.ObjCSubscriptingLegacyRuntime) in GenerateLangArgs()
3443 if (Opts.GNUCVersion != 0) { in GenerateLangArgs()
3444 unsigned Major = Opts.GNUCVersion / 100 / 100; in GenerateLangArgs()
3445 unsigned Minor = (Opts.GNUCVersion / 100) % 100; in GenerateLangArgs()
3446 unsigned Patch = Opts.GNUCVersion % 100; in GenerateLangArgs()
3451 if (Opts.IgnoreXCOFFVisibility) in GenerateLangArgs()
3454 if (Opts.SignedOverflowBehavior == LangOptions::SOB_Trapping) { in GenerateLangArgs()
3456 GenerateArg(Consumer, OPT_ftrapv_handler, Opts.OverflowHandler); in GenerateLangArgs()
3457 } else if (Opts.SignedOverflowBehavior == LangOptions::SOB_Defined) { in GenerateLangArgs()
3461 if (Opts.MSCompatibilityVersion != 0) { in GenerateLangArgs()
3462 unsigned Major = Opts.MSCompatibilityVersion / 10000000; in GenerateLangArgs()
3463 unsigned Minor = (Opts.MSCompatibilityVersion / 100000) % 100; in GenerateLangArgs()
3464 unsigned Subminor = Opts.MSCompatibilityVersion % 100000; in GenerateLangArgs()
3469 if ((!Opts.GNUMode && !Opts.MSVCCompat && !Opts.CPlusPlus17 && !Opts.C23) || in GenerateLangArgs()
3471 if (!Opts.Trigraphs) in GenerateLangArgs()
3474 if (Opts.Trigraphs) in GenerateLangArgs()
3478 if (Opts.Blocks && !(Opts.OpenCL && Opts.OpenCLVersion == 200)) in GenerateLangArgs()
3481 if (Opts.ConvergentFunctions && in GenerateLangArgs()
3482 !(Opts.OpenCL || (Opts.CUDA && Opts.CUDAIsDevice) || Opts.SYCLIsDevice)) in GenerateLangArgs()
3485 if (Opts.NoBuiltin && !Opts.Freestanding) in GenerateLangArgs()
3488 if (!Opts.NoBuiltin) in GenerateLangArgs()
3489 for (const auto &Func : Opts.NoBuiltinFuncs) in GenerateLangArgs()
3492 if (Opts.LongDoubleSize == 128) in GenerateLangArgs()
3494 else if (Opts.LongDoubleSize == 64) in GenerateLangArgs()
3496 else if (Opts.LongDoubleSize == 80) in GenerateLangArgs()
3503 if (Opts.OpenMP && !Opts.OpenMPSimd) { in GenerateLangArgs()
3506 if (Opts.OpenMP != 51) in GenerateLangArgs()
3507 GenerateArg(Consumer, OPT_fopenmp_version_EQ, Twine(Opts.OpenMP)); in GenerateLangArgs()
3509 if (!Opts.OpenMPUseTLS) in GenerateLangArgs()
3512 if (Opts.OpenMPIsTargetDevice) in GenerateLangArgs()
3515 if (Opts.OpenMPIRBuilder) in GenerateLangArgs()
3519 if (Opts.OpenMPSimd) { in GenerateLangArgs()
3522 if (Opts.OpenMP != 51) in GenerateLangArgs()
3523 GenerateArg(Consumer, OPT_fopenmp_version_EQ, Twine(Opts.OpenMP)); in GenerateLangArgs()
3526 if (Opts.OpenMPThreadSubscription) in GenerateLangArgs()
3529 if (Opts.OpenMPTeamSubscription) in GenerateLangArgs()
3532 if (Opts.OpenMPTargetDebug != 0) in GenerateLangArgs()
3534 Twine(Opts.OpenMPTargetDebug)); in GenerateLangArgs()
3536 if (Opts.OpenMPCUDANumSMs != 0) in GenerateLangArgs()
3538 Twine(Opts.OpenMPCUDANumSMs)); in GenerateLangArgs()
3540 if (Opts.OpenMPCUDABlocksPerSM != 0) in GenerateLangArgs()
3542 Twine(Opts.OpenMPCUDABlocksPerSM)); in GenerateLangArgs()
3544 if (Opts.OpenMPCUDAReductionBufNum != 1024) in GenerateLangArgs()
3546 Twine(Opts.OpenMPCUDAReductionBufNum)); in GenerateLangArgs()
3548 if (!Opts.OMPTargetTriples.empty()) { in GenerateLangArgs()
3552 Opts.OMPTargetTriples, OS, in GenerateLangArgs()
3557 if (!Opts.OMPHostIRFile.empty()) in GenerateLangArgs()
3558 GenerateArg(Consumer, OPT_fopenmp_host_ir_file_path, Opts.OMPHostIRFile); in GenerateLangArgs()
3560 if (Opts.OpenMPCUDAMode) in GenerateLangArgs()
3563 if (Opts.OpenACC) { in GenerateLangArgs()
3565 if (!Opts.OpenACCMacroOverride.empty()) in GenerateLangArgs()
3567 Opts.OpenACCMacroOverride); in GenerateLangArgs()
3573 if (Opts.DefaultFPContractMode == LangOptions::FPM_Fast) in GenerateLangArgs()
3575 else if (Opts.DefaultFPContractMode == LangOptions::FPM_On) in GenerateLangArgs()
3577 else if (Opts.DefaultFPContractMode == LangOptions::FPM_Off) in GenerateLangArgs()
3579 else if (Opts.DefaultFPContractMode == LangOptions::FPM_FastHonorPragmas) in GenerateLangArgs()
3582 for (StringRef Sanitizer : serializeSanitizerKinds(Opts.Sanitize)) in GenerateLangArgs()
3586 for (const std::string &F : Opts.NoSanitizeFiles) in GenerateLangArgs()
3589 switch (Opts.getClangABICompat()) { in GenerateLangArgs()
3624 if (Opts.getSignReturnAddressScope() == in GenerateLangArgs()
3627 else if (Opts.getSignReturnAddressScope() == in GenerateLangArgs()
3631 if (Opts.getSignReturnAddressKey() == in GenerateLangArgs()
3635 if (Opts.CXXABI) in GenerateLangArgs()
3637 TargetCXXABI::getSpelling(*Opts.CXXABI)); in GenerateLangArgs()
3639 if (Opts.RelativeCXXABIVTables) in GenerateLangArgs()
3644 if (Opts.UseTargetPathSeparator) in GenerateLangArgs()
3649 for (const auto &MP : Opts.MacroPrefixMap) in GenerateLangArgs()
3652 if (!Opts.RandstructSeed.empty()) in GenerateLangArgs()
3653 GenerateArg(Consumer, OPT_frandomize_layout_seed_EQ, Opts.RandstructSeed); in GenerateLangArgs()
3656 bool CompilerInvocation::ParseLangArgs(LangOptions &Opts, ArgList &Args, in ParseLangArgs() argument
3668 Opts.ObjCAutoRefCount = 1; in ParseLangArgs()
3671 Opts.PICLevel = getLastArgIntValue(Args, OPT_pic_level, 0, Diags); in ParseLangArgs()
3672 Opts.PIE = Args.hasArg(OPT_pic_is_pie); in ParseLangArgs()
3674 Diags, Opts.Sanitize); in ParseLangArgs()
3748 Opts.IncludeDefaultHeader = Args.hasArg(OPT_finclude_default_header); in ParseLangArgs()
3749 Opts.DeclareOpenCLBuiltins = Args.hasArg(OPT_fdeclare_opencl_builtins); in ParseLangArgs()
3751 LangOptions::setLangDefaults(Opts, IK.getLanguage(), T, Includes, LangStd); in ParseLangArgs()
3755 LangOptions *LangOpts = &Opts; in ParseLangArgs()
3765 Opts.CFProtectionBranch = 1; in ParseLangArgs()
3776 Opts.setSYCLVersion(LangOptions::SYCL_Default); in ParseLangArgs()
3779 if (Opts.ObjC) { in ParseLangArgs()
3782 if (Opts.ObjCRuntime.tryParse(value)) in ParseLangArgs()
3787 Opts.setGC(LangOptions::GCOnly); in ParseLangArgs()
3789 Opts.setGC(LangOptions::HybridGC); in ParseLangArgs()
3791 Opts.ObjCAutoRefCount = 1; in ParseLangArgs()
3792 if (!Opts.ObjCRuntime.allowsARC()) in ParseLangArgs()
3801 Opts.ObjCWeakRuntime = 1; in ParseLangArgs()
3803 Opts.ObjCWeakRuntime = Opts.ObjCRuntime.allowsWeak(); in ParseLangArgs()
3809 assert(!Opts.ObjCWeak); in ParseLangArgs()
3810 } else if (Opts.getGC() != LangOptions::NonGC) { in ParseLangArgs()
3812 } else if (!Opts.ObjCWeakRuntime) { in ParseLangArgs()
3815 Opts.ObjCWeak = 1; in ParseLangArgs()
3817 } else if (Opts.ObjCAutoRefCount) { in ParseLangArgs()
3818 Opts.ObjCWeak = Opts.ObjCWeakRuntime; in ParseLangArgs()
3822 Opts.ObjCSubscriptingLegacyRuntime = in ParseLangArgs()
3823 (Opts.ObjCRuntime.getKind() == ObjCRuntime::FragileMacOSX); in ParseLangArgs()
3838 Opts.GNUCVersion = Major * 100 * 100 + Minor * 100 + Patch; in ParseLangArgs()
3842 Opts.IgnoreXCOFFVisibility = 1; in ParseLangArgs()
3845 Opts.setSignedOverflowBehavior(LangOptions::SOB_Trapping); in ParseLangArgs()
3847 Opts.OverflowHandler = in ParseLangArgs()
3851 Opts.setSignedOverflowBehavior(LangOptions::SOB_Defined); in ParseLangArgs()
3853 Opts.MSCompatibilityVersion = 0; in ParseLangArgs()
3859 Opts.MSCompatibilityVersion = VT.getMajor() * 10000000 + in ParseLangArgs()
3868 Opts.Trigraphs = in ParseLangArgs()
3869 (!Opts.GNUMode && !Opts.MSVCCompat && !Opts.CPlusPlus17 && !Opts.C23) || in ParseLangArgs()
3871 Opts.Trigraphs = in ParseLangArgs()
3872 Args.hasFlag(OPT_ftrigraphs, OPT_fno_trigraphs, Opts.Trigraphs); in ParseLangArgs()
3874 Opts.Blocks = Args.hasArg(OPT_fblocks) || (Opts.OpenCL in ParseLangArgs()
3875 && Opts.OpenCLVersion == 200); in ParseLangArgs()
3877 Opts.ConvergentFunctions = Args.hasArg(OPT_fconvergent_functions) || in ParseLangArgs()
3878 Opts.OpenCL || (Opts.CUDA && Opts.CUDAIsDevice) || in ParseLangArgs()
3879 Opts.SYCLIsDevice; in ParseLangArgs()
3881 Opts.NoBuiltin = Args.hasArg(OPT_fno_builtin) || Opts.Freestanding; in ParseLangArgs()
3882 if (!Opts.NoBuiltin) in ParseLangArgs()
3883 getAllNoBuiltinFuncValues(Args, Opts.NoBuiltinFuncs); in ParseLangArgs()
3886 Opts.LongDoubleSize = 64; in ParseLangArgs()
3888 Opts.LongDoubleSize = 80; in ParseLangArgs()
3890 Opts.LongDoubleSize = 128; in ParseLangArgs()
3892 Opts.LongDoubleSize = 0; in ParseLangArgs()
3894 if (Opts.FastRelaxedMath || Opts.CLUnsafeMath) in ParseLangArgs()
3895 Opts.setDefaultFPContractMode(LangOptions::FPM_Fast); in ParseLangArgs()
3897 llvm::sort(Opts.ModuleFeatures); in ParseLangArgs()
3901 if (Opts.getDefaultCallingConv() != LangOptions::DCC_None) in ParseLangArgs()
3907 Opts.setDefaultCallingConv(LangOptions::DCC_StdCall); in ParseLangArgs()
3910 Opts.setDefaultCallingConv(LangOptions::DCC_RtdCall); in ParseLangArgs()
3920 Opts.OpenMP = Args.hasArg(OPT_fopenmp) ? 51 : 0; in ParseLangArgs()
3925 Opts.OpenMPSimd = !Opts.OpenMP && IsSimdSpecified; in ParseLangArgs()
3926 Opts.OpenMPUseTLS = in ParseLangArgs()
3927 Opts.OpenMP && !Args.hasArg(options::OPT_fnoopenmp_use_tls); in ParseLangArgs()
3928 Opts.OpenMPIsTargetDevice = in ParseLangArgs()
3929 Opts.OpenMP && Args.hasArg(options::OPT_fopenmp_is_target_device); in ParseLangArgs()
3930 Opts.OpenMPIRBuilder = in ParseLangArgs()
3931 Opts.OpenMP && Args.hasArg(options::OPT_fopenmp_enable_irbuilder); in ParseLangArgs()
3933 Opts.OpenMPIsTargetDevice || Args.hasArg(options::OPT_fopenmp_targets_EQ); in ParseLangArgs()
3935 Opts.ConvergentFunctions = in ParseLangArgs()
3936 Opts.ConvergentFunctions || Opts.OpenMPIsTargetDevice; in ParseLangArgs()
3938 if (Opts.OpenMP || Opts.OpenMPSimd) { in ParseLangArgs()
3941 (IsSimdSpecified || IsTargetSpecified) ? 51 : Opts.OpenMP, Diags)) in ParseLangArgs()
3942 Opts.OpenMP = Version; in ParseLangArgs()
3945 if (!Opts.OpenMPIsTargetDevice) { in ParseLangArgs()
3960 if ((Opts.OpenMPIsTargetDevice && (T.isNVPTX() || T.isAMDGCN())) || in ParseLangArgs()
3961 Opts.OpenCLCPlusPlus) { in ParseLangArgs()
3963 Opts.Exceptions = 0; in ParseLangArgs()
3964 Opts.CXXExceptions = 0; in ParseLangArgs()
3966 if (Opts.OpenMPIsTargetDevice && T.isNVPTX()) { in ParseLangArgs()
3967 Opts.OpenMPCUDANumSMs = in ParseLangArgs()
3969 Opts.OpenMPCUDANumSMs, Diags); in ParseLangArgs()
3970 Opts.OpenMPCUDABlocksPerSM = in ParseLangArgs()
3972 Opts.OpenMPCUDABlocksPerSM, Diags); in ParseLangArgs()
3973 Opts.OpenMPCUDAReductionBufNum = getLastArgIntValue( in ParseLangArgs()
3975 Opts.OpenMPCUDAReductionBufNum, Diags); in ParseLangArgs()
3980 if (Opts.OpenMPIsTargetDevice && (Args.hasArg(OPT_fopenmp_target_debug) || in ParseLangArgs()
3982 Opts.OpenMPTargetDebug = getLastArgIntValue( in ParseLangArgs()
3983 Args, OPT_fopenmp_target_debug_EQ, Opts.OpenMPTargetDebug, Diags); in ParseLangArgs()
3984 if (!Opts.OpenMPTargetDebug && Args.hasArg(OPT_fopenmp_target_debug)) in ParseLangArgs()
3985 Opts.OpenMPTargetDebug = 1; in ParseLangArgs()
3988 if (Opts.OpenMPIsTargetDevice) { in ParseLangArgs()
3990 Opts.OpenMPTeamSubscription = true; in ParseLangArgs()
3992 Opts.OpenMPThreadSubscription = true; in ParseLangArgs()
4022 Opts.OMPTargetTriples.push_back(TT); in ParseLangArgs()
4029 Opts.OMPHostIRFile = A->getValue(); in ParseLangArgs()
4030 if (!llvm::sys::fs::exists(Opts.OMPHostIRFile)) in ParseLangArgs()
4032 << Opts.OMPHostIRFile; in ParseLangArgs()
4036 Opts.OpenMPCUDAMode = Opts.OpenMPIsTargetDevice && in ParseLangArgs()
4042 Opts.OpenACC = true; in ParseLangArgs()
4045 Opts.OpenACCMacroOverride = A->getValue(); in ParseLangArgs()
4051 Opts.Optimize = Opt != 0; in ParseLangArgs()
4052 Opts.OptimizeSize = OptSize != 0; in ParseLangArgs()
4057 Opts.NoInlineDefine = !Opts.Optimize; in ParseLangArgs()
4062 Opts.NoInlineDefine = true; in ParseLangArgs()
4067 Opts.setDefaultFPContractMode(LangOptions::FPM_Fast); in ParseLangArgs()
4069 Opts.setDefaultFPContractMode(LangOptions::FPM_On); in ParseLangArgs()
4071 Opts.setDefaultFPContractMode(LangOptions::FPM_Off); in ParseLangArgs()
4073 Opts.setDefaultFPContractMode(LangOptions::FPM_FastHonorPragmas); in ParseLangArgs()
4080 Diags, Opts.Sanitize); in ParseLangArgs()
4081 Opts.NoSanitizeFiles = Args.getAllArgValues(OPT_fsanitize_ignorelist_EQ); in ParseLangArgs()
4084 Opts.NoSanitizeFiles.insert(Opts.NoSanitizeFiles.end(), in ParseLangArgs()
4089 Opts.setClangABICompat(LangOptions::ClangABI::Latest); in ParseLangArgs()
4106 Opts.setClangABICompat(LangOptions::ClangABI::Ver3_8); in ParseLangArgs()
4108 Opts.setClangABICompat(LangOptions::ClangABI::Ver4); in ParseLangArgs()
4110 Opts.setClangABICompat(LangOptions::ClangABI::Ver6); in ParseLangArgs()
4112 Opts.setClangABICompat(LangOptions::ClangABI::Ver7); in ParseLangArgs()
4114 Opts.setClangABICompat(LangOptions::ClangABI::Ver9); in ParseLangArgs()
4116 Opts.setClangABICompat(LangOptions::ClangABI::Ver11); in ParseLangArgs()
4118 Opts.setClangABICompat(LangOptions::ClangABI::Ver12); in ParseLangArgs()
4120 Opts.setClangABICompat(LangOptions::ClangABI::Ver14); in ParseLangArgs()
4122 Opts.setClangABICompat(LangOptions::ClangABI::Ver15); in ParseLangArgs()
4124 Opts.setClangABICompat(LangOptions::ClangABI::Ver17); in ParseLangArgs()
4135 Opts.setSignReturnAddressScope( in ParseLangArgs()
4138 Opts.setSignReturnAddressScope( in ParseLangArgs()
4141 Opts.setSignReturnAddressScope( in ParseLangArgs()
4151 Opts.setSignReturnAddressKey( in ParseLangArgs()
4154 Opts.setSignReturnAddressKey( in ParseLangArgs()
4173 Opts.CXXABI = Kind; in ParseLangArgs()
4177 Opts.RelativeCXXABIVTables = in ParseLangArgs()
4184 Opts.OmitVTableRTTI = in ParseLangArgs()
4187 if (Opts.OmitVTableRTTI && HasRTTI) in ParseLangArgs()
4192 Opts.MacroPrefixMap.insert( in ParseLangArgs()
4196 Opts.UseTargetPathSeparator = in ParseLangArgs()
4216 std::getline(SeedFile, Opts.RandstructSeed); in ParseLangArgs()
4220 Opts.RandstructSeed = A->getValue(0); in ParseLangArgs()
4223 if (Opts.HLSL) { in ParseLangArgs()
4308 static void GeneratePreprocessorArgs(const PreprocessorOptions &Opts, in GeneratePreprocessorArgs() argument
4313 const PreprocessorOptions *PreprocessorOpts = &Opts; in GeneratePreprocessorArgs()
4320 if (Opts.PCHWithHdrStop && !Opts.PCHWithHdrStopCreate) in GeneratePreprocessorArgs()
4323 for (const auto &D : Opts.DeserializedPCHDeclsToErrorOn) in GeneratePreprocessorArgs()
4326 if (Opts.PrecompiledPreambleBytes != std::make_pair(0u, false)) in GeneratePreprocessorArgs()
4328 Twine(Opts.PrecompiledPreambleBytes.first) + "," + in GeneratePreprocessorArgs()
4329 (Opts.PrecompiledPreambleBytes.second ? "1" : "0")); in GeneratePreprocessorArgs()
4331 for (const auto &M : Opts.Macros) { in GeneratePreprocessorArgs()
4347 for (const auto &I : Opts.Includes) { in GeneratePreprocessorArgs()
4362 for (const auto &CI : Opts.ChainedIncludes) in GeneratePreprocessorArgs()
4365 for (const auto &RF : Opts.RemappedFiles) in GeneratePreprocessorArgs()
4368 if (Opts.SourceDateEpoch) in GeneratePreprocessorArgs()
4369 GenerateArg(Consumer, OPT_source_date_epoch, Twine(*Opts.SourceDateEpoch)); in GeneratePreprocessorArgs()
4371 if (Opts.DefineTargetOSMacros) in GeneratePreprocessorArgs()
4378 static bool ParsePreprocessorArgs(PreprocessorOptions &Opts, ArgList &Args, in ParsePreprocessorArgs() argument
4384 PreprocessorOptions *PreprocessorOpts = &Opts; in ParsePreprocessorArgs()
4391 Opts.PCHWithHdrStop = Args.hasArg(OPT_pch_through_hdrstop_create) || in ParsePreprocessorArgs()
4395 Opts.DeserializedPCHDeclsToErrorOn.insert(A->getValue()); in ParsePreprocessorArgs()
4408 Opts.PrecompiledPreambleBytes.first = Bytes; in ParsePreprocessorArgs()
4409 Opts.PrecompiledPreambleBytes.second = (EndOfLine != 0); in ParsePreprocessorArgs()
4417 Opts.addMacroDef("__CET__=1"); in ParsePreprocessorArgs()
4419 Opts.addMacroDef("__CET__=2"); in ParsePreprocessorArgs()
4421 Opts.addMacroDef("__CET__=3"); in ParsePreprocessorArgs()
4427 Opts.addMacroDef(A->getValue()); in ParsePreprocessorArgs()
4429 Opts.addMacroUndef(A->getValue()); in ParsePreprocessorArgs()
4434 Opts.Includes.emplace_back(A->getValue()); in ParsePreprocessorArgs()
4437 Opts.ChainedIncludes.emplace_back(A->getValue()); in ParsePreprocessorArgs()
4447 Opts.addRemappedFile(Split.first, Split.second); in ParsePreprocessorArgs()
4462 Opts.SourceDateEpoch = V; in ParsePreprocessorArgs()
4470 Opts.LexEditorPlaceholders = false; in ParsePreprocessorArgs()
4472 Opts.DefineTargetOSMacros = in ParsePreprocessorArgs()
4474 OPT_fno_define_target_os_macros, Opts.DefineTargetOSMacros); in ParsePreprocessorArgs()
4480 GeneratePreprocessorOutputArgs(const PreprocessorOutputOptions &Opts, in GeneratePreprocessorOutputArgs() argument
4483 const PreprocessorOutputOptions &PreprocessorOutputOpts = Opts; in GeneratePreprocessorOutputArgs()
4490 bool Generate_dM = isStrictlyPreprocessorAction(Action) && !Opts.ShowCPP; in GeneratePreprocessorOutputArgs()
4493 if (!Generate_dM && Opts.ShowMacros) in GeneratePreprocessorOutputArgs()
4495 if (Opts.DirectivesOnly) in GeneratePreprocessorOutputArgs()
4499 static bool ParsePreprocessorOutputArgs(PreprocessorOutputOptions &Opts, in ParsePreprocessorOutputArgs() argument
4504 PreprocessorOutputOptions &PreprocessorOutputOpts = Opts; in ParsePreprocessorOutputArgs()
4511 Opts.ShowCPP = isStrictlyPreprocessorAction(Action) && !Args.hasArg(OPT_dM); in ParsePreprocessorOutputArgs()
4512 Opts.ShowMacros = Args.hasArg(OPT_dM) || Args.hasArg(OPT_dD); in ParsePreprocessorOutputArgs()
4513 Opts.DirectivesOnly = Args.hasArg(OPT_fdirectives_only); in ParsePreprocessorOutputArgs()
4518 static void GenerateTargetArgs(const TargetOptions &Opts, in GenerateTargetArgs() argument
4520 const TargetOptions *TargetOpts = &Opts; in GenerateTargetArgs()
4526 if (!Opts.SDKVersion.empty()) in GenerateTargetArgs()
4528 Opts.SDKVersion.getAsString()); in GenerateTargetArgs()
4529 if (!Opts.DarwinTargetVariantSDKVersion.empty()) in GenerateTargetArgs()
4531 Opts.DarwinTargetVariantSDKVersion.getAsString()); in GenerateTargetArgs()
4534 static bool ParseTargetArgs(TargetOptions &Opts, ArgList &Args, in ParseTargetArgs() argument
4538 TargetOptions *TargetOpts = &Opts; in ParseTargetArgs()
4551 Opts.SDKVersion = Version; in ParseTargetArgs()
4560 Opts.DarwinTargetVariantSDKVersion = Version; in ParseTargetArgs()
4572 const OptTable &Opts = getDriverOptTable(); in CreateFromArgsImpl() local
4575 InputArgList Args = Opts.ParseArgs(CommandLineArgs, MissingArgIndex, in CreateFromArgsImpl()
4588 if (Opts.findNearest(ArgString, Nearest, VisibilityMask) > 1) in CreateFromArgsImpl()