Lines Matching refs:Opts

803 static void GenerateAnalyzerArgs(AnalyzerOptions &Opts,  in GenerateAnalyzerArgs()  argument
806 const AnalyzerOptions *AnalyzerOpts = &Opts; in GenerateAnalyzerArgs()
819 if (Opts.AnalysisConstraintsOpt != RangeConstraintsModel) { in GenerateAnalyzerArgs()
820 switch (Opts.AnalysisConstraintsOpt) { in GenerateAnalyzerArgs()
831 if (Opts.AnalysisDiagOpt != PD_HTML) { in GenerateAnalyzerArgs()
832 switch (Opts.AnalysisDiagOpt) { in GenerateAnalyzerArgs()
843 if (Opts.AnalysisPurgeOpt != PurgeStmt) { in GenerateAnalyzerArgs()
844 switch (Opts.AnalysisPurgeOpt) { in GenerateAnalyzerArgs()
855 if (Opts.InliningMode != NoRedundancy) { in GenerateAnalyzerArgs()
856 switch (Opts.InliningMode) { in GenerateAnalyzerArgs()
867 for (const auto &CP : Opts.CheckersAndPackages) { in GenerateAnalyzerArgs()
876 for (const auto &C : Opts.Config) { in GenerateAnalyzerArgs()
889 static bool ParseAnalyzerArgs(AnalyzerOptions &Opts, ArgList &Args, in ParseAnalyzerArgs() argument
893 AnalyzerOptions *AnalyzerOpts = &Opts; in ParseAnalyzerArgs()
930 Opts.AnalysisConstraintsOpt = Value; in ParseAnalyzerArgs()
945 Opts.AnalysisDiagOpt = Value; in ParseAnalyzerArgs()
960 Opts.AnalysisPurgeOpt = Value; in ParseAnalyzerArgs()
975 Opts.InliningMode = Value; in ParseAnalyzerArgs()
979 Opts.CheckersAndPackages.clear(); in ParseAnalyzerArgs()
990 Opts.CheckersAndPackages.emplace_back(std::string(CheckerOrPackage), in ParseAnalyzerArgs()
1019 if (!key.contains(":") && Opts.isUnknownAnalyzerConfig(key)) { in ParseAnalyzerArgs()
1020 if (Opts.ShouldEmitErrorsOnInvalidConfigValue) in ParseAnalyzerArgs()
1026 Opts.Config[key] = std::string(val); in ParseAnalyzerArgs()
1030 if (Opts.ShouldEmitErrorsOnInvalidConfigValue) in ParseAnalyzerArgs()
1031 parseAnalyzerConfigs(Opts, &Diags); in ParseAnalyzerArgs()
1033 parseAnalyzerConfigs(Opts, nullptr); in ParseAnalyzerArgs()
1035 llvm::raw_string_ostream os(Opts.FullCompilerInvocation); in ParseAnalyzerArgs()
1299 static void setPGOUseInstrumentor(CodeGenOptions &Opts, in setPGOUseInstrumentor() argument
1305 Opts.setProfileUse(CodeGenOptions::ProfileClangInstr); in setPGOUseInstrumentor()
1312 Opts.setProfileUse(CodeGenOptions::ProfileCSIRInstr); in setPGOUseInstrumentor()
1314 Opts.setProfileUse(CodeGenOptions::ProfileIRInstr); in setPGOUseInstrumentor()
1316 Opts.setProfileUse(CodeGenOptions::ProfileClangInstr); in setPGOUseInstrumentor()
1320 const CodeGenOptions &Opts, SmallVectorImpl<const char *> &Args, in GenerateCodeGenArgs() argument
1323 const CodeGenOptions &CodeGenOpts = Opts; in GenerateCodeGenArgs()
1325 if (Opts.OptimizationLevel == 0) in GenerateCodeGenArgs()
1328 GenerateArg(Args, OPT_O, Twine(Opts.OptimizationLevel), SA); in GenerateCodeGenArgs()
1341 if (Opts.OptimizationLevel > 0) { in GenerateCodeGenArgs()
1342 if (Opts.Inlining == CodeGenOptions::NormalInlining) in GenerateCodeGenArgs()
1344 else if (Opts.Inlining == CodeGenOptions::OnlyHintInlining) in GenerateCodeGenArgs()
1346 else if (Opts.Inlining == CodeGenOptions::OnlyAlwaysInlining) in GenerateCodeGenArgs()
1350 if (Opts.DirectAccessExternalData && LangOpts->PICLevel != 0) in GenerateCodeGenArgs()
1352 else if (!Opts.DirectAccessExternalData && LangOpts->PICLevel == 0) in GenerateCodeGenArgs()
1356 switch (Opts.DebugInfo) { in GenerateCodeGenArgs()
1385 for (const auto &Prefix : Opts.DebugPrefixMap) in GenerateCodeGenArgs()
1389 for (const auto &Prefix : Opts.CoveragePrefixMap) in GenerateCodeGenArgs()
1393 if (Opts.NewStructPathTBAA) in GenerateCodeGenArgs()
1396 if (Opts.OptimizeSize == 1) in GenerateCodeGenArgs()
1398 else if (Opts.OptimizeSize == 2) in GenerateCodeGenArgs()
1406 if (Opts.UnrollLoops && Opts.OptimizationLevel <= 1) in GenerateCodeGenArgs()
1408 else if (!Opts.UnrollLoops && Opts.OptimizationLevel > 1) in GenerateCodeGenArgs()
1411 if (!Opts.BinutilsVersion.empty()) in GenerateCodeGenArgs()
1412 GenerateArg(Args, OPT_fbinutils_version_EQ, Opts.BinutilsVersion, SA); in GenerateCodeGenArgs()
1414 if (Opts.DebugNameTable == in GenerateCodeGenArgs()
1417 else if (Opts.DebugNameTable == in GenerateCodeGenArgs()
1422 auto TNK = Opts.getDebugSimpleTemplateNames(); in GenerateCodeGenArgs()
1432 if (Opts.TimePasses) { in GenerateCodeGenArgs()
1433 if (Opts.TimePassesPerRun) in GenerateCodeGenArgs()
1439 if (Opts.PrepareForLTO && !Opts.PrepareForThinLTO) in GenerateCodeGenArgs()
1442 if (Opts.PrepareForThinLTO) in GenerateCodeGenArgs()
1445 if (!Opts.ThinLTOIndexFile.empty()) in GenerateCodeGenArgs()
1446 GenerateArg(Args, OPT_fthinlto_index_EQ, Opts.ThinLTOIndexFile, SA); in GenerateCodeGenArgs()
1448 if (Opts.SaveTempsFilePrefix == OutputFile) in GenerateCodeGenArgs()
1452 if (!Opts.MemoryProfileOutput.empty()) { in GenerateCodeGenArgs()
1453 if (Opts.MemoryProfileOutput == MemProfileBasename) { in GenerateCodeGenArgs()
1457 Opts.MemoryProfileOutput.size() - MemProfileBasename.size(); in GenerateCodeGenArgs()
1459 Opts.MemoryProfileOutput.substr(0, ArgLength), SA); in GenerateCodeGenArgs()
1463 if (memcmp(Opts.CoverageVersion, "408*", 4) != 0) in GenerateCodeGenArgs()
1465 StringRef(Opts.CoverageVersion, 4), SA); in GenerateCodeGenArgs()
1471 if (Opts.XRayInstrumentationBundle.Mask != XRayInstrKind::All) { in GenerateCodeGenArgs()
1473 serializeXRayInstrumentationBundle(Opts.XRayInstrumentationBundle); in GenerateCodeGenArgs()
1478 if (Opts.CFProtectionReturn && Opts.CFProtectionBranch) in GenerateCodeGenArgs()
1480 else if (Opts.CFProtectionReturn) in GenerateCodeGenArgs()
1482 else if (Opts.CFProtectionBranch) in GenerateCodeGenArgs()
1485 if (Opts.IBTSeal) in GenerateCodeGenArgs()
1488 if (Opts.FunctionReturnThunks) in GenerateCodeGenArgs()
1491 for (const auto &F : Opts.LinkBitcodeFiles) { in GenerateCodeGenArgs()
1502 if (Opts.ExplicitEmulatedTLS) { in GenerateCodeGenArgs()
1504 Args, Opts.EmulatedTLS ? OPT_femulated_tls : OPT_fno_emulated_tls, SA); in GenerateCodeGenArgs()
1507 if (Opts.FPDenormalMode != llvm::DenormalMode::getIEEE()) in GenerateCodeGenArgs()
1508 GenerateArg(Args, OPT_fdenormal_fp_math_EQ, Opts.FPDenormalMode.str(), SA); in GenerateCodeGenArgs()
1510 if ((Opts.FPDenormalMode != Opts.FP32DenormalMode) || in GenerateCodeGenArgs()
1511 (Opts.FP32DenormalMode != llvm::DenormalMode::getIEEE())) in GenerateCodeGenArgs()
1512 GenerateArg(Args, OPT_fdenormal_fp_math_f32_EQ, Opts.FP32DenormalMode.str(), in GenerateCodeGenArgs()
1515 if (Opts.StructReturnConvention == CodeGenOptions::SRCK_OnStack) { in GenerateCodeGenArgs()
1519 } else if (Opts.StructReturnConvention == CodeGenOptions::SRCK_InRegs) { in GenerateCodeGenArgs()
1525 if (Opts.EnableAIXExtendedAltivecABI) in GenerateCodeGenArgs()
1528 if (!Opts.OptRecordPasses.empty()) in GenerateCodeGenArgs()
1529 GenerateArg(Args, OPT_opt_record_passes, Opts.OptRecordPasses, SA); in GenerateCodeGenArgs()
1531 if (!Opts.OptRecordFormat.empty()) in GenerateCodeGenArgs()
1532 GenerateArg(Args, OPT_opt_record_format, Opts.OptRecordFormat, SA); in GenerateCodeGenArgs()
1535 Opts.OptimizationRemark); in GenerateCodeGenArgs()
1538 Opts.OptimizationRemarkMissed); in GenerateCodeGenArgs()
1541 Opts.OptimizationRemarkAnalysis); in GenerateCodeGenArgs()
1544 Opts.DiagnosticsHotnessThreshold in GenerateCodeGenArgs()
1545 ? Twine(*Opts.DiagnosticsHotnessThreshold) in GenerateCodeGenArgs()
1550 Twine(*Opts.DiagnosticsMisExpectTolerance), SA); in GenerateCodeGenArgs()
1552 for (StringRef Sanitizer : serializeSanitizerKinds(Opts.SanitizeRecover)) in GenerateCodeGenArgs()
1555 for (StringRef Sanitizer : serializeSanitizerKinds(Opts.SanitizeTrap)) in GenerateCodeGenArgs()
1558 if (!Opts.EmitVersionIdentMetadata) in GenerateCodeGenArgs()
1561 switch (Opts.FiniteLoops) { in GenerateCodeGenArgs()
1573 bool CompilerInvocation::ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, in ParseCodeGenArgs() argument
1591 Opts.OptimizationLevel = OptimizationLevel; in ParseCodeGenArgs()
1595 CodeGenOptions &CodeGenOpts = Opts; in ParseCodeGenArgs()
1613 if (Opts.OptimizationLevel == 0) { in ParseCodeGenArgs()
1614 Opts.setInlining(CodeGenOptions::OnlyAlwaysInlining); in ParseCodeGenArgs()
1622 Opts.setInlining(CodeGenOptions::NormalInlining); in ParseCodeGenArgs()
1624 Opts.setInlining(CodeGenOptions::OnlyHintInlining); in ParseCodeGenArgs()
1626 Opts.setInlining(CodeGenOptions::OnlyAlwaysInlining); in ParseCodeGenArgs()
1628 Opts.setInlining(CodeGenOptions::NormalInlining); in ParseCodeGenArgs()
1633 Opts.DirectAccessExternalData = in ParseCodeGenArgs()
1652 Opts.setDebugInfo(static_cast<codegenoptions::DebugInfoKind>(Val)); in ParseCodeGenArgs()
1660 Opts.getDebugInfo() == codegenoptions::LimitedDebugInfo) in ParseCodeGenArgs()
1661 Opts.setDebugInfo(codegenoptions::DebugInfoConstructor); in ParseCodeGenArgs()
1663 Opts.getDebugInfo() == codegenoptions::DebugInfoConstructor) in ParseCodeGenArgs()
1664 Opts.setDebugInfo(codegenoptions::LimitedDebugInfo); in ParseCodeGenArgs()
1669 Opts.DebugPrefixMap.insert( in ParseCodeGenArgs()
1675 Opts.CoveragePrefixMap.insert( in ParseCodeGenArgs()
1684 if (Opts.OptimizationLevel > 0 && Opts.hasReducedDebugInfo() && in ParseCodeGenArgs()
1686 Opts.EmitCallSiteInfo = true; in ParseCodeGenArgs()
1688 if (!Opts.EnableDIPreservationVerify && Opts.DIBugsReportFilePath.size()) { in ParseCodeGenArgs()
1690 << Opts.DIBugsReportFilePath; in ParseCodeGenArgs()
1691 Opts.DIBugsReportFilePath = ""; in ParseCodeGenArgs()
1694 Opts.NewStructPathTBAA = !Args.hasArg(OPT_no_struct_path_tbaa) && in ParseCodeGenArgs()
1696 Opts.OptimizeSize = getOptimizationLevelSize(Args); in ParseCodeGenArgs()
1697 Opts.SimplifyLibCalls = !LangOpts->NoBuiltin; in ParseCodeGenArgs()
1698 if (Opts.SimplifyLibCalls) in ParseCodeGenArgs()
1699 Opts.NoBuiltinFuncs = LangOpts->NoBuiltinFuncs; in ParseCodeGenArgs()
1700 Opts.UnrollLoops = in ParseCodeGenArgs()
1702 (Opts.OptimizationLevel > 1)); in ParseCodeGenArgs()
1703 Opts.BinutilsVersion = in ParseCodeGenArgs()
1706 Opts.DebugNameTable = static_cast<unsigned>( in ParseCodeGenArgs()
1717 Opts.setDebugSimpleTemplateNames( in ParseCodeGenArgs()
1723 if (!Opts.ProfileInstrumentUsePath.empty()) in ParseCodeGenArgs()
1724 setPGOUseInstrumentor(Opts, Opts.ProfileInstrumentUsePath); in ParseCodeGenArgs()
1727 Opts.TimePasses = true; in ParseCodeGenArgs()
1733 Opts.TimePassesPerRun = false; in ParseCodeGenArgs()
1735 Opts.TimePassesPerRun = true; in ParseCodeGenArgs()
1742 Opts.PrepareForLTO = false; in ParseCodeGenArgs()
1743 Opts.PrepareForThinLTO = false; in ParseCodeGenArgs()
1745 Opts.PrepareForLTO = true; in ParseCodeGenArgs()
1748 Opts.PrepareForThinLTO = true; in ParseCodeGenArgs()
1756 Opts.ThinLTOIndexFile = in ParseCodeGenArgs()
1760 Opts.SaveTempsFilePrefix = in ParseCodeGenArgs()
1771 Opts.MemoryProfileOutput = std::string(Path); in ParseCodeGenArgs()
1773 Opts.MemoryProfileOutput = MemProfileBasename; in ParseCodeGenArgs()
1775 memcpy(Opts.CoverageVersion, "408*", 4); in ParseCodeGenArgs()
1776 if (Opts.EmitGcovArcs || Opts.EmitGcovNotes) { in ParseCodeGenArgs()
1784 memcpy(Opts.CoverageVersion, CoverageVersion.data(), 4); in ParseCodeGenArgs()
1803 Opts.CmdArgs.insert(Opts.CmdArgs.end(), ArgStr.begin(), ArgStr.end()); in ParseCodeGenArgs()
1805 Opts.CmdArgs.push_back('\0'); in ParseCodeGenArgs()
1812 Opts.XRayInstrumentationBundle.Mask = XRayInstrKind::All; in ParseCodeGenArgs()
1816 Diags, Opts.XRayInstrumentationBundle); in ParseCodeGenArgs()
1821 Opts.CFProtectionReturn = 1; in ParseCodeGenArgs()
1822 Opts.CFProtectionBranch = 1; in ParseCodeGenArgs()
1824 Opts.CFProtectionReturn = 1; in ParseCodeGenArgs()
1826 Opts.CFProtectionBranch = 1; in ParseCodeGenArgs()
1849 Opts.FunctionReturnThunks = static_cast<unsigned>(Val); in ParseCodeGenArgs()
1852 if (Opts.PrepareForLTO && Args.hasArg(OPT_mibt_seal)) in ParseCodeGenArgs()
1853 Opts.IBTSeal = 1; in ParseCodeGenArgs()
1866 Opts.LinkBitcodeFiles.push_back(F); in ParseCodeGenArgs()
1871 Opts.ExplicitEmulatedTLS = true; in ParseCodeGenArgs()
1884 Opts.FPDenormalMode = llvm::parseDenormalFPAttribute(Val); in ParseCodeGenArgs()
1885 Opts.FP32DenormalMode = Opts.FPDenormalMode; in ParseCodeGenArgs()
1886 if (!Opts.FPDenormalMode.isValid()) in ParseCodeGenArgs()
1892 Opts.FP32DenormalMode = llvm::parseDenormalFPAttribute(Val); in ParseCodeGenArgs()
1893 if (!Opts.FP32DenormalMode.isValid()) in ParseCodeGenArgs()
1911 Opts.setStructReturnConvention(CodeGenOptions::SRCK_OnStack); in ParseCodeGenArgs()
1915 Opts.setStructReturnConvention(CodeGenOptions::SRCK_InRegs); in ParseCodeGenArgs()
1926 Opts.EnableAIXExtendedAltivecABI = O.matches(OPT_mabi_EQ_vec_extabi); in ParseCodeGenArgs()
1937 if (!Opts.OptRecordFile.empty()) in ParseCodeGenArgs()
1941 Opts.OptRecordPasses = A->getValue(); in ParseCodeGenArgs()
1946 Opts.OptRecordFormat = A->getValue(); in ParseCodeGenArgs()
1950 Opts.OptimizationRemark = in ParseCodeGenArgs()
1953 Opts.OptimizationRemarkMissed = in ParseCodeGenArgs()
1956 Opts.OptimizationRemarkAnalysis = ParseOptimizationRemark( in ParseCodeGenArgs()
1959 NeedLocTracking |= Opts.OptimizationRemark.hasValidPattern() || in ParseCodeGenArgs()
1960 Opts.OptimizationRemarkMissed.hasValidPattern() || in ParseCodeGenArgs()
1961 Opts.OptimizationRemarkAnalysis.hasValidPattern(); in ParseCodeGenArgs()
1963 bool UsingSampleProfile = !Opts.SampleProfileFile.empty(); in ParseCodeGenArgs()
1965 (Opts.getProfileUse() != CodeGenOptions::ProfileNone); in ParseCodeGenArgs()
1967 if (Opts.DiagnosticsWithHotness && !UsingProfile && in ParseCodeGenArgs()
1983 Opts.DiagnosticsHotnessThreshold = *ResultOrErr; in ParseCodeGenArgs()
1984 if ((!Opts.DiagnosticsHotnessThreshold || in ParseCodeGenArgs()
1985 Opts.DiagnosticsHotnessThreshold.value() > 0) && in ParseCodeGenArgs()
2000 Opts.DiagnosticsMisExpectTolerance = *ResultOrErr; in ParseCodeGenArgs()
2001 if ((!Opts.DiagnosticsMisExpectTolerance || in ParseCodeGenArgs()
2002 Opts.DiagnosticsMisExpectTolerance.value() > 0) && in ParseCodeGenArgs()
2015 if (!Opts.StackUsageOutput.empty()) in ParseCodeGenArgs()
2020 if (NeedLocTracking && Opts.getDebugInfo() == codegenoptions::NoDebugInfo) in ParseCodeGenArgs()
2021 Opts.setDebugInfo(codegenoptions::LocTrackingOnly); in ParseCodeGenArgs()
2027 Opts.SanitizeRecover); in ParseCodeGenArgs()
2030 Opts.SanitizeTrap); in ParseCodeGenArgs()
2032 Opts.EmitVersionIdentMetadata = Args.hasFlag(OPT_Qy, OPT_Qn, true); in ParseCodeGenArgs()
2035 Opts.FiniteLoops = CodeGenOptions::FiniteLoopsKind::Always; in ParseCodeGenArgs()
2037 Opts.FiniteLoops = CodeGenOptions::FiniteLoopsKind::Never; in ParseCodeGenArgs()
2039 Opts.EmitIEEENaNCompliantInsts = Args.hasFlag( in ParseCodeGenArgs()
2041 if (!Opts.EmitIEEENaNCompliantInsts && !LangOptsRef.NoHonorNaNs) in ParseCodeGenArgs()
2048 GenerateDependencyOutputArgs(const DependencyOutputOptions &Opts, in GenerateDependencyOutputArgs() argument
2051 const DependencyOutputOptions &DependencyOutputOpts = Opts; in GenerateDependencyOutputArgs()
2063 if (Opts.ShowIncludesDest != ShowIncludesDestination::None) in GenerateDependencyOutputArgs()
2066 for (const auto &Dep : Opts.ExtraDeps) { in GenerateDependencyOutputArgs()
2086 static bool ParseDependencyOutputArgs(DependencyOutputOptions &Opts, in ParseDependencyOutputArgs() argument
2092 DependencyOutputOptions &DependencyOutputOpts = Opts; in ParseDependencyOutputArgs()
2109 Opts.ShowIncludesDest = ShowIncludesDestination::Stderr; in ParseDependencyOutputArgs()
2111 Opts.ShowIncludesDest = ShowIncludesDestination::Stdout; in ParseDependencyOutputArgs()
2113 Opts.ShowIncludesDest = ShowIncludesDestination::None; in ParseDependencyOutputArgs()
2123 Opts.ExtraDeps.emplace_back(std::string(Val), EDK_SanitizeIgnorelist); in ParseDependencyOutputArgs()
2125 if (Opts.IncludeSystemHeaders) { in ParseDependencyOutputArgs()
2129 Opts.ExtraDeps.emplace_back(std::string(Val), EDK_SanitizeIgnorelist); in ParseDependencyOutputArgs()
2136 Opts.ExtraDeps.emplace_back(Filename, EDK_ProfileList); in ParseDependencyOutputArgs()
2140 Opts.ExtraDeps.emplace_back(A->getValue(), EDK_DepFileEntry); in ParseDependencyOutputArgs()
2146 Opts.ExtraDeps.emplace_back(std::string(Val), EDK_ModuleFile); in ParseDependencyOutputArgs()
2201 static void GenerateFileSystemArgs(const FileSystemOptions &Opts, in GenerateFileSystemArgs() argument
2204 const FileSystemOptions &FileSystemOpts = Opts; in GenerateFileSystemArgs()
2218 static bool ParseFileSystemArgs(FileSystemOptions &Opts, const ArgList &Args, in ParseFileSystemArgs() argument
2222 FileSystemOptions &FileSystemOpts = Opts; in ParseFileSystemArgs()
2238 static void GenerateMigratorArgs(const MigratorOptions &Opts, in GenerateMigratorArgs() argument
2241 const MigratorOptions &MigratorOpts = Opts; in GenerateMigratorArgs()
2254 static bool ParseMigratorArgs(MigratorOptions &Opts, const ArgList &Args, in ParseMigratorArgs() argument
2258 MigratorOptions &MigratorOpts = Opts; in ParseMigratorArgs()
2275 const DiagnosticOptions &Opts, SmallVectorImpl<const char *> &Args, in GenerateDiagnosticArgs() argument
2277 const DiagnosticOptions *DiagnosticOpts = &Opts; in GenerateDiagnosticArgs()
2289 if (!Opts.DiagnosticSerializationFile.empty()) in GenerateDiagnosticArgs()
2291 Opts.DiagnosticSerializationFile, SA); in GenerateDiagnosticArgs()
2293 if (Opts.ShowColors) in GenerateDiagnosticArgs()
2296 if (Opts.VerifyDiagnostics && in GenerateDiagnosticArgs()
2297 llvm::is_contained(Opts.VerifyPrefixes, "expected")) in GenerateDiagnosticArgs()
2300 for (const auto &Prefix : Opts.VerifyPrefixes) in GenerateDiagnosticArgs()
2304 DiagnosticLevelMask VIU = Opts.getVerifyIgnoreUnexpected(); in GenerateDiagnosticArgs()
2320 for (const auto &Warning : Opts.Warnings) { in GenerateDiagnosticArgs()
2327 for (const auto &Remark : Opts.Remarks) { in GenerateDiagnosticArgs()
2353 bool clang::ParseDiagnosticArgs(DiagnosticOptions &Opts, ArgList &Args, in ParseDiagnosticArgs() argument
2367 DiagnosticOptions *DiagnosticOpts = &Opts; in ParseDiagnosticArgs()
2380 llvm::sys::Process::UseANSIEscapeCodes(Opts.UseANSIEscapeCodes); in ParseDiagnosticArgs()
2384 Opts.DiagnosticSerializationFile = A->getValue(); in ParseDiagnosticArgs()
2385 Opts.ShowColors = parseShowColorsArgs(Args, DefaultDiagColor); in ParseDiagnosticArgs()
2387 Opts.VerifyDiagnostics = Args.hasArg(OPT_verify) || Args.hasArg(OPT_verify_EQ); in ParseDiagnosticArgs()
2388 Opts.VerifyPrefixes = Args.getAllArgValues(OPT_verify_EQ); in ParseDiagnosticArgs()
2390 Opts.VerifyPrefixes.push_back("expected"); in ParseDiagnosticArgs()
2393 if (!checkVerifyPrefixes(Opts.VerifyPrefixes, *Diags)) in ParseDiagnosticArgs()
2394 Opts.VerifyDiagnostics = false; in ParseDiagnosticArgs()
2396 llvm::sort(Opts.VerifyPrefixes); in ParseDiagnosticArgs()
2403 Opts.setVerifyIgnoreUnexpected(DiagMask); in ParseDiagnosticArgs()
2404 if (Opts.TabStop == 0 || Opts.TabStop > DiagnosticOptions::MaxTabStop) { in ParseDiagnosticArgs()
2405 Opts.TabStop = DiagnosticOptions::DefaultTabStop; in ParseDiagnosticArgs()
2407 << Opts.TabStop << DiagnosticOptions::DefaultTabStop; in ParseDiagnosticArgs()
2410 addDiagnosticArgs(Args, OPT_W_Group, OPT_W_value_Group, Opts.Warnings); in ParseDiagnosticArgs()
2411 addDiagnosticArgs(Args, OPT_R_Group, OPT_R_value_Group, Opts.Remarks); in ParseDiagnosticArgs()
2517 static void GenerateFrontendArgs(const FrontendOptions &Opts, in GenerateFrontendArgs() argument
2521 const FrontendOptions &FrontendOpts = Opts; in GenerateFrontendArgs()
2534 getProgramActionOpt(Opts.ProgramAction); in GenerateFrontendArgs()
2543 assert(Opts.ProgramAction == frontend::PluginAction && in GenerateFrontendArgs()
2546 GenerateArg(Args, OPT_plugin, Opts.ActionName, SA); in GenerateFrontendArgs()
2551 if (Opts.ProgramAction == frontend::ASTDump) { in GenerateFrontendArgs()
2556 if (Opts.ASTDumpFormat != ADOF_Default) { in GenerateFrontendArgs()
2558 switch (Opts.ASTDumpFormat) { in GenerateFrontendArgs()
2566 if (Opts.ASTDumpAll) in GenerateFrontendArgs()
2568 if (Opts.ASTDumpDecls) in GenerateFrontendArgs()
2571 if (Opts.ASTDumpAll) in GenerateFrontendArgs()
2573 if (Opts.ASTDumpDecls) in GenerateFrontendArgs()
2579 if (Opts.ProgramAction == frontend::FixIt && !Opts.FixItSuffix.empty()) { in GenerateFrontendArgs()
2581 GenerateArg(Args, OPT_fixit_EQ, Opts.FixItSuffix, SA); in GenerateFrontendArgs()
2587 for (const auto &PluginArgs : Opts.PluginArgs) { in GenerateFrontendArgs()
2595 for (const auto &Ext : Opts.ModuleFileExtensions) in GenerateFrontendArgs()
2599 if (!Opts.CodeCompletionAt.FileName.empty()) in GenerateFrontendArgs()
2600 GenerateArg(Args, OPT_code_completion_at, Opts.CodeCompletionAt.ToString(), in GenerateFrontendArgs()
2603 for (const auto &Plugin : Opts.Plugins) in GenerateFrontendArgs()
2608 for (const auto &ModuleFile : Opts.ModuleFiles) in GenerateFrontendArgs()
2611 if (Opts.AuxTargetCPU) in GenerateFrontendArgs()
2612 GenerateArg(Args, OPT_aux_target_cpu, *Opts.AuxTargetCPU, SA); in GenerateFrontendArgs()
2614 if (Opts.AuxTargetFeatures) in GenerateFrontendArgs()
2615 for (const auto &Feature : *Opts.AuxTargetFeatures) in GenerateFrontendArgs()
2619 StringRef Preprocessed = Opts.DashX.isPreprocessed() ? "-cpp-output" : ""; in GenerateFrontendArgs()
2621 Opts.DashX.getFormat() == InputKind::ModuleMap ? "-module-map" : ""; in GenerateFrontendArgs()
2623 switch (Opts.DashX.getHeaderUnitKind()) { in GenerateFrontendArgs()
2639 switch (Opts.DashX.getLanguage()) { in GenerateFrontendArgs()
2671 assert(Opts.DashX.getFormat() == InputKind::Precompiled && in GenerateFrontendArgs()
2688 for (const auto &Input : Opts.Inputs) in GenerateFrontendArgs()
2692 static bool ParseFrontendArgs(FrontendOptions &Opts, ArgList &Args, in ParseFrontendArgs() argument
2696 FrontendOptions &FrontendOpts = Opts; in ParseFrontendArgs()
2709 Opts.ProgramAction = frontend::ParseSyntaxOnly; in ParseFrontendArgs()
2723 Opts.ASTDumpFormat = static_cast<ASTDumpOutputFormat>(Val); in ParseFrontendArgs()
2727 Opts.ASTDumpFormat = ADOF_Default; in ParseFrontendArgs()
2732 Opts.FixItSuffix = A->getValue(); in ParseFrontendArgs()
2761 Opts.ProgramAction = *ProgramAction; in ParseFrontendArgs()
2765 Opts.Plugins.emplace_back(A->getValue(0)); in ParseFrontendArgs()
2766 Opts.ProgramAction = frontend::PluginAction; in ParseFrontendArgs()
2767 Opts.ActionName = A->getValue(); in ParseFrontendArgs()
2770 Opts.PluginArgs[AA->getValue(0)].emplace_back(AA->getValue(1)); in ParseFrontendArgs()
2787 Opts.ModuleFileExtensions.push_back( in ParseFrontendArgs()
2793 Opts.CodeCompletionAt = in ParseFrontendArgs()
2795 if (Opts.CodeCompletionAt.FileName.empty()) in ParseFrontendArgs()
2800 Opts.Plugins = Args.getAllArgValues(OPT_load); in ParseFrontendArgs()
2801 Opts.ASTDumpDecls = Args.hasArg(OPT_ast_dump, OPT_ast_dump_EQ); in ParseFrontendArgs()
2802 Opts.ASTDumpAll = Args.hasArg(OPT_ast_dump_all, OPT_ast_dump_all_EQ); in ParseFrontendArgs()
2807 Opts.ModuleFiles.push_back(std::string(Val)); in ParseFrontendArgs()
2810 if (Opts.ProgramAction != frontend::GenerateModule && Opts.IsSystemModule) in ParseFrontendArgs()
2815 Opts.AuxTargetCPU = std::string(Args.getLastArgValue(OPT_aux_target_cpu)); in ParseFrontendArgs()
2817 Opts.AuxTargetFeatures = Args.getAllArgValues(OPT_aux_target_feature); in ParseFrontendArgs()
2819 if (Opts.ARCMTAction != FrontendOptions::ARCMT_None && in ParseFrontendArgs()
2820 Opts.ObjCMTAction != FrontendOptions::ObjCMT_None) { in ParseFrontendArgs()
2908 Opts.Inputs.clear(); in ParseFrontendArgs()
2932 if (Opts.ProgramAction == frontend::GenerateModule && in ParseFrontendArgs()
2935 IsSystem = Opts.IsSystemModule; in ParseFrontendArgs()
2938 Opts.Inputs.emplace_back(std::move(Inputs[i]), IK, IsSystem); in ParseFrontendArgs()
2941 Opts.DashX = DashX; in ParseFrontendArgs()
2953 static void GenerateHeaderSearchArgs(HeaderSearchOptions &Opts, in GenerateHeaderSearchArgs() argument
2956 const HeaderSearchOptions *HeaderSearchOpts = &Opts; in GenerateHeaderSearchArgs()
2968 if (Opts.UseLibcxx) in GenerateHeaderSearchArgs()
2971 if (!Opts.ModuleCachePath.empty()) in GenerateHeaderSearchArgs()
2972 GenerateArg(Args, OPT_fmodules_cache_path, Opts.ModuleCachePath, SA); in GenerateHeaderSearchArgs()
2974 for (const auto &File : Opts.PrebuiltModuleFiles) in GenerateHeaderSearchArgs()
2977 for (const auto &Path : Opts.PrebuiltModulePaths) in GenerateHeaderSearchArgs()
2980 for (const auto &Macro : Opts.ModulesIgnoreMacros) in GenerateHeaderSearchArgs()
2992 auto It = Opts.UserEntries.begin(); in GenerateHeaderSearchArgs()
2993 auto End = Opts.UserEntries.end(); in GenerateHeaderSearchArgs()
3069 for (const auto &P : Opts.SystemHeaderPrefixes) { in GenerateHeaderSearchArgs()
3075 for (const std::string &F : Opts.VFSOverlayFiles) in GenerateHeaderSearchArgs()
3079 static bool ParseHeaderSearchArgs(HeaderSearchOptions &Opts, ArgList &Args, in ParseHeaderSearchArgs() argument
3084 HeaderSearchOptions *HeaderSearchOpts = &Opts; in ParseHeaderSearchArgs()
3098 Opts.UseLibcxx = (strcmp(A->getValue(), "libc++") == 0); in ParseHeaderSearchArgs()
3109 Opts.ModuleCachePath = std::string(P.str()); in ParseHeaderSearchArgs()
3116 Opts.PrebuiltModuleFiles.insert( in ParseHeaderSearchArgs()
3121 Opts.AddPrebuiltModulePath(A->getValue()); in ParseHeaderSearchArgs()
3125 Opts.ModulesIgnoreMacros.insert( in ParseHeaderSearchArgs()
3148 llvm::sys::path::append(Buffer, Opts.Sysroot, in ParseHeaderSearchArgs()
3153 Opts.AddPath(Path, Group, IsFramework, in ParseHeaderSearchArgs()
3165 Opts.AddPath(Prefix.str() + A->getValue(), frontend::After, false, true); in ParseHeaderSearchArgs()
3167 Opts.AddPath(Prefix.str() + A->getValue(), frontend::Angled, false, true); in ParseHeaderSearchArgs()
3171 Opts.AddPath(A->getValue(), frontend::After, false, true); in ParseHeaderSearchArgs()
3173 Opts.AddPath(A->getValue(), frontend::Quoted, false, true); in ParseHeaderSearchArgs()
3175 Opts.AddPath(A->getValue(), frontend::System, false, in ParseHeaderSearchArgs()
3178 Opts.AddPath(A->getValue(), frontend::System, true, true); in ParseHeaderSearchArgs()
3180 Opts.AddPath(A->getValue(), frontend::System, /*IsFramework=*/true, in ParseHeaderSearchArgs()
3185 Opts.AddPath(A->getValue(), frontend::CSystem, false, true); in ParseHeaderSearchArgs()
3187 Opts.AddPath(A->getValue(), frontend::CXXSystem, false, true); in ParseHeaderSearchArgs()
3189 Opts.AddPath(A->getValue(), frontend::ObjCSystem, false,true); in ParseHeaderSearchArgs()
3191 Opts.AddPath(A->getValue(), frontend::ObjCXXSystem, false, true); in ParseHeaderSearchArgs()
3199 Opts.AddPath(A->getValue(), Group, false, true); in ParseHeaderSearchArgs()
3205 Opts.AddSystemHeaderPrefix( in ParseHeaderSearchArgs()
3209 Opts.AddVFSOverlayFile(A->getValue()); in ParseHeaderSearchArgs()
3295 void CompilerInvocation::GenerateLangArgs(const LangOptions &Opts, in GenerateLangArgs() argument
3301 if (Opts.ObjCAutoRefCount) in GenerateLangArgs()
3303 if (Opts.PICLevel != 0) in GenerateLangArgs()
3304 GenerateArg(Args, OPT_pic_level, Twine(Opts.PICLevel), SA); in GenerateLangArgs()
3305 if (Opts.PIE) in GenerateLangArgs()
3307 for (StringRef Sanitizer : serializeSanitizerKinds(Opts.Sanitize)) in GenerateLangArgs()
3314 switch (Opts.LangStd) { in GenerateLangArgs()
3329 auto LangStandard = LangStandard::getLangStandardForKind(Opts.LangStd); in GenerateLangArgs()
3332 if (Opts.IncludeDefaultHeader) in GenerateLangArgs()
3334 if (Opts.DeclareOpenCLBuiltins) in GenerateLangArgs()
3337 const LangOptions *LangOpts = &Opts; in GenerateLangArgs()
3352 if (Opts.ObjC) { in GenerateLangArgs()
3353 GenerateArg(Args, OPT_fobjc_runtime_EQ, Opts.ObjCRuntime.getAsString(), SA); in GenerateLangArgs()
3355 if (Opts.GC == LangOptions::GCOnly) in GenerateLangArgs()
3357 else if (Opts.GC == LangOptions::HybridGC) in GenerateLangArgs()
3359 else if (Opts.ObjCAutoRefCount == 1) in GenerateLangArgs()
3362 if (Opts.ObjCWeakRuntime) in GenerateLangArgs()
3365 if (Opts.ObjCWeak) in GenerateLangArgs()
3368 if (Opts.ObjCSubscriptingLegacyRuntime) in GenerateLangArgs()
3372 if (Opts.GNUCVersion != 0) { in GenerateLangArgs()
3373 unsigned Major = Opts.GNUCVersion / 100 / 100; in GenerateLangArgs()
3374 unsigned Minor = (Opts.GNUCVersion / 100) % 100; in GenerateLangArgs()
3375 unsigned Patch = Opts.GNUCVersion % 100; in GenerateLangArgs()
3380 if (Opts.IgnoreXCOFFVisibility) in GenerateLangArgs()
3383 if (Opts.SignedOverflowBehavior == LangOptions::SOB_Trapping) { in GenerateLangArgs()
3385 GenerateArg(Args, OPT_ftrapv_handler, Opts.OverflowHandler, SA); in GenerateLangArgs()
3386 } else if (Opts.SignedOverflowBehavior == LangOptions::SOB_Defined) { in GenerateLangArgs()
3390 if (Opts.MSCompatibilityVersion != 0) { in GenerateLangArgs()
3391 unsigned Major = Opts.MSCompatibilityVersion / 10000000; in GenerateLangArgs()
3392 unsigned Minor = (Opts.MSCompatibilityVersion / 100000) % 100; in GenerateLangArgs()
3393 unsigned Subminor = Opts.MSCompatibilityVersion % 100000; in GenerateLangArgs()
3398 if ((!Opts.GNUMode && !Opts.MSVCCompat && !Opts.CPlusPlus17) || T.isOSzOS()) { in GenerateLangArgs()
3399 if (!Opts.Trigraphs) in GenerateLangArgs()
3402 if (Opts.Trigraphs) in GenerateLangArgs()
3406 if (Opts.Blocks && !(Opts.OpenCL && Opts.OpenCLVersion == 200)) in GenerateLangArgs()
3409 if (Opts.ConvergentFunctions && in GenerateLangArgs()
3410 !(Opts.OpenCL || (Opts.CUDA && Opts.CUDAIsDevice) || Opts.SYCLIsDevice)) in GenerateLangArgs()
3413 if (Opts.NoBuiltin && !Opts.Freestanding) in GenerateLangArgs()
3416 if (!Opts.NoBuiltin) in GenerateLangArgs()
3417 for (const auto &Func : Opts.NoBuiltinFuncs) in GenerateLangArgs()
3420 if (Opts.LongDoubleSize == 128) in GenerateLangArgs()
3422 else if (Opts.LongDoubleSize == 64) in GenerateLangArgs()
3424 else if (Opts.LongDoubleSize == 80) in GenerateLangArgs()
3431 if (Opts.OpenMP && !Opts.OpenMPSimd) { in GenerateLangArgs()
3434 if (Opts.OpenMP != 50) in GenerateLangArgs()
3435 GenerateArg(Args, OPT_fopenmp_version_EQ, Twine(Opts.OpenMP), SA); in GenerateLangArgs()
3437 if (!Opts.OpenMPUseTLS) in GenerateLangArgs()
3440 if (Opts.OpenMPIsDevice) in GenerateLangArgs()
3443 if (Opts.OpenMPIRBuilder) in GenerateLangArgs()
3447 if (Opts.OpenMPSimd) { in GenerateLangArgs()
3450 if (Opts.OpenMP != 50) in GenerateLangArgs()
3451 GenerateArg(Args, OPT_fopenmp_version_EQ, Twine(Opts.OpenMP), SA); in GenerateLangArgs()
3454 if (Opts.OpenMPThreadSubscription) in GenerateLangArgs()
3457 if (Opts.OpenMPTeamSubscription) in GenerateLangArgs()
3460 if (Opts.OpenMPTargetDebug != 0) in GenerateLangArgs()
3462 Twine(Opts.OpenMPTargetDebug), SA); in GenerateLangArgs()
3464 if (Opts.OpenMPCUDANumSMs != 0) in GenerateLangArgs()
3466 Twine(Opts.OpenMPCUDANumSMs), SA); in GenerateLangArgs()
3468 if (Opts.OpenMPCUDABlocksPerSM != 0) in GenerateLangArgs()
3470 Twine(Opts.OpenMPCUDABlocksPerSM), SA); in GenerateLangArgs()
3472 if (Opts.OpenMPCUDAReductionBufNum != 1024) in GenerateLangArgs()
3474 Twine(Opts.OpenMPCUDAReductionBufNum), SA); in GenerateLangArgs()
3476 if (!Opts.OMPTargetTriples.empty()) { in GenerateLangArgs()
3480 Opts.OMPTargetTriples, OS, in GenerateLangArgs()
3485 if (!Opts.OMPHostIRFile.empty()) in GenerateLangArgs()
3486 GenerateArg(Args, OPT_fopenmp_host_ir_file_path, Opts.OMPHostIRFile, SA); in GenerateLangArgs()
3488 if (Opts.OpenMPCUDAMode) in GenerateLangArgs()
3491 if (Opts.OpenMPCUDAForceFullRuntime) in GenerateLangArgs()
3497 if (Opts.DefaultFPContractMode == LangOptions::FPM_Fast) in GenerateLangArgs()
3499 else if (Opts.DefaultFPContractMode == LangOptions::FPM_On) in GenerateLangArgs()
3501 else if (Opts.DefaultFPContractMode == LangOptions::FPM_Off) in GenerateLangArgs()
3503 else if (Opts.DefaultFPContractMode == LangOptions::FPM_FastHonorPragmas) in GenerateLangArgs()
3506 for (StringRef Sanitizer : serializeSanitizerKinds(Opts.Sanitize)) in GenerateLangArgs()
3510 for (const std::string &F : Opts.NoSanitizeFiles) in GenerateLangArgs()
3513 if (Opts.getClangABICompat() == LangOptions::ClangABI::Ver3_8) in GenerateLangArgs()
3515 else if (Opts.getClangABICompat() == LangOptions::ClangABI::Ver4) in GenerateLangArgs()
3517 else if (Opts.getClangABICompat() == LangOptions::ClangABI::Ver6) in GenerateLangArgs()
3519 else if (Opts.getClangABICompat() == LangOptions::ClangABI::Ver7) in GenerateLangArgs()
3521 else if (Opts.getClangABICompat() == LangOptions::ClangABI::Ver9) in GenerateLangArgs()
3523 else if (Opts.getClangABICompat() == LangOptions::ClangABI::Ver11) in GenerateLangArgs()
3525 else if (Opts.getClangABICompat() == LangOptions::ClangABI::Ver12) in GenerateLangArgs()
3527 else if (Opts.getClangABICompat() == LangOptions::ClangABI::Ver14) in GenerateLangArgs()
3530 if (Opts.getSignReturnAddressScope() == in GenerateLangArgs()
3533 else if (Opts.getSignReturnAddressScope() == in GenerateLangArgs()
3537 if (Opts.getSignReturnAddressKey() == in GenerateLangArgs()
3541 if (Opts.CXXABI) in GenerateLangArgs()
3542 GenerateArg(Args, OPT_fcxx_abi_EQ, TargetCXXABI::getSpelling(*Opts.CXXABI), in GenerateLangArgs()
3545 if (Opts.RelativeCXXABIVTables) in GenerateLangArgs()
3550 if (Opts.UseTargetPathSeparator) in GenerateLangArgs()
3555 for (const auto &MP : Opts.MacroPrefixMap) in GenerateLangArgs()
3558 if (!Opts.RandstructSeed.empty()) in GenerateLangArgs()
3559 GenerateArg(Args, OPT_frandomize_layout_seed_EQ, Opts.RandstructSeed, SA); in GenerateLangArgs()
3562 bool CompilerInvocation::ParseLangArgs(LangOptions &Opts, ArgList &Args, in ParseLangArgs() argument
3574 Opts.ObjCAutoRefCount = 1; in ParseLangArgs()
3577 Opts.PICLevel = getLastArgIntValue(Args, OPT_pic_level, 0, Diags); in ParseLangArgs()
3578 Opts.PIE = Args.hasArg(OPT_pic_is_pie); in ParseLangArgs()
3580 Diags, Opts.Sanitize); in ParseLangArgs()
3654 Opts.IncludeDefaultHeader = Args.hasArg(OPT_finclude_default_header); in ParseLangArgs()
3655 Opts.DeclareOpenCLBuiltins = Args.hasArg(OPT_fdeclare_opencl_builtins); in ParseLangArgs()
3657 LangOptions::setLangDefaults(Opts, IK.getLanguage(), T, Includes, LangStd); in ParseLangArgs()
3661 LangOptions *LangOpts = &Opts; in ParseLangArgs()
3677 Opts.CFProtectionBranch = 1; in ParseLangArgs()
3688 Opts.setSYCLVersion(LangOptions::SYCL_Default); in ParseLangArgs()
3691 if (Opts.ObjC) { in ParseLangArgs()
3694 if (Opts.ObjCRuntime.tryParse(value)) in ParseLangArgs()
3699 Opts.setGC(LangOptions::GCOnly); in ParseLangArgs()
3701 Opts.setGC(LangOptions::HybridGC); in ParseLangArgs()
3703 Opts.ObjCAutoRefCount = 1; in ParseLangArgs()
3704 if (!Opts.ObjCRuntime.allowsARC()) in ParseLangArgs()
3713 Opts.ObjCWeakRuntime = 1; in ParseLangArgs()
3715 Opts.ObjCWeakRuntime = Opts.ObjCRuntime.allowsWeak(); in ParseLangArgs()
3721 assert(!Opts.ObjCWeak); in ParseLangArgs()
3722 } else if (Opts.getGC() != LangOptions::NonGC) { in ParseLangArgs()
3724 } else if (!Opts.ObjCWeakRuntime) { in ParseLangArgs()
3727 Opts.ObjCWeak = 1; in ParseLangArgs()
3729 } else if (Opts.ObjCAutoRefCount) { in ParseLangArgs()
3730 Opts.ObjCWeak = Opts.ObjCWeakRuntime; in ParseLangArgs()
3734 Opts.ObjCSubscriptingLegacyRuntime = in ParseLangArgs()
3735 (Opts.ObjCRuntime.getKind() == ObjCRuntime::FragileMacOSX); in ParseLangArgs()
3750 Opts.GNUCVersion = Major * 100 * 100 + Minor * 100 + Patch; in ParseLangArgs()
3754 Opts.IgnoreXCOFFVisibility = 1; in ParseLangArgs()
3757 Opts.setSignedOverflowBehavior(LangOptions::SOB_Trapping); in ParseLangArgs()
3759 Opts.OverflowHandler = in ParseLangArgs()
3763 Opts.setSignedOverflowBehavior(LangOptions::SOB_Defined); in ParseLangArgs()
3765 Opts.MSCompatibilityVersion = 0; in ParseLangArgs()
3771 Opts.MSCompatibilityVersion = VT.getMajor() * 10000000 + in ParseLangArgs()
3780 Opts.Trigraphs = in ParseLangArgs()
3781 (!Opts.GNUMode && !Opts.MSVCCompat && !Opts.CPlusPlus17) || T.isOSzOS(); in ParseLangArgs()
3782 Opts.Trigraphs = in ParseLangArgs()
3783 Args.hasFlag(OPT_ftrigraphs, OPT_fno_trigraphs, Opts.Trigraphs); in ParseLangArgs()
3785 Opts.Blocks = Args.hasArg(OPT_fblocks) || (Opts.OpenCL in ParseLangArgs()
3786 && Opts.OpenCLVersion == 200); in ParseLangArgs()
3788 Opts.ConvergentFunctions = Opts.OpenCL || (Opts.CUDA && Opts.CUDAIsDevice) || in ParseLangArgs()
3789 Opts.SYCLIsDevice || in ParseLangArgs()
3792 Opts.NoBuiltin = Args.hasArg(OPT_fno_builtin) || Opts.Freestanding; in ParseLangArgs()
3793 if (!Opts.NoBuiltin) in ParseLangArgs()
3794 getAllNoBuiltinFuncValues(Args, Opts.NoBuiltinFuncs); in ParseLangArgs()
3797 Opts.LongDoubleSize = 64; in ParseLangArgs()
3799 Opts.LongDoubleSize = 80; in ParseLangArgs()
3801 Opts.LongDoubleSize = 128; in ParseLangArgs()
3803 Opts.LongDoubleSize = 0; in ParseLangArgs()
3805 if (Opts.FastRelaxedMath) in ParseLangArgs()
3806 Opts.setDefaultFPContractMode(LangOptions::FPM_Fast); in ParseLangArgs()
3808 llvm::sort(Opts.ModuleFeatures); in ParseLangArgs()
3812 if (Opts.getDefaultCallingConv() != LangOptions::DCC_None) in ParseLangArgs()
3820 Opts.setDefaultCallingConv(LangOptions::DCC_StdCall); in ParseLangArgs()
3825 Opts.OpenMP = Args.hasArg(OPT_fopenmp) ? 50 : 0; in ParseLangArgs()
3830 Opts.OpenMPSimd = !Opts.OpenMP && IsSimdSpecified; in ParseLangArgs()
3831 Opts.OpenMPUseTLS = in ParseLangArgs()
3832 Opts.OpenMP && !Args.hasArg(options::OPT_fnoopenmp_use_tls); in ParseLangArgs()
3833 Opts.OpenMPIsDevice = in ParseLangArgs()
3834 Opts.OpenMP && Args.hasArg(options::OPT_fopenmp_is_device); in ParseLangArgs()
3835 Opts.OpenMPIRBuilder = in ParseLangArgs()
3836 Opts.OpenMP && Args.hasArg(options::OPT_fopenmp_enable_irbuilder); in ParseLangArgs()
3838 Opts.OpenMPIsDevice || Args.hasArg(options::OPT_fopenmp_targets_EQ); in ParseLangArgs()
3840 Opts.ConvergentFunctions = Opts.ConvergentFunctions || Opts.OpenMPIsDevice; in ParseLangArgs()
3842 if (Opts.OpenMP || Opts.OpenMPSimd) { in ParseLangArgs()
3845 (IsSimdSpecified || IsTargetSpecified) ? 50 : Opts.OpenMP, Diags)) in ParseLangArgs()
3846 Opts.OpenMP = Version; in ParseLangArgs()
3849 if (!Opts.OpenMPIsDevice) { in ParseLangArgs()
3864 if ((Opts.OpenMPIsDevice && (T.isNVPTX() || T.isAMDGCN())) || in ParseLangArgs()
3865 Opts.OpenCLCPlusPlus) { in ParseLangArgs()
3867 Opts.Exceptions = 0; in ParseLangArgs()
3868 Opts.CXXExceptions = 0; in ParseLangArgs()
3870 if (Opts.OpenMPIsDevice && T.isNVPTX()) { in ParseLangArgs()
3871 Opts.OpenMPCUDANumSMs = in ParseLangArgs()
3873 Opts.OpenMPCUDANumSMs, Diags); in ParseLangArgs()
3874 Opts.OpenMPCUDABlocksPerSM = in ParseLangArgs()
3876 Opts.OpenMPCUDABlocksPerSM, Diags); in ParseLangArgs()
3877 Opts.OpenMPCUDAReductionBufNum = getLastArgIntValue( in ParseLangArgs()
3879 Opts.OpenMPCUDAReductionBufNum, Diags); in ParseLangArgs()
3884 if (Opts.OpenMPIsDevice && (Args.hasArg(OPT_fopenmp_target_debug) || in ParseLangArgs()
3886 Opts.OpenMPTargetDebug = getLastArgIntValue( in ParseLangArgs()
3887 Args, OPT_fopenmp_target_debug_EQ, Opts.OpenMPTargetDebug, Diags); in ParseLangArgs()
3888 if (!Opts.OpenMPTargetDebug && Args.hasArg(OPT_fopenmp_target_debug)) in ParseLangArgs()
3889 Opts.OpenMPTargetDebug = 1; in ParseLangArgs()
3892 if (Opts.OpenMPIsDevice) { in ParseLangArgs()
3894 Opts.OpenMPTeamSubscription = true; in ParseLangArgs()
3896 Opts.OpenMPThreadSubscription = true; in ParseLangArgs()
3926 Opts.OMPTargetTriples.push_back(TT); in ParseLangArgs()
3933 Opts.OMPHostIRFile = A->getValue(); in ParseLangArgs()
3934 if (!llvm::sys::fs::exists(Opts.OMPHostIRFile)) in ParseLangArgs()
3936 << Opts.OMPHostIRFile; in ParseLangArgs()
3940 Opts.OpenMPCUDAMode = Opts.OpenMPIsDevice && (T.isNVPTX() || T.isAMDGCN()) && in ParseLangArgs()
3944 Opts.OpenMPCUDAForceFullRuntime = in ParseLangArgs()
3945 Opts.OpenMPIsDevice && (T.isNVPTX() || T.isAMDGCN()) && in ParseLangArgs()
3951 Opts.Optimize = Opt != 0; in ParseLangArgs()
3952 Opts.OptimizeSize = OptSize != 0; in ParseLangArgs()
3957 Opts.NoInlineDefine = !Opts.Optimize; in ParseLangArgs()
3962 Opts.NoInlineDefine = true; in ParseLangArgs()
3967 Opts.setDefaultFPContractMode(LangOptions::FPM_Fast); in ParseLangArgs()
3969 Opts.setDefaultFPContractMode(LangOptions::FPM_On); in ParseLangArgs()
3971 Opts.setDefaultFPContractMode(LangOptions::FPM_Off); in ParseLangArgs()
3973 Opts.setDefaultFPContractMode(LangOptions::FPM_FastHonorPragmas); in ParseLangArgs()
3980 Diags, Opts.Sanitize); in ParseLangArgs()
3981 Opts.NoSanitizeFiles = Args.getAllArgValues(OPT_fsanitize_ignorelist_EQ); in ParseLangArgs()
3984 Opts.NoSanitizeFiles.insert(Opts.NoSanitizeFiles.end(), in ParseLangArgs()
3989 Opts.setClangABICompat(LangOptions::ClangABI::Latest); in ParseLangArgs()
4006 Opts.setClangABICompat(LangOptions::ClangABI::Ver3_8); in ParseLangArgs()
4008 Opts.setClangABICompat(LangOptions::ClangABI::Ver4); in ParseLangArgs()
4010 Opts.setClangABICompat(LangOptions::ClangABI::Ver6); in ParseLangArgs()
4012 Opts.setClangABICompat(LangOptions::ClangABI::Ver7); in ParseLangArgs()
4014 Opts.setClangABICompat(LangOptions::ClangABI::Ver9); in ParseLangArgs()
4016 Opts.setClangABICompat(LangOptions::ClangABI::Ver11); in ParseLangArgs()
4018 Opts.setClangABICompat(LangOptions::ClangABI::Ver12); in ParseLangArgs()
4020 Opts.setClangABICompat(LangOptions::ClangABI::Ver14); in ParseLangArgs()
4031 Opts.setSignReturnAddressScope( in ParseLangArgs()
4034 Opts.setSignReturnAddressScope( in ParseLangArgs()
4037 Opts.setSignReturnAddressScope( in ParseLangArgs()
4047 Opts.setSignReturnAddressKey( in ParseLangArgs()
4050 Opts.setSignReturnAddressKey( in ParseLangArgs()
4069 Opts.CXXABI = Kind; in ParseLangArgs()
4073 Opts.RelativeCXXABIVTables = in ParseLangArgs()
4080 Opts.MacroPrefixMap.insert( in ParseLangArgs()
4084 Opts.UseTargetPathSeparator = in ParseLangArgs()
4104 std::getline(SeedFile, Opts.RandstructSeed); in ParseLangArgs()
4108 Opts.RandstructSeed = A->getValue(0); in ParseLangArgs()
4159 static void GeneratePreprocessorArgs(PreprocessorOptions &Opts, in GeneratePreprocessorArgs() argument
4165 PreprocessorOptions *PreprocessorOpts = &Opts; in GeneratePreprocessorArgs()
4178 if (Opts.PCHWithHdrStop && !Opts.PCHWithHdrStopCreate) in GeneratePreprocessorArgs()
4181 for (const auto &D : Opts.DeserializedPCHDeclsToErrorOn) in GeneratePreprocessorArgs()
4184 if (Opts.PrecompiledPreambleBytes != std::make_pair(0u, false)) in GeneratePreprocessorArgs()
4186 Twine(Opts.PrecompiledPreambleBytes.first) + "," + in GeneratePreprocessorArgs()
4187 (Opts.PrecompiledPreambleBytes.second ? "1" : "0"), in GeneratePreprocessorArgs()
4190 for (const auto &M : Opts.Macros) { in GeneratePreprocessorArgs()
4206 for (const auto &I : Opts.Includes) { in GeneratePreprocessorArgs()
4221 for (const auto &CI : Opts.ChainedIncludes) in GeneratePreprocessorArgs()
4224 for (const auto &RF : Opts.RemappedFiles) in GeneratePreprocessorArgs()
4231 static bool ParsePreprocessorArgs(PreprocessorOptions &Opts, ArgList &Args, in ParsePreprocessorArgs() argument
4237 PreprocessorOptions *PreprocessorOpts = &Opts; in ParsePreprocessorArgs()
4250 Opts.PCHWithHdrStop = Args.hasArg(OPT_pch_through_hdrstop_create) || in ParsePreprocessorArgs()
4254 Opts.DeserializedPCHDeclsToErrorOn.insert(A->getValue()); in ParsePreprocessorArgs()
4267 Opts.PrecompiledPreambleBytes.first = Bytes; in ParsePreprocessorArgs()
4268 Opts.PrecompiledPreambleBytes.second = (EndOfLine != 0); in ParsePreprocessorArgs()
4276 Opts.addMacroDef("__CET__=1"); in ParsePreprocessorArgs()
4278 Opts.addMacroDef("__CET__=2"); in ParsePreprocessorArgs()
4280 Opts.addMacroDef("__CET__=3"); in ParsePreprocessorArgs()
4286 Opts.addMacroDef(A->getValue()); in ParsePreprocessorArgs()
4288 Opts.addMacroUndef(A->getValue()); in ParsePreprocessorArgs()
4293 Opts.Includes.emplace_back(A->getValue()); in ParsePreprocessorArgs()
4296 Opts.ChainedIncludes.emplace_back(A->getValue()); in ParsePreprocessorArgs()
4306 Opts.addRemappedFile(Split.first, Split.second); in ParsePreprocessorArgs()
4313 Opts.LexEditorPlaceholders = false; in ParsePreprocessorArgs()
4319 const PreprocessorOutputOptions &Opts, SmallVectorImpl<const char *> &Args, in GeneratePreprocessorOutputArgs() argument
4321 const PreprocessorOutputOptions &PreprocessorOutputOpts = Opts; in GeneratePreprocessorOutputArgs()
4334 bool Generate_dM = isStrictlyPreprocessorAction(Action) && !Opts.ShowCPP; in GeneratePreprocessorOutputArgs()
4337 if (!Generate_dM && Opts.ShowMacros) in GeneratePreprocessorOutputArgs()
4339 if (Opts.DirectivesOnly) in GeneratePreprocessorOutputArgs()
4343 static bool ParsePreprocessorOutputArgs(PreprocessorOutputOptions &Opts, in ParsePreprocessorOutputArgs() argument
4348 PreprocessorOutputOptions &PreprocessorOutputOpts = Opts; in ParsePreprocessorOutputArgs()
4361 Opts.ShowCPP = isStrictlyPreprocessorAction(Action) && !Args.hasArg(OPT_dM); in ParsePreprocessorOutputArgs()
4362 Opts.ShowMacros = Args.hasArg(OPT_dM) || Args.hasArg(OPT_dD); in ParsePreprocessorOutputArgs()
4363 Opts.DirectivesOnly = Args.hasArg(OPT_fdirectives_only); in ParsePreprocessorOutputArgs()
4368 static void GenerateTargetArgs(const TargetOptions &Opts, in GenerateTargetArgs() argument
4371 const TargetOptions *TargetOpts = &Opts; in GenerateTargetArgs()
4383 if (!Opts.SDKVersion.empty()) in GenerateTargetArgs()
4384 GenerateArg(Args, OPT_target_sdk_version_EQ, Opts.SDKVersion.getAsString(), in GenerateTargetArgs()
4386 if (!Opts.DarwinTargetVariantSDKVersion.empty()) in GenerateTargetArgs()
4388 Opts.DarwinTargetVariantSDKVersion.getAsString(), SA); in GenerateTargetArgs()
4391 static bool ParseTargetArgs(TargetOptions &Opts, ArgList &Args, in ParseTargetArgs() argument
4395 TargetOptions *TargetOpts = &Opts; in ParseTargetArgs()
4414 Opts.SDKVersion = Version; in ParseTargetArgs()
4423 Opts.DarwinTargetVariantSDKVersion = Version; in ParseTargetArgs()
4435 const OptTable &Opts = getDriverOptTable(); in CreateFromArgsImpl() local
4438 InputArgList Args = Opts.ParseArgs(CommandLineArgs, MissingArgIndex, in CreateFromArgsImpl()
4451 if (Opts.findNearest(ArgString, Nearest, IncludedFlagsBitmask) > 1) in CreateFromArgsImpl()