Lines Matching refs:Args

62 static void CheckPreprocessingOptions(const Driver &D, const ArgList &Args) {  in CheckPreprocessingOptions()  argument
63 if (Arg *A = Args.getLastArg(clang::driver::options::OPT_C, options::OPT_CC, in CheckPreprocessingOptions()
66 if (!Args.hasArg(options::OPT_E) && !Args.hasArg(options::OPT__SLASH_P) && in CheckPreprocessingOptions()
67 !Args.hasArg(options::OPT__SLASH_EP) && !D.CCCIsCPP()) { in CheckPreprocessingOptions()
69 << A->getBaseArg().getAsString(Args) in CheckPreprocessingOptions()
75 static void CheckCodeGenerationOptions(const Driver &D, const ArgList &Args) { in CheckCodeGenerationOptions() argument
77 if (Args.hasArg(options::OPT_static)) in CheckCodeGenerationOptions()
79 Args.getLastArg(options::OPT_dynamic, options::OPT_mdynamic_no_pic)) in CheckCodeGenerationOptions()
80 D.Diag(diag::err_drv_argument_not_allowed_with) << A->getAsString(Args) in CheckCodeGenerationOptions()
166 static void ParseMRecip(const Driver &D, const ArgList &Args, in ParseMRecip() argument
173 Arg *A = Args.getLastArg(options::OPT_mrecip, options::OPT_mrecip_EQ); in ParseMRecip()
180 OutStrings.push_back(Args.MakeArgString(Out + "all")); in ParseMRecip()
192 OutStrings.push_back(Args.MakeArgString(Out + Val)); in ParseMRecip()
265 Out = Args.MakeArgString(Out + Prefix + Val); in ParseMRecip()
267 Out = Args.MakeArgString(Out + ","); in ParseMRecip()
270 OutStrings.push_back(Args.MakeArgString(Out)); in ParseMRecip()
275 static void ParseMPreferVectorWidth(const Driver &D, const ArgList &Args, in ParseMPreferVectorWidth() argument
277 Arg *A = Args.getLastArg(options::OPT_mprefer_vector_width_EQ); in ParseMPreferVectorWidth()
290 CmdArgs.push_back(Args.MakeArgString("-mprefer-vector-width=" + Value)); in ParseMPreferVectorWidth()
294 static void getWebAssemblyTargetFeatures(const ArgList &Args, in getWebAssemblyTargetFeatures() argument
296 handleTargetFeaturesGroup(Args, Features, options::OPT_m_wasm_Features_Group); in getWebAssemblyTargetFeatures()
300 const ArgList &Args, ArgStringList &CmdArgs, in getTargetFeatures() argument
310 mips::getMIPSTargetFeatures(D, Triple, Args, Features); in getTargetFeatures()
317 arm::getARMTargetFeatures(D, Triple, Args, Features, ForAS); in getTargetFeatures()
324 ppc::getPPCTargetFeatures(D, Triple, Args, Features); in getTargetFeatures()
328 riscv::getRISCVTargetFeatures(D, Triple, Args, Features); in getTargetFeatures()
331 systemz::getSystemZTargetFeatures(D, Args, Features); in getTargetFeatures()
336 aarch64::getAArch64TargetFeatures(D, Triple, Args, Features, ForAS); in getTargetFeatures()
340 x86::getX86TargetFeatures(D, Triple, Args, Features); in getTargetFeatures()
343 hexagon::getHexagonTargetFeatures(D, Args, Features); in getTargetFeatures()
347 getWebAssemblyTargetFeatures(Args, Features); in getTargetFeatures()
352 sparc::getSparcTargetFeatures(D, Args, Features); in getTargetFeatures()
356 amdgpu::getAMDGPUTargetFeatures(D, Triple, Args, Features); in getTargetFeatures()
360 NVPTX::getNVPTXTargetFeatures(D, Triple, Args, Features); in getTargetFeatures()
363 m68k::getM68kTargetFeatures(D, Triple, Args, Features); in getTargetFeatures()
366 msp430::getMSP430TargetFeatures(D, Args, Features); in getTargetFeatures()
369 ve::getVETargetFeatures(D, Args, Features); in getTargetFeatures()
372 csky::getCSKYTargetFeatures(D, Triple, Args, CmdArgs, Features); in getTargetFeatures()
403 static bool addExceptionArgs(const ArgList &Args, types::ID InputType, in addExceptionArgs() argument
412 Args.ClaimAllArgs(options::OPT_fexceptions); in addExceptionArgs()
413 Args.ClaimAllArgs(options::OPT_fno_exceptions); in addExceptionArgs()
414 Args.ClaimAllArgs(options::OPT_fobjc_exceptions); in addExceptionArgs()
415 Args.ClaimAllArgs(options::OPT_fno_objc_exceptions); in addExceptionArgs()
416 Args.ClaimAllArgs(options::OPT_fcxx_exceptions); in addExceptionArgs()
417 Args.ClaimAllArgs(options::OPT_fno_cxx_exceptions); in addExceptionArgs()
418 Args.ClaimAllArgs(options::OPT_fasync_exceptions); in addExceptionArgs()
419 Args.ClaimAllArgs(options::OPT_fno_async_exceptions); in addExceptionArgs()
424 bool EH = Args.hasFlag(options::OPT_fexceptions, options::OPT_fno_exceptions, in addExceptionArgs()
427 bool EHa = Args.hasFlag(options::OPT_fasync_exceptions, in addExceptionArgs()
437 Args.hasFlag(options::OPT_fobjc_exceptions, in addExceptionArgs()
448 Arg *ExceptionArg = Args.getLastArg( in addExceptionArgs()
466 Args.AddLastArg(CmdArgs, options::OPT_fignore_exceptions); in addExceptionArgs()
473 static bool ShouldEnableAutolink(const ArgList &Args, const ToolChain &TC, in ShouldEnableAutolink() argument
485 return Args.hasFlag(options::OPT_fautolink, options::OPT_fno_autolink, in ShouldEnableAutolink()
517 static bool useFramePointerForTargetByDefault(const ArgList &Args, in useFramePointerForTargetByDefault() argument
519 if (Args.hasArg(options::OPT_pg) && !Args.hasArg(options::OPT_mfentry)) in useFramePointerForTargetByDefault()
539 return !areOptimizationsEnabled(Args); in useFramePointerForTargetByDefault()
545 return !areOptimizationsEnabled(Args); in useFramePointerForTargetByDefault()
566 return !areOptimizationsEnabled(Args); in useFramePointerForTargetByDefault()
575 return !areOptimizationsEnabled(Args); in useFramePointerForTargetByDefault()
593 getFramePointerKind(const ArgList &Args, const llvm::Triple &Triple) { in getFramePointerKind() argument
604 Arg *A = Args.getLastArg(options::OPT_fomit_frame_pointer, in getFramePointerKind()
610 Args.hasFlag(options::OPT_momit_leaf_frame_pointer, in getFramePointerKind()
614 (!OmitFP && useFramePointerForTargetByDefault(Args, Triple))) { in getFramePointerKind()
623 static const char *addDebugCompDirArg(const ArgList &Args, in addDebugCompDirArg() argument
626 if (Arg *A = Args.getLastArg(options::OPT_ffile_compilation_dir_EQ, in addDebugCompDirArg()
629 CmdArgs.push_back(Args.MakeArgString(Twine("-fdebug-compilation-dir=") + in addDebugCompDirArg()
632 A->render(Args, CmdArgs); in addDebugCompDirArg()
635 CmdArgs.push_back(Args.MakeArgString("-fdebug-compilation-dir=" + *CWD)); in addDebugCompDirArg()
641 static void addDebugObjectName(const ArgList &Args, ArgStringList &CmdArgs, in addDebugObjectName() argument
645 for (auto *Arg : Args.filtered(options::OPT_Xclang)) in addDebugObjectName()
649 if (Args.hasArg(options::OPT_object_file_name_EQ)) in addDebugObjectName()
661 Args.MakeArgString(Twine("-object-file-name=") + ObjFileNameForDebug)); in addDebugObjectName()
666 const ArgList &Args, ArgStringList &CmdArgs) { in addDebugPrefixMapArg() argument
671 CmdArgs.push_back(Args.MakeArgString("-fdebug-prefix-map=" + Map)); in addDebugPrefixMapArg()
674 for (const Arg *A : Args.filtered(options::OPT_ffile_prefix_map_EQ, in addDebugPrefixMapArg()
686 static void addMacroPrefixMapArg(const Driver &D, const ArgList &Args, in addMacroPrefixMapArg() argument
688 for (const Arg *A : Args.filtered(options::OPT_ffile_prefix_map_EQ, in addMacroPrefixMapArg()
695 CmdArgs.push_back(Args.MakeArgString("-fmacro-prefix-map=" + Map)); in addMacroPrefixMapArg()
701 static void addCoveragePrefixMapArg(const Driver &D, const ArgList &Args, in addCoveragePrefixMapArg() argument
703 for (const Arg *A : Args.filtered(options::OPT_ffile_prefix_map_EQ, in addCoveragePrefixMapArg()
710 CmdArgs.push_back(Args.MakeArgString("-fcoverage-prefix-map=" + Map)); in addCoveragePrefixMapArg()
718 static bool shouldEnableVectorizerAtOLevel(const ArgList &Args, bool isSlpVec) { in shouldEnableVectorizerAtOLevel() argument
719 if (Arg *A = Args.getLastArg(options::OPT_O_Group)) { in shouldEnableVectorizerAtOLevel()
749 static void addDashXForInput(const ArgList &Args, const InputInfo &Input, in addDashXForInput() argument
753 if (Args.hasArg(options::OPT_verify_pch) && Input.getType() == types::TY_PCH) in addDashXForInput()
757 if (Args.hasArg(options::OPT_rewrite_objc)) in addDashXForInput()
781 const ArgList &Args, SanitizerArgs &SanArgs, in addPGOAndCoverageFlags() argument
784 auto *PGOGenerateArg = Args.getLastArg(options::OPT_fprofile_generate, in addPGOAndCoverageFlags()
791 auto *CSPGOGenerateArg = Args.getLastArg(options::OPT_fcs_profile_generate, in addPGOAndCoverageFlags()
798 auto *ProfileGenerateArg = Args.getLastArg( in addPGOAndCoverageFlags()
811 auto *ProfileUseArg = getLastProfileUseArg(Args); in addPGOAndCoverageFlags()
831 if (Arg *ProfileSampleUseArg = getLastProfileSampleUseArg(Args)) in addPGOAndCoverageFlags()
839 CmdArgs.push_back(Args.MakeArgString(Twine("-fprofile-instrument-path=") + in addPGOAndCoverageFlags()
845 CmdArgs.push_back(Args.MakeArgString( in addPGOAndCoverageFlags()
846 "--dependent-lib=" + TC.getCompilerRTBasename(Args, "profile"))); in addPGOAndCoverageFlags()
864 CmdArgs.push_back(Args.MakeArgString( in addPGOAndCoverageFlags()
865 "--dependent-lib=" + TC.getCompilerRTBasename(Args, "profile"))); in addPGOAndCoverageFlags()
873 Args.MakeArgString(Twine("-fprofile-instrument-path=") + Path)); in addPGOAndCoverageFlags()
879 CmdArgs.push_back(Args.MakeArgString( in addPGOAndCoverageFlags()
890 Args.MakeArgString(Twine("-fprofile-instrument-use-path=") + Path)); in addPGOAndCoverageFlags()
894 bool EmitCovNotes = Args.hasFlag(options::OPT_ftest_coverage, in addPGOAndCoverageFlags()
896 Args.hasArg(options::OPT_coverage); in addPGOAndCoverageFlags()
897 bool EmitCovData = TC.needsGCovInstrumentation(Args); in addPGOAndCoverageFlags()
903 if (Args.hasFlag(options::OPT_fcoverage_mapping, in addPGOAndCoverageFlags()
913 if (Arg *A = Args.getLastArg(options::OPT_ffile_compilation_dir_EQ, in addPGOAndCoverageFlags()
916 CmdArgs.push_back(Args.MakeArgString( in addPGOAndCoverageFlags()
919 A->render(Args, CmdArgs); in addPGOAndCoverageFlags()
922 CmdArgs.push_back(Args.MakeArgString("-fcoverage-compilation-dir=" + *CWD)); in addPGOAndCoverageFlags()
925 if (Args.hasArg(options::OPT_fprofile_exclude_files_EQ)) { in addPGOAndCoverageFlags()
926 auto *Arg = Args.getLastArg(options::OPT_fprofile_exclude_files_EQ); in addPGOAndCoverageFlags()
927 if (!Args.hasArg(options::OPT_coverage)) in addPGOAndCoverageFlags()
934 Args.MakeArgString(Twine("-fprofile-exclude-files=" + v))); in addPGOAndCoverageFlags()
937 if (Args.hasArg(options::OPT_fprofile_filter_files_EQ)) { in addPGOAndCoverageFlags()
938 auto *Arg = Args.getLastArg(options::OPT_fprofile_filter_files_EQ); in addPGOAndCoverageFlags()
939 if (!Args.hasArg(options::OPT_coverage)) in addPGOAndCoverageFlags()
945 CmdArgs.push_back(Args.MakeArgString(Twine("-fprofile-filter-files=" + v))); in addPGOAndCoverageFlags()
948 if (const auto *A = Args.getLastArg(options::OPT_fprofile_update_EQ)) { in addPGOAndCoverageFlags()
961 if (const auto *A = Args.getLastArg(options::OPT_fprofile_function_groups)) { in addPGOAndCoverageFlags()
964 D.Diag(diag::err_drv_invalid_int_value) << A->getAsString(Args) << Val; in addPGOAndCoverageFlags()
967 Args.getLastArg(options::OPT_fprofile_selected_function_group)) { in addPGOAndCoverageFlags()
971 D.Diag(diag::err_drv_invalid_int_value) << A->getAsString(Args) << Val; in addPGOAndCoverageFlags()
974 CmdArgs.push_back(Args.MakeArgString("-fprofile-function-groups=" + in addPGOAndCoverageFlags()
977 CmdArgs.push_back(Args.MakeArgString("-fprofile-selected-function-group=" + in addPGOAndCoverageFlags()
985 if (Args.hasArg(options::OPT_fprofile_arcs) || in addPGOAndCoverageFlags()
986 Args.hasArg(options::OPT_coverage)) in addPGOAndCoverageFlags()
987 FProfileDir = Args.getLastArg(options::OPT_fprofile_dir); in addPGOAndCoverageFlags()
994 if ((Args.hasArg(options::OPT_c) || Args.hasArg(options::OPT_S)) && in addPGOAndCoverageFlags()
1009 CmdArgs.push_back(Args.MakeArgString(CoverageFilename)); in addPGOAndCoverageFlags()
1018 CmdArgs.push_back(Args.MakeArgString(CoverageFilename)); in addPGOAndCoverageFlags()
1033 static bool UseRelaxAll(Compilation &C, const ArgList &Args) { in UseRelaxAll() argument
1036 if (Arg *A = Args.getLastArg(options::OPT_O_Group)) in UseRelaxAll()
1049 return Args.hasFlag(options::OPT_mrelax_all, options::OPT_mno_relax_all, in UseRelaxAll()
1067 static const Arg *getDwarfNArg(const ArgList &Args) { in getDwarfNArg() argument
1068 return Args.getLastArg(options::OPT_gdwarf_2, options::OPT_gdwarf_3, in getDwarfNArg()
1073 static void RenderDebugEnablingArgs(const ArgList &Args, ArgStringList &CmdArgs, in RenderDebugEnablingArgs() argument
1101 Args.MakeArgString("-dwarf-version=" + Twine(DwarfVersion))); in RenderDebugEnablingArgs()
1120 static bool checkDebugInfoOption(const Arg *A, const ArgList &Args, in checkDebugInfoOption() argument
1126 << A->getAsString(Args) << TC.getTripleString(); in checkDebugInfoOption()
1130 static void RenderDebugInfoCompressionArgs(const ArgList &Args, in RenderDebugInfoCompressionArgs() argument
1134 const Arg *A = Args.getLastArg(options::OPT_gz_EQ); in RenderDebugInfoCompressionArgs()
1137 if (checkDebugInfoOption(A, Args, D, TC)) { in RenderDebugInfoCompressionArgs()
1144 Args.MakeArgString("--compress-debug-sections=" + Twine(Value))); in RenderDebugInfoCompressionArgs()
1173 const ArgList &Args, in handleAMDGPUCodeObjectVersionOptions() argument
1181 if (haveAMDGPUCodeObjectVersionArgument(D, Args)) { in handleAMDGPUCodeObjectVersionOptions()
1182 unsigned CodeObjVer = getAMDGPUCodeObjectVersion(D, Args); in handleAMDGPUCodeObjectVersionOptions()
1184 Args.MakeArgString(Twine("--amdhsa-code-object-version=") + in handleAMDGPUCodeObjectVersionOptions()
1190 Args.MakeArgString(Twine("-mcode-object-version=") + in handleAMDGPUCodeObjectVersionOptions()
1196 const Driver &D, const ArgList &Args, in AddPreprocessingOptions() argument
1202 CheckPreprocessingOptions(D, Args); in AddPreprocessingOptions()
1204 Args.AddLastArg(CmdArgs, options::OPT_C); in AddPreprocessingOptions()
1205 Args.AddLastArg(CmdArgs, options::OPT_CC); in AddPreprocessingOptions()
1208 Arg *ArgM = Args.getLastArg(options::OPT_MM); in AddPreprocessingOptions()
1210 ArgM = Args.getLastArg(options::OPT_M); in AddPreprocessingOptions()
1211 Arg *ArgMD = Args.getLastArg(options::OPT_MMD); in AddPreprocessingOptions()
1213 ArgMD = Args.getLastArg(options::OPT_MD); in AddPreprocessingOptions()
1224 if (Arg *MF = Args.getLastArg(options::OPT_MF)) { in AddPreprocessingOptions()
1232 DepFile = getDependencyFileName(Args, Inputs); in AddPreprocessingOptions()
1239 for (const Arg *A : Args.filtered(options::OPT_MT, options::OPT_MQ)) { in AddPreprocessingOptions()
1243 A->render(Args, CmdArgs); in AddPreprocessingOptions()
1248 CmdArgs.push_back(Args.MakeArgString(Quoted)); in AddPreprocessingOptions()
1258 Arg *OutputOpt = Args.getLastArg(options::OPT_o); in AddPreprocessingOptions()
1267 DepTarget = Args.MakeArgString(llvm::sys::path::filename(P)); in AddPreprocessingOptions()
1273 CmdArgs.push_back(Args.MakeArgString(Quoted)); in AddPreprocessingOptions()
1280 !Args.hasArg(options::OPT_fno_module_file_deps)) || in AddPreprocessingOptions()
1281 Args.hasArg(options::OPT_fmodule_file_deps)) in AddPreprocessingOptions()
1285 if (Args.hasArg(options::OPT_MG)) { in AddPreprocessingOptions()
1292 Args.AddLastArg(CmdArgs, options::OPT_MP); in AddPreprocessingOptions()
1293 Args.AddLastArg(CmdArgs, options::OPT_MV); in AddPreprocessingOptions()
1300 getToolChain().AddCudaIncludeArgs(Args, CmdArgs); in AddPreprocessingOptions()
1302 getToolChain().AddHIPIncludeArgs(Args, CmdArgs); in AddPreprocessingOptions()
1307 !Args.hasArg(options::OPT_nostdinc) && in AddPreprocessingOptions()
1310 if (!Args.hasArg(options::OPT_nobuiltininc)) { in AddPreprocessingOptions()
1317 CmdArgs.push_back(Args.MakeArgString(P)); in AddPreprocessingOptions()
1331 const Arg *YcArg = Args.getLastArg(options::OPT__SLASH_Yc); in AddPreprocessingOptions()
1332 const Arg *YuArg = Args.getLastArg(options::OPT__SLASH_Yu); in AddPreprocessingOptions()
1335 CmdArgs.push_back(Args.MakeArgString("-building-pch-with-obj")); in AddPreprocessingOptions()
1338 if (Args.hasFlag(options::OPT_fpch_instantiate_templates, in AddPreprocessingOptions()
1340 CmdArgs.push_back(Args.MakeArgString("-fpch-instantiate-templates")); in AddPreprocessingOptions()
1346 CmdArgs.push_back(Args.MakeArgString(D.GetClPchPath( in AddPreprocessingOptions()
1353 CmdArgs.push_back(Args.MakeArgString( in AddPreprocessingOptions()
1357 Args.MakeArgString(Twine("-pch-through-header=") + ThroughHeader)); in AddPreprocessingOptions()
1363 for (const Arg *A : Args.filtered(options::OPT_clang_i_Group)) { in AddPreprocessingOptions()
1390 CmdArgs.push_back(Args.MakeArgString(P)); in AddPreprocessingOptions()
1395 << A->getAsString(Args); in AddPreprocessingOptions()
1412 A->render(Args, CmdArgs); in AddPreprocessingOptions()
1415 Args.AddAllArgs(CmdArgs, in AddPreprocessingOptions()
1425 Args.AddAllArgValues(CmdArgs, options::OPT_Wp_COMMA, in AddPreprocessingOptions()
1429 if (Arg *A = Args.getLastArg(options::OPT_I_)) in AddPreprocessingOptions()
1430 D.Diag(diag::err_drv_I_dash_not_supported) << A->getAsString(Args); in AddPreprocessingOptions()
1436 if (!Args.hasArg(options::OPT_isysroot)) { in AddPreprocessingOptions()
1447 addDirectoryList(Args, CmdArgs, "-I", "CPATH"); in AddPreprocessingOptions()
1449 addDirectoryList(Args, CmdArgs, "-c-isystem", "C_INCLUDE_PATH"); in AddPreprocessingOptions()
1451 addDirectoryList(Args, CmdArgs, "-cxx-isystem", "CPLUS_INCLUDE_PATH"); in AddPreprocessingOptions()
1453 addDirectoryList(Args, CmdArgs, "-objc-isystem", "OBJC_INCLUDE_PATH"); in AddPreprocessingOptions()
1455 addDirectoryList(Args, CmdArgs, "-objcxx-isystem", "OBJCPLUS_INCLUDE_PATH"); in AddPreprocessingOptions()
1463 bool HasStdlibxxIsystem = Args.hasArg(options::OPT_stdlibxx_isystem); in AddPreprocessingOptions()
1466 [&Args, &CmdArgs, HasStdlibxxIsystem](const ToolChain &TC) { in AddPreprocessingOptions()
1467 HasStdlibxxIsystem ? TC.AddClangCXXStdlibIsystemArgs(Args, CmdArgs) in AddPreprocessingOptions()
1468 : TC.AddClangCXXStdlibIncludeArgs(Args, CmdArgs); in AddPreprocessingOptions()
1475 [&Args, &CmdArgs](const ToolChain &TC) { in AddPreprocessingOptions()
1476 TC.AddClangSystemIncludeArgs(Args, CmdArgs); in AddPreprocessingOptions()
1480 getToolChain().AddIAMCUIncludeArgs(Args, CmdArgs); in AddPreprocessingOptions()
1483 addMacroPrefixMapArg(D, Args, CmdArgs); in AddPreprocessingOptions()
1484 addCoveragePrefixMapArg(D, Args, CmdArgs); in AddPreprocessingOptions()
1486 Args.AddLastArg(CmdArgs, options::OPT_ffile_reproducible, in AddPreprocessingOptions()
1525 const ArgList &Args) { in hasMultipleInvocations() argument
1532 return Args.getAllArgValues(options::OPT_arch).size() > 1; in hasMultipleInvocations()
1535 static bool checkRemarksOptions(const Driver &D, const ArgList &Args, in checkRemarksOptions() argument
1540 bool hasMultipleInvocations = ::hasMultipleInvocations(Triple, Args); in checkRemarksOptions()
1542 Args.getLastArg(options::OPT_foptimization_record_file_EQ); in checkRemarksOptions()
1551 static void renderRemarksOptions(const ArgList &Args, ArgStringList &CmdArgs, in renderRemarksOptions() argument
1556 if (const Arg *A = Args.getLastArg(options::OPT_fsave_optimization_record_EQ)) in renderRemarksOptions()
1561 const Arg *A = Args.getLastArg(options::OPT_foptimization_record_file_EQ); in renderRemarksOptions()
1567 Args.getAllArgValues(options::OPT_arch).size() > 1; in renderRemarksOptions()
1571 if (Args.hasArg(options::OPT_c) || Args.hasArg(options::OPT_S)) { in renderRemarksOptions()
1572 if (Arg *FinalOutput = Args.getLastArg(options::OPT_o)) in renderRemarksOptions()
1619 CmdArgs.push_back(Args.MakeArgString(F)); in renderRemarksOptions()
1623 Args.getLastArg(options::OPT_foptimization_record_passes_EQ)) { in renderRemarksOptions()
1634 void AddAAPCSVolatileBitfieldArgs(const ArgList &Args, ArgStringList &CmdArgs) { in AddAAPCSVolatileBitfieldArgs() argument
1635 if (!Args.hasFlag(options::OPT_faapcs_bitfield_width, in AddAAPCSVolatileBitfieldArgs()
1639 if (Args.getLastArg(options::OPT_ForceAAPCSBitfieldLoad)) in AddAAPCSVolatileBitfieldArgs()
1645 const ArgList &Args, ArgStringList &CmdArgs) { in RenderARMABI() argument
1650 if (Arg *A = Args.getLastArg(options::OPT_mabi_EQ)) { in RenderARMABI()
1653 std::string CPU = getCPUName(D, Args, Triple, /*FromAs*/ false); in RenderARMABI()
1672 static void CollectARMPACBTIOptions(const ToolChain &TC, const ArgList &Args, in CollectARMPACBTIOptions() argument
1675 ? Args.getLastArg(options::OPT_msign_return_address_EQ, in CollectARMPACBTIOptions()
1677 : Args.getLastArg(options::OPT_mbranch_protection_EQ); in CollectARMPACBTIOptions()
1705 << "b-key" << A->getAsString(Args); in CollectARMPACBTIOptions()
1712 Args.MakeArgString(Twine("-msign-return-address=") + Scope)); in CollectARMPACBTIOptions()
1715 Args.MakeArgString(Twine("-msign-return-address-key=") + Key)); in CollectARMPACBTIOptions()
1720 void Clang::AddARMTargetArgs(const llvm::Triple &Triple, const ArgList &Args, in AddARMTargetArgs() argument
1722 RenderARMABI(getToolChain().getDriver(), Triple, Args, CmdArgs); in AddARMTargetArgs()
1725 arm::FloatABI ABI = arm::getARMFloatABI(getToolChain(), Args); in AddARMTargetArgs()
1744 if (Arg *A = Args.getLastArg(options::OPT_mglobal_merge, in AddARMTargetArgs()
1753 if (!Args.hasFlag(options::OPT_mimplicit_float, in AddARMTargetArgs()
1757 if (Args.getLastArg(options::OPT_mcmse)) in AddARMTargetArgs()
1760 AddAAPCSVolatileBitfieldArgs(Args, CmdArgs); in AddARMTargetArgs()
1763 CollectARMPACBTIOptions(getToolChain(), Args, CmdArgs, false /*isAArch64*/); in AddARMTargetArgs()
1769 const ArgList &Args, bool KernelOrKext, in RenderTargetOptions() argument
1774 getTargetFeatures(TC.getDriver(), EffectiveTriple, Args, CmdArgs, false); in RenderTargetOptions()
1786 AddARMTargetArgs(EffectiveTriple, Args, CmdArgs, KernelOrKext); in RenderTargetOptions()
1793 AddAArch64TargetArgs(Args, CmdArgs); in RenderTargetOptions()
1801 AddMIPSTargetArgs(Args, CmdArgs); in RenderTargetOptions()
1808 AddPPCTargetArgs(Args, CmdArgs); in RenderTargetOptions()
1813 AddRISCVTargetArgs(Args, CmdArgs); in RenderTargetOptions()
1819 AddSparcTargetArgs(Args, CmdArgs); in RenderTargetOptions()
1823 AddSystemZTargetArgs(Args, CmdArgs); in RenderTargetOptions()
1828 AddX86TargetArgs(Args, CmdArgs); in RenderTargetOptions()
1832 AddLanaiTargetArgs(Args, CmdArgs); in RenderTargetOptions()
1836 AddHexagonTargetArgs(Args, CmdArgs); in RenderTargetOptions()
1841 AddWebAssemblyTargetArgs(Args, CmdArgs); in RenderTargetOptions()
1845 AddVETargetArgs(Args, CmdArgs); in RenderTargetOptions()
1851 void RenderAArch64ABI(const llvm::Triple &Triple, const ArgList &Args, in RenderAArch64ABI() argument
1854 if (Arg *A = Args.getLastArg(options::OPT_mabi_EQ)) in RenderAArch64ABI()
1866 void Clang::AddAArch64TargetArgs(const ArgList &Args, in AddAArch64TargetArgs() argument
1870 if (!Args.hasFlag(options::OPT_mred_zone, options::OPT_mno_red_zone, true) || in AddAArch64TargetArgs()
1871 Args.hasArg(options::OPT_mkernel) || in AddAArch64TargetArgs()
1872 Args.hasArg(options::OPT_fapple_kext)) in AddAArch64TargetArgs()
1875 if (!Args.hasFlag(options::OPT_mimplicit_float, in AddAArch64TargetArgs()
1879 RenderAArch64ABI(Triple, Args, CmdArgs); in AddAArch64TargetArgs()
1882 if (Arg *A = Args.getLastArg(options::OPT_mglobal_merge, in AddAArch64TargetArgs()
1892 CollectARMPACBTIOptions(getToolChain(), Args, CmdArgs, true /*isAArch64*/); in AddAArch64TargetArgs()
1895 if (Arg *A = Args.getLastArg(options::OPT_msve_vector_bits_EQ)) { in AddAArch64TargetArgs()
1909 Args.MakeArgString("-mvscale-max=" + llvm::Twine(Bits / 128))); in AddAArch64TargetArgs()
1915 Args.MakeArgString("-mvscale-min=" + llvm::Twine(Bits / 128))); in AddAArch64TargetArgs()
1923 AddAAPCSVolatileBitfieldArgs(Args, CmdArgs); in AddAArch64TargetArgs()
1925 if (const Arg *A = Args.getLastArg(clang::driver::options::OPT_mtune_EQ)) { in AddAArch64TargetArgs()
1928 CmdArgs.push_back(Args.MakeArgString(llvm::sys::getHostCPUName())); in AddAArch64TargetArgs()
1936 void Clang::AddMIPSTargetArgs(const ArgList &Args, in AddMIPSTargetArgs() argument
1942 mips::getMipsCPUAndABI(Args, Triple, CPUName, ABIName); in AddMIPSTargetArgs()
1947 mips::FloatABI ABI = mips::getMipsFloatABI(D, Args, Triple); in AddMIPSTargetArgs()
1960 if (Arg *A = Args.getLastArg(options::OPT_mldc1_sdc1, in AddMIPSTargetArgs()
1968 if (Arg *A = Args.getLastArg(options::OPT_mcheck_zero_division, in AddMIPSTargetArgs()
1976 if (Args.getLastArg(options::OPT_mfix4300)) { in AddMIPSTargetArgs()
1981 if (Arg *A = Args.getLastArg(options::OPT_G)) { in AddMIPSTargetArgs()
1984 CmdArgs.push_back(Args.MakeArgString("-mips-ssection-threshold=" + v)); in AddMIPSTargetArgs()
1988 Arg *GPOpt = Args.getLastArg(options::OPT_mgpopt, options::OPT_mno_gpopt); in AddMIPSTargetArgs()
1990 Args.getLastArg(options::OPT_mabicalls, options::OPT_mno_abicalls); in AddMIPSTargetArgs()
2009 ParsePICArgs(getToolChain(), Args); in AddMIPSTargetArgs()
2020 Arg *LocalSData = Args.getLastArg(options::OPT_mlocal_sdata, in AddMIPSTargetArgs()
2022 Arg *ExternSData = Args.getLastArg(options::OPT_mextern_sdata, in AddMIPSTargetArgs()
2024 Arg *EmbeddedData = Args.getLastArg(options::OPT_membedded_data, in AddMIPSTargetArgs()
2062 if (Arg *A = Args.getLastArg(options::OPT_mcompact_branches_EQ)) { in AddMIPSTargetArgs()
2067 CmdArgs.push_back(Args.MakeArgString("-mips-compact-branches=" + Val)); in AddMIPSTargetArgs()
2075 if (Arg *A = Args.getLastArg(options::OPT_mrelax_pic_calls, in AddMIPSTargetArgs()
2084 void Clang::AddPPCTargetArgs(const ArgList &Args, in AddPPCTargetArgs() argument
2108 for (const Arg *A : Args.filtered(options::OPT_mabi_EQ)) { in AddPPCTargetArgs()
2124 ppc::getPPCFloatABI(getToolChain().getDriver(), Args); in AddPPCTargetArgs()
2144 static void SetRISCVSmallDataLimit(const ToolChain &TC, const ArgList &Args, in SetRISCVSmallDataLimit() argument
2151 if (Args.getLastArg(options::OPT_shared, options::OPT_fpic, in SetRISCVSmallDataLimit()
2155 if (Args.hasArg(options::OPT_G)) { in SetRISCVSmallDataLimit()
2158 } else if (Args.getLastArgValue(options::OPT_mcmodel_EQ) in SetRISCVSmallDataLimit()
2163 if (Args.hasArg(options::OPT_G)) { in SetRISCVSmallDataLimit()
2166 } else if (Arg *A = Args.getLastArg(options::OPT_G)) { in SetRISCVSmallDataLimit()
2174 void Clang::AddRISCVTargetArgs(const ArgList &Args, in AddRISCVTargetArgs() argument
2177 StringRef ABIName = riscv::getRISCVABI(Args, Triple); in AddRISCVTargetArgs()
2182 SetRISCVSmallDataLimit(getToolChain(), Args, CmdArgs); in AddRISCVTargetArgs()
2184 if (const Arg *A = Args.getLastArg(options::OPT_mtune_EQ)) { in AddRISCVTargetArgs()
2192 void Clang::AddSparcTargetArgs(const ArgList &Args, in AddSparcTargetArgs() argument
2195 sparc::getSparcFloatABI(getToolChain().getDriver(), Args); in AddSparcTargetArgs()
2209 if (const Arg *A = Args.getLastArg(clang::driver::options::OPT_mtune_EQ)) { in AddSparcTargetArgs()
2218 CmdArgs.push_back(Args.MakeArgString(TuneCPU)); in AddSparcTargetArgs()
2222 void Clang::AddSystemZTargetArgs(const ArgList &Args, in AddSystemZTargetArgs() argument
2224 if (const Arg *A = Args.getLastArg(options::OPT_mtune_EQ)) { in AddSystemZTargetArgs()
2227 CmdArgs.push_back(Args.MakeArgString(llvm::sys::getHostCPUName())); in AddSystemZTargetArgs()
2233 Args.hasFlag(options::OPT_mbackchain, options::OPT_mno_backchain, false); in AddSystemZTargetArgs()
2234 bool HasPackedStack = Args.hasFlag(options::OPT_mpacked_stack, in AddSystemZTargetArgs()
2237 systemz::getSystemZFloatABI(getToolChain().getDriver(), Args); in AddSystemZTargetArgs()
2256 void Clang::AddX86TargetArgs(const ArgList &Args, in AddX86TargetArgs() argument
2259 addX86AlignBranchArgs(D, Args, CmdArgs, /*IsLTO=*/false); in AddX86TargetArgs()
2261 if (!Args.hasFlag(options::OPT_mred_zone, options::OPT_mno_red_zone, true) || in AddX86TargetArgs()
2262 Args.hasArg(options::OPT_mkernel) || in AddX86TargetArgs()
2263 Args.hasArg(options::OPT_fapple_kext)) in AddX86TargetArgs()
2266 if (!Args.hasFlag(options::OPT_mtls_direct_seg_refs, in AddX86TargetArgs()
2272 bool NoImplicitFloat = (Args.hasArg(options::OPT_mkernel) || in AddX86TargetArgs()
2273 Args.hasArg(options::OPT_fapple_kext)); in AddX86TargetArgs()
2274 if (Arg *A = Args.getLastArg( in AddX86TargetArgs()
2284 if (Arg *A = Args.getLastArg(options::OPT_masm_EQ)) { in AddX86TargetArgs()
2288 CmdArgs.push_back(Args.MakeArgString("-x86-asm-syntax=" + Value)); in AddX86TargetArgs()
2289 CmdArgs.push_back(Args.MakeArgString("-inline-asm=" + Value)); in AddX86TargetArgs()
2299 if (Arg *A = Args.getLastArg(options::OPT_mskip_rax_setup, in AddX86TargetArgs()
2302 CmdArgs.push_back(Args.MakeArgString("-mskip-rax-setup")); in AddX86TargetArgs()
2305 if (Args.hasFlag(options::OPT_miamcu, options::OPT_mno_iamcu, false)) { in AddX86TargetArgs()
2315 if (!Args.hasArg(clang::driver::options::OPT_march_EQ) && in AddX86TargetArgs()
2320 if (const Arg *A = Args.getLastArg(clang::driver::options::OPT_mtune_EQ)) { in AddX86TargetArgs()
2333 CmdArgs.push_back(Args.MakeArgString(TuneCPU)); in AddX86TargetArgs()
2337 void Clang::AddHexagonTargetArgs(const ArgList &Args, in AddHexagonTargetArgs() argument
2342 if (auto G = toolchains::HexagonToolChain::getSmallDataThreshold(Args)) { in AddHexagonTargetArgs()
2344 CmdArgs.push_back(Args.MakeArgString("-hexagon-small-data-threshold=" + in AddHexagonTargetArgs()
2348 if (!Args.hasArg(options::OPT_fno_short_enums)) in AddHexagonTargetArgs()
2350 if (Args.getLastArg(options::OPT_mieee_rnd_near)) { in AddHexagonTargetArgs()
2358 void Clang::AddLanaiTargetArgs(const ArgList &Args, in AddLanaiTargetArgs() argument
2360 if (Arg *A = Args.getLastArg(options::OPT_mcpu_EQ)) { in AddLanaiTargetArgs()
2364 CmdArgs.push_back(Args.MakeArgString(CPUName)); in AddLanaiTargetArgs()
2366 if (Arg *A = Args.getLastArg(options::OPT_mregparm_EQ)) { in AddLanaiTargetArgs()
2381 void Clang::AddWebAssemblyTargetArgs(const ArgList &Args, in AddWebAssemblyTargetArgs() argument
2384 if (!Args.hasArg(options::OPT_fvisibility_EQ, in AddWebAssemblyTargetArgs()
2391 void Clang::AddVETargetArgs(const ArgList &Args, ArgStringList &CmdArgs) const { in AddVETargetArgs() argument
2399 const InputInfo &Input, const ArgList &Args) const { in DumpCompilationDatabase()
2431 if (!D.SysRoot.empty() && !Args.hasArg(options::OPT__sysroot_EQ)) { in DumpCompilationDatabase()
2438 for (auto &A: Args) { in DumpCompilationDatabase()
2456 A->render(Args, ASL); in DumpCompilationDatabase()
2467 const InputInfo &Input, const llvm::opt::ArgList &Args) const { in DumpCompilationDatabaseFragmentToDir()
2473 DumpCompilationDatabase(C, "", Target, Output, Input, Args); in DumpCompilationDatabaseFragmentToDir()
2497 DumpCompilationDatabase(C, "", Target, Output, Input, Args); in DumpCompilationDatabaseFragmentToDir()
2505 static void AddARMImplicitITArgs(const ArgList &Args, ArgStringList &CmdArgs, in AddARMImplicitITArgs() argument
2508 CmdArgs.push_back(Args.MakeArgString("-arm-implicit-it=" + Value)); in AddARMImplicitITArgs()
2512 const ArgList &Args, in CollectArgsForIntegratedAssembler() argument
2515 if (UseRelaxAll(C, Args)) in CollectArgsForIntegratedAssembler()
2522 if (Args.hasFlag(options::OPT_mincremental_linker_compatible, in CollectArgsForIntegratedAssembler()
2527 Args.AddLastArg(CmdArgs, options::OPT_femit_dwarf_unwind_EQ); in CollectArgsForIntegratedAssembler()
2544 Args.filtered(options::OPT_Wa_COMMA, options::OPT_Xassembler, in CollectArgsForIntegratedAssembler()
2673 RenderDebugEnablingArgs(Args, CmdArgs, in CollectArgsForIntegratedAssembler()
2719 AddARMImplicitITArgs(Args, CmdArgs, ImplicitIt); in CollectArgsForIntegratedAssembler()
2732 Args.AddLastArg(CmdArgs, options::OPT_fembed_bitcode_EQ); in CollectArgsForIntegratedAssembler()
2736 bool OFastEnabled, const ArgList &Args, in RenderFloatingPointOptions() argument
2764 TC.getDefaultDenormalModeForType(Args, JA); in RenderFloatingPointOptions()
2766 TC.getDefaultDenormalModeForType(Args, JA, &llvm::APFloat::IEEEsingle()); in RenderFloatingPointOptions()
2778 if (const Arg *A = Args.getLastArg(options::OPT_flimited_precision_EQ)) { in RenderFloatingPointOptions()
2783 for (const Arg *A : Args) { in RenderFloatingPointOptions()
2810 << Args.MakeArgString("-ffp-model=" + Val) in RenderFloatingPointOptions()
2821 << Args.MakeArgString("-ffp-model=" + FPModel) in RenderFloatingPointOptions()
2822 << Args.MakeArgString("-ffp-model=" + Val); in RenderFloatingPointOptions()
2870 << Args.MakeArgString("-ffp-exception-behavior=" + FPExceptionBehavior) in RenderFloatingPointOptions()
2881 << Args.MakeArgString("-ffp-exception-behavior=" + FPExceptionBehavior) in RenderFloatingPointOptions()
2903 << A->getAsString(Args) << A->getValue(); in RenderFloatingPointOptions()
2911 << A->getAsString(Args) << A->getValue(); in RenderFloatingPointOptions()
2945 << Args.MakeArgString("-ffp-exception-behavior=" + FPExceptionBehavior) in RenderFloatingPointOptions()
2946 << Args.MakeArgString("-ffp-exception-behavior=" + Val); in RenderFloatingPointOptions()
3059 : Args.MakeArgString(A->getSpelling() + A->getValue())); in RenderFloatingPointOptions()
3102 CmdArgs.push_back(Args.MakeArgString(ArgStr.str())); in RenderFloatingPointOptions()
3110 CmdArgs.push_back(Args.MakeArgString(ArgStr.str())); in RenderFloatingPointOptions()
3114 CmdArgs.push_back(Args.MakeArgString("-ffp-contract=" + FPContract)); in RenderFloatingPointOptions()
3117 CmdArgs.push_back(Args.MakeArgString("-fno-rounding-math")); in RenderFloatingPointOptions()
3120 CmdArgs.push_back(Args.MakeArgString("-frounding-math")); in RenderFloatingPointOptions()
3123 CmdArgs.push_back(Args.MakeArgString("-ffp-exception-behavior=" + in RenderFloatingPointOptions()
3127 CmdArgs.push_back(Args.MakeArgString("-ffp-eval-method=" + FPEvalMethod)); in RenderFloatingPointOptions()
3129 ParseMRecip(D, Args, CmdArgs); in RenderFloatingPointOptions()
3143 CmdArgs.push_back(Args.MakeArgString("-ffp-contract=fast")); in RenderFloatingPointOptions()
3147 << Args.MakeArgString("-ffp-contract=" + FPContract); in RenderFloatingPointOptions()
3155 if (const Arg *A = Args.getLastArg(options::OPT_mfpmath_EQ)) { in RenderFloatingPointOptions()
3161 if (Args.hasFlag(options::OPT_fno_strict_float_cast_overflow, in RenderFloatingPointOptions()
3166 static void RenderAnalyzerOptions(const ArgList &Args, ArgStringList &CmdArgs, in RenderAnalyzerOptions() argument
3170 if (!Args.hasArg(options::OPT__analyzer_no_default_checks)) { in RenderAnalyzerOptions()
3221 if (Arg *A = Args.getLastArg(options::OPT__analyzer_output)) in RenderAnalyzerOptions()
3232 Args.AddAllArgValues(CmdArgs, options::OPT_Xanalyzer); in RenderAnalyzerOptions()
3246 const ArgList &Args, ArgStringList &CmdArgs, in RenderSSPOptions() argument
3260 if (Arg *A = Args.getLastArg(options::OPT_fno_stack_protector, in RenderSSPOptions()
3277 CmdArgs.push_back(Args.MakeArgString(Twine(StackProtectorLevel))); in RenderSSPOptions()
3281 for (const Arg *A : Args.filtered(options::OPT__param)) { in RenderSSPOptions()
3287 CmdArgs.push_back(Args.MakeArgString(Str.drop_front(16))); in RenderSSPOptions()
3294 if (Arg *A = Args.getLastArg(options::OPT_mstack_protector_guard_EQ)) { in RenderSSPOptions()
3299 << A->getAsString(Args) << TripleStr; in RenderSSPOptions()
3309 if (!Args.hasArg(options::OPT_mstack_protector_guard_offset_EQ)) { in RenderSSPOptions()
3311 << A->getAsString(Args); in RenderSSPOptions()
3321 if (Arg *A = Args.getLastArg(options::OPT_mtp_mode_EQ)) { in RenderSSPOptions()
3325 << A->getAsString(Args) << "-mstack-protector-guard=tls"; in RenderSSPOptions()
3337 A->render(Args, CmdArgs); in RenderSSPOptions()
3340 if (Arg *A = Args.getLastArg(options::OPT_mstack_protector_guard_offset_EQ)) { in RenderSSPOptions()
3345 << A->getAsString(Args) << TripleStr; in RenderSSPOptions()
3357 A->render(Args, CmdArgs); in RenderSSPOptions()
3360 if (Arg *A = Args.getLastArg(options::OPT_mstack_protector_guard_reg_EQ)) { in RenderSSPOptions()
3364 << A->getAsString(Args) << TripleStr; in RenderSSPOptions()
3374 A->render(Args, CmdArgs); in RenderSSPOptions()
3377 if (Arg *A = Args.getLastArg(options::OPT_mstack_protector_guard_symbol_EQ)) { in RenderSSPOptions()
3384 A->render(Args, CmdArgs); in RenderSSPOptions()
3388 static void RenderSCPOptions(const ToolChain &TC, const ArgList &Args, in RenderSCPOptions() argument
3399 Args.addOptInFlag(CmdArgs, options::OPT_fstack_clash_protection, in RenderSCPOptions()
3405 const ArgList &Args, in RenderTrivialAutoVarInitOptions() argument
3410 for (const Arg *A : Args) { in RenderTrivialAutoVarInitOptions()
3440 if (TrivialAutoVarInit == "zero" && !Args.hasArg(options::OPT_enable_trivial_var_init_zero)) in RenderTrivialAutoVarInitOptions()
3443 Args.MakeArgString("-ftrivial-auto-var-init=" + TrivialAutoVarInit)); in RenderTrivialAutoVarInitOptions()
3447 Args.getLastArg(options::OPT_ftrivial_auto_var_init_stop_after)) { in RenderTrivialAutoVarInitOptions()
3448 if (!Args.hasArg(options::OPT_ftrivial_auto_var_init) || in RenderTrivialAutoVarInitOptions()
3450 Args.getLastArg(options::OPT_ftrivial_auto_var_init)->getValue()) == in RenderTrivialAutoVarInitOptions()
3458 Args.MakeArgString("-ftrivial-auto-var-init-stop-after=" + Val)); in RenderTrivialAutoVarInitOptions()
3462 static void RenderOpenCLOptions(const ArgList &Args, ArgStringList &CmdArgs, in RenderOpenCLOptions() argument
3480 if (Arg *A = Args.getLastArg(options::OPT_cl_std_EQ)) { in RenderOpenCLOptions()
3482 CmdArgs.push_back(Args.MakeArgString(CLStdStr)); in RenderOpenCLOptions()
3483 } else if (Arg *A = Args.getLastArg(options::OPT_cl_ext_EQ)) { in RenderOpenCLOptions()
3485 CmdArgs.push_back(Args.MakeArgString(CLExtStr)); in RenderOpenCLOptions()
3489 if (const auto *A = Args.getLastArg(Arg)) in RenderOpenCLOptions()
3490 CmdArgs.push_back(Args.MakeArgString(A->getOption().getPrefixedName())); in RenderOpenCLOptions()
3494 (Args.hasArg(options::OPT_cl_std_EQ) && types::isSrcFile(InputType))) && in RenderOpenCLOptions()
3495 !Args.hasArg(options::OPT_cl_no_stdinc)) { in RenderOpenCLOptions()
3501 static void RenderHLSLOptions(const ArgList &Args, ArgStringList &CmdArgs, in RenderHLSLOptions() argument
3512 if (const auto *A = Args.getLastArg(Arg)) in RenderHLSLOptions()
3513 A->renderAsInput(Args, CmdArgs); in RenderHLSLOptions()
3515 if (!Args.hasArg(options::OPT_dxc_no_stdinc)) in RenderHLSLOptions()
3520 static void RenderARCMigrateToolOptions(const Driver &D, const ArgList &Args, in RenderARCMigrateToolOptions() argument
3523 if (!Args.hasArg(options::OPT_fno_objc_arc, options::OPT_fobjc_arc)) { in RenderARCMigrateToolOptions()
3524 if (const Arg *A = Args.getLastArg(options::OPT_ccc_arcmt_check, in RenderARCMigrateToolOptions()
3541 Args.AddLastArg(CmdArgs, options::OPT_arcmt_migrate_report_output); in RenderARCMigrateToolOptions()
3542 Args.AddLastArg(CmdArgs, options::OPT_arcmt_migrate_emit_arc_errors); in RenderARCMigrateToolOptions()
3547 Args.ClaimAllArgs(options::OPT_ccc_arcmt_check); in RenderARCMigrateToolOptions()
3548 Args.ClaimAllArgs(options::OPT_ccc_arcmt_modify); in RenderARCMigrateToolOptions()
3549 Args.ClaimAllArgs(options::OPT_ccc_arcmt_migrate); in RenderARCMigrateToolOptions()
3552 if (const Arg *A = Args.getLastArg(options::OPT_ccc_objcmt_migrate)) { in RenderARCMigrateToolOptions()
3555 << A->getAsString(Args) << "-ccc-arcmt-migrate"; in RenderARCMigrateToolOptions()
3560 if (!Args.hasArg(options::OPT_objcmt_migrate_literals, in RenderARCMigrateToolOptions()
3568 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_literals); in RenderARCMigrateToolOptions()
3569 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_subscripting); in RenderARCMigrateToolOptions()
3570 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_property); in RenderARCMigrateToolOptions()
3573 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_literals); in RenderARCMigrateToolOptions()
3574 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_subscripting); in RenderARCMigrateToolOptions()
3575 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_property); in RenderARCMigrateToolOptions()
3576 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_all); in RenderARCMigrateToolOptions()
3577 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_readonly_property); in RenderARCMigrateToolOptions()
3578 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_readwrite_property); in RenderARCMigrateToolOptions()
3579 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_property_dot_syntax); in RenderARCMigrateToolOptions()
3580 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_annotation); in RenderARCMigrateToolOptions()
3581 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_instancetype); in RenderARCMigrateToolOptions()
3582 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_nsmacros); in RenderARCMigrateToolOptions()
3583 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_protocol_conformance); in RenderARCMigrateToolOptions()
3584 Args.AddLastArg(CmdArgs, options::OPT_objcmt_atomic_property); in RenderARCMigrateToolOptions()
3585 Args.AddLastArg(CmdArgs, options::OPT_objcmt_returns_innerpointer_property); in RenderARCMigrateToolOptions()
3586 Args.AddLastArg(CmdArgs, options::OPT_objcmt_ns_nonatomic_iosonly); in RenderARCMigrateToolOptions()
3587 Args.AddLastArg(CmdArgs, options::OPT_objcmt_migrate_designated_init); in RenderARCMigrateToolOptions()
3588 Args.AddLastArg(CmdArgs, options::OPT_objcmt_allowlist_dir_path); in RenderARCMigrateToolOptions()
3593 const ArgList &Args, ArgStringList &CmdArgs) { in RenderBuiltinOptions() argument
3596 Args.hasFlag(options::OPT_fbuiltin, options::OPT_fno_builtin, in RenderBuiltinOptions()
3597 !Args.hasArg(options::OPT_mkernel)); in RenderBuiltinOptions()
3602 if (Args.hasArg(options::OPT_ffreestanding)) in RenderBuiltinOptions()
3606 for (const Arg *A : Args.filtered(options::OPT_fno_builtin_)) { in RenderBuiltinOptions()
3612 A->render(Args, CmdArgs); in RenderBuiltinOptions()
3637 const ArgList &Args, const InputInfo &Input, in RenderModulesOptions() argument
3644 if (Args.hasFlag(options::OPT_fmodules, options::OPT_fno_modules, false)) { in RenderModulesOptions()
3645 bool AllowedInCXX = Args.hasFlag(options::OPT_fcxx_modules, in RenderModulesOptions()
3654 if (Args.hasArg(options::OPT_fmodules_ts)) { in RenderModulesOptions()
3661 if (Args.hasFlag(options::OPT_fimplicit_module_maps, in RenderModulesOptions()
3666 Args.addOptInFlag(CmdArgs, options::OPT_fmodules_decluse, in RenderModulesOptions()
3671 if (Args.hasFlag(options::OPT_fmodules_strict_decluse, in RenderModulesOptions()
3677 if (!Args.hasFlag(options::OPT_fimplicit_modules, in RenderModulesOptions()
3686 if (Arg *A = Args.getLastArg(options::OPT_fmodules_cache_path)) in RenderModulesOptions()
3706 CmdArgs.push_back(Args.MakeArgString(Path)); in RenderModulesOptions()
3712 for (const Arg *A : Args.filtered(options::OPT_fprebuilt_module_path)) { in RenderModulesOptions()
3713 CmdArgs.push_back(Args.MakeArgString( in RenderModulesOptions()
3717 if (Args.hasFlag(options::OPT_fprebuilt_implicit_modules, in RenderModulesOptions()
3720 if (Args.hasFlag(options::OPT_fmodules_validate_input_files_content, in RenderModulesOptions()
3728 Args.AddLastArg(CmdArgs, options::OPT_fmodule_name_EQ); in RenderModulesOptions()
3732 Args.AddAllArgs(CmdArgs, options::OPT_fmodule_map_file); in RenderModulesOptions()
3736 if (Args.hasArg(options::OPT_fbuiltin_module_map)) { in RenderModulesOptions()
3742 Args.MakeArgString("-fmodule-map-file=" + BuiltinModuleMap)); in RenderModulesOptions()
3750 Args.AddAllArgs(CmdArgs, options::OPT_fmodule_file); in RenderModulesOptions()
3752 Args.ClaimAllArgs(options::OPT_fmodule_file); in RenderModulesOptions()
3760 C.addTempFile(Args.MakeArgString(VFSDir)); in RenderModulesOptions()
3764 CmdArgs.push_back(Args.MakeArgString(VFSDir)); in RenderModulesOptions()
3768 Args.AddLastArg(CmdArgs, options::OPT_fmodules_user_build_path); in RenderModulesOptions()
3771 Args.AddAllArgs(CmdArgs, options::OPT_fmodules_ignore_macro); in RenderModulesOptions()
3772 Args.AddLastArg(CmdArgs, options::OPT_fmodules_prune_interval); in RenderModulesOptions()
3773 Args.AddLastArg(CmdArgs, options::OPT_fmodules_prune_after); in RenderModulesOptions()
3776 Args.AddLastArg(CmdArgs, options::OPT_fbuild_session_timestamp); in RenderModulesOptions()
3778 if (Arg *A = Args.getLastArg(options::OPT_fbuild_session_file)) { in RenderModulesOptions()
3779 if (Args.hasArg(options::OPT_fbuild_session_timestamp)) in RenderModulesOptions()
3781 << A->getAsString(Args) << "-fbuild-session-timestamp"; in RenderModulesOptions()
3786 CmdArgs.push_back(Args.MakeArgString( in RenderModulesOptions()
3793 if (Args.getLastArg( in RenderModulesOptions()
3795 if (!Args.getLastArg(options::OPT_fbuild_session_timestamp, in RenderModulesOptions()
3799 Args.AddLastArg(CmdArgs, in RenderModulesOptions()
3803 if (Args.hasFlag(options::OPT_fmodules_validate_system_headers, in RenderModulesOptions()
3808 Args.AddLastArg(CmdArgs, in RenderModulesOptions()
3811 Args.ClaimAllArgs(options::OPT_fbuild_session_timestamp); in RenderModulesOptions()
3812 Args.ClaimAllArgs(options::OPT_fbuild_session_file); in RenderModulesOptions()
3813 Args.ClaimAllArgs(options::OPT_fmodules_validate_once_per_build_session); in RenderModulesOptions()
3814 Args.ClaimAllArgs(options::OPT_fmodules_validate_system_headers); in RenderModulesOptions()
3815 Args.ClaimAllArgs(options::OPT_fno_modules_validate_system_headers); in RenderModulesOptions()
3816 Args.ClaimAllArgs(options::OPT_fmodules_disable_diagnostic_validation); in RenderModulesOptions()
3820 static void RenderCharacterOptions(const ArgList &Args, const llvm::Triple &T, in RenderCharacterOptions() argument
3823 if (const Arg *A = Args.getLastArg(options::OPT_fsigned_char, in RenderCharacterOptions()
3836 Args.AddLastArg(CmdArgs, options::OPT_fchar8__t, options::OPT_fno_char8__t); in RenderCharacterOptions()
3838 if (const Arg *A = Args.getLastArg(options::OPT_fshort_wchar, in RenderCharacterOptions()
3856 const llvm::Triple &T, const ArgList &Args, in RenderObjCOptions() argument
3865 if (!Args.hasFlag(options::OPT_fobjc_legacy_dispatch, in RenderObjCOptions()
3883 if (isObjCAutoRefCount(Args)) { in RenderObjCOptions()
3892 if (TC.GetCXXStdlibType(Args) == ToolChain::CST_Libcxx) in RenderObjCOptions()
3900 if (Args.hasFlag(options::OPT_fobjc_arc_exceptions, in RenderObjCOptions()
3908 if (Args.hasArg(options::OPT_fno_objc_arc)) { in RenderObjCOptions()
3909 Args.ClaimAllArgs(options::OPT_fobjc_arc_exceptions); in RenderObjCOptions()
3910 Args.ClaimAllArgs(options::OPT_fno_objc_arc_exceptions); in RenderObjCOptions()
3916 auto *Arg = Args.getLastArg( in RenderObjCOptions()
3933 Args.getLastArg(options::OPT_fobjc_weak, options::OPT_fno_objc_weak); in RenderObjCOptions()
3940 WeakArg->render(Args, CmdArgs); in RenderObjCOptions()
3944 if (Args.hasArg(options::OPT_fobjc_disable_direct_methods_for_testing)) in RenderObjCOptions()
3948 static void RenderDiagnosticsOptions(const Driver &D, const ArgList &Args, in RenderDiagnosticsOptions() argument
3953 if (const Arg *A = Args.getLastArg(options::OPT__SLASH_diagnostics_classic, in RenderDiagnosticsOptions()
3973 if (!Args.hasFlag(options::OPT_fcaret_diagnostics, in RenderDiagnosticsOptions()
3977 Args.addOptOutFlag(CmdArgs, options::OPT_fdiagnostics_fixit_info, in RenderDiagnosticsOptions()
3979 Args.addOptOutFlag(CmdArgs, options::OPT_fdiagnostics_show_option, in RenderDiagnosticsOptions()
3983 Args.getLastArg(options::OPT_fdiagnostics_show_category_EQ)) { in RenderDiagnosticsOptions()
3988 Args.addOptInFlag(CmdArgs, options::OPT_fdiagnostics_show_hotness, in RenderDiagnosticsOptions()
3992 Args.getLastArg(options::OPT_fdiagnostics_hotness_threshold_EQ)) { in RenderDiagnosticsOptions()
3995 CmdArgs.push_back(Args.MakeArgString(Opt)); in RenderDiagnosticsOptions()
3998 if (const Arg *A = Args.getLastArg(options::OPT_fdiagnostics_format_EQ)) { in RenderDiagnosticsOptions()
4006 if (const Arg *A = Args.getLastArg( in RenderDiagnosticsOptions()
4020 Args.getLastArg(options::OPT_fcolor_diagnostics, in RenderDiagnosticsOptions()
4022 if (const Arg *A = Args.getLastArg(options::OPT_fdiagnostics_color_EQ)) { in RenderDiagnosticsOptions()
4032 if (Args.hasArg(options::OPT_fansi_escape_codes)) in RenderDiagnosticsOptions()
4035 Args.addOptOutFlag(CmdArgs, options::OPT_fshow_source_location, in RenderDiagnosticsOptions()
4038 if (Args.hasArg(options::OPT_fdiagnostics_absolute_paths)) in RenderDiagnosticsOptions()
4041 if (!Args.hasFlag(options::OPT_fshow_column, options::OPT_fno_show_column, in RenderDiagnosticsOptions()
4045 Args.addOptOutFlag(CmdArgs, options::OPT_fspell_checking, in RenderDiagnosticsOptions()
4050 const ArgList &Args, Arg *&Arg) { in getDebugFissionKind() argument
4051 Arg = Args.getLastArg(options::OPT_gsplit_dwarf, options::OPT_gsplit_dwarf_EQ, in getDebugFissionKind()
4071 const ArgList &Args, ArgStringList &CmdArgs, in renderDwarfFormat() argument
4074 Args.getLastArg(options::OPT_gdwarf64, options::OPT_gdwarf32); in renderDwarfFormat()
4081 << DwarfFormatArg->getAsString(Args) << "DWARFv3 or greater"; in renderDwarfFormat()
4084 << DwarfFormatArg->getAsString(Args) << "64 bit architecture"; in renderDwarfFormat()
4087 << DwarfFormatArg->getAsString(Args) << "ELF platforms"; in renderDwarfFormat()
4090 DwarfFormatArg->render(Args, CmdArgs); in renderDwarfFormat()
4094 const llvm::Triple &T, const ArgList &Args, in renderDebugOptions() argument
4099 if (Args.hasFlag(options::OPT_fdebug_info_for_profiling, in renderDebugOptions()
4102 Args.getLastArg(options::OPT_fdebug_info_for_profiling), Args, D, TC)) in renderDebugOptions()
4117 Args.hasFlag(options::OPT_fsplit_dwarf_inlining, in renderDebugOptions()
4123 if (IRInput || Args.hasArg(options::OPT_g_Group)) { in renderDebugOptions()
4125 DwarfFission = getDebugFissionKind(D, Args, SplitDWARFArg); in renderDebugOptions()
4127 !checkDebugInfoOption(SplitDWARFArg, Args, D, TC)) { in renderDebugOptions()
4132 if (const Arg *A = Args.getLastArg(options::OPT_g_Group)) { in renderDebugOptions()
4136 if (checkDebugInfoOption(A, Args, D, TC) && in renderDebugOptions()
4153 Args.getLastArg(options::OPT_gTune_Group, options::OPT_ggdbN_Group)) { in renderDebugOptions()
4154 if (checkDebugInfoOption(A, Args, D, TC)) { in renderDebugOptions()
4167 const Arg *GDwarfN = getDwarfNArg(Args); in renderDebugOptions()
4170 if (checkDebugInfoOption(GDwarfN, Args, D, TC)) in renderDebugOptions()
4176 if (const Arg *A = Args.getLastArg(options::OPT_gcodeview)) { in renderDebugOptions()
4177 if (checkDebugInfoOption(A, Args, D, TC)) in renderDebugOptions()
4198 unsigned DefaultDWARFVersion = ParseDebugDefaultVersion(TC, Args); in renderDebugOptions()
4226 if (const Arg *A = Args.getLastArg(options::OPT_gstrict_dwarf)) in renderDebugOptions()
4227 (void)checkDebugInfoOption(A, Args, D, TC); in renderDebugOptions()
4228 if (Args.hasFlag(options::OPT_gstrict_dwarf, options::OPT_gno_strict_dwarf, in renderDebugOptions()
4233 Args.ClaimAllArgs(options::OPT_g_flags_Group); in renderDebugOptions()
4241 if (const Arg *A = Args.getLastArg(options::OPT_gcolumn_info)) in renderDebugOptions()
4242 (void)checkDebugInfoOption(A, Args, D, TC); in renderDebugOptions()
4243 if (!Args.hasFlag(options::OPT_gcolumn_info, options::OPT_gno_column_info, in renderDebugOptions()
4251 if (const Arg *A = Args.getLastArg(options::OPT_gmodules)) in renderDebugOptions()
4252 if (checkDebugInfoOption(A, Args, D, TC)) { in renderDebugOptions()
4269 bool NeedFullDebug = Args.hasFlag( in renderDebugOptions()
4273 if (const Arg *A = Args.getLastArg(options::OPT_fstandalone_debug)) in renderDebugOptions()
4274 (void)checkDebugInfoOption(A, Args, D, TC); in renderDebugOptions()
4278 if (Args.hasFlag(options::OPT_fno_eliminate_unused_debug_types, in renderDebugOptions()
4285 if (Args.hasFlag(options::OPT_gembed_source, options::OPT_gno_embed_source, in renderDebugOptions()
4291 const Arg *A = Args.getLastArg(options::OPT_gembed_source); in renderDebugOptions()
4294 << A->getAsString(Args) << "-gdwarf-5"; in renderDebugOptions()
4299 << A->getAsString(Args) << TC.getTripleString() << 5 in renderDebugOptions()
4301 else if (checkDebugInfoOption(A, Args, D, TC)) in renderDebugOptions()
4309 if (Args.hasFlag(options::OPT_gcodeview_ghash, in renderDebugOptions()
4316 if (Args.hasFlag(options::OPT_gno_inline_line_tables, in renderDebugOptions()
4322 if (willEmitRemarks(Args) && in renderDebugOptions()
4327 TC.adjustDebugInfoKind(DebugInfoKind, Args); in renderDebugOptions()
4329 RenderDebugEnablingArgs(Args, CmdArgs, DebugInfoKind, EffectiveDWARFVersion, in renderDebugOptions()
4333 if (Args.hasFlag(options::OPT_fdebug_macro, options::OPT_fno_debug_macro, in renderDebugOptions()
4335 if (checkDebugInfoOption(Args.getLastArg(options::OPT_fdebug_macro), Args, in renderDebugOptions()
4341 Args.getLastArg(options::OPT_ggnu_pubnames, options::OPT_gno_gnu_pubnames, in renderDebugOptions()
4344 (PubnamesArg && checkDebugInfoOption(PubnamesArg, Args, D, TC))) in renderDebugOptions()
4353 Args.getLastArg(options::OPT_gsimple_template_names, in renderDebugOptions()
4357 checkDebugInfoOption(SimpleTemplateNamesArg, Args, D, TC)) { in renderDebugOptions()
4365 if (Args.hasFlag(options::OPT_fdebug_ranges_base_address, in renderDebugOptions()
4374 if (const Arg *A = Args.getLastArg(options::OPT_gdwarf_aranges)) in renderDebugOptions()
4375 NeedAranges = checkDebugInfoOption(A, Args, D, TC) || NeedAranges; in renderDebugOptions()
4381 if (Args.hasFlag(options::OPT_fforce_dwarf_frame, in renderDebugOptions()
4385 if (Args.hasFlag(options::OPT_fdebug_types_section, in renderDebugOptions()
4389 << Args.getLastArg(options::OPT_fdebug_types_section) in renderDebugOptions()
4390 ->getAsString(Args) in renderDebugOptions()
4393 Args.getLastArg(options::OPT_fdebug_types_section), Args, D, in renderDebugOptions()
4403 if (!Args.hasFlag(options::OPT_fdwarf_directory_asm, in renderDebugOptions()
4418 renderDwarfFormat(D, T, Args, CmdArgs, EffectiveDWARFVersion); in renderDebugOptions()
4419 RenderDebugInfoCompressionArgs(Args, CmdArgs, D, TC); in renderDebugOptions()
4424 const ArgList &Args, const char *LinkingOutput) const { in ConstructJob() argument
4431 Args.hasArg(options::OPT_mkernel, options::OPT_fapple_kext); in ConstructJob()
4453 Args.hasFlag(options::OPT_fopenmp_new_driver, in ConstructJob()
4456 Args.hasFlag(options::OPT_offload_new_driver, in ConstructJob()
4460 Args.hasFlag(options::OPT_fgpu_rdc, options::OPT_fno_gpu_rdc, false); in ConstructJob()
4467 auto *ModuleNameArg = Args.getLastArg(options::OPT_fmodule_name_EQ); in ConstructJob()
4543 CmdArgs.push_back(Args.MakeArgString(TripleStr)); in ConstructJob()
4545 if (const Arg *MJ = Args.getLastArg(options::OPT_MJ)) { in ConstructJob()
4546 DumpCompilationDatabase(C, MJ->getValue(), TripleStr, Output, Input, Args); in ConstructJob()
4547 Args.ClaimAllArgs(options::OPT_MJ); in ConstructJob()
4549 Args.getLastArg(options::OPT_gen_cdb_fragment_path)) { in ConstructJob()
4551 TripleStr, Output, Input, Args); in ConstructJob()
4552 Args.ClaimAllArgs(options::OPT_gen_cdb_fragment_path); in ConstructJob()
4578 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4584 CmdArgs.push_back(Args.MakeArgString(NormalizedTriple)); in ConstructJob()
4587 if (Args.hasFlag(options::OPT_fsycl, options::OPT_fno_sycl, false)) { in ConstructJob()
4590 if (Arg *A = Args.getLastArg(options::OPT_sycl_std_EQ)) { in ConstructJob()
4591 A->render(Args, CmdArgs); in ConstructJob()
4605 CmdArgs.push_back(Args.MakeArgString(NormalizedTriple)); in ConstructJob()
4647 Args.ClaimAllArgs(options::OPT_mrelax_all); in ConstructJob()
4648 Args.ClaimAllArgs(options::OPT_mno_relax_all); in ConstructJob()
4649 Args.ClaimAllArgs(options::OPT_mincremental_linker_compatible); in ConstructJob()
4650 Args.ClaimAllArgs(options::OPT_mno_incremental_linker_compatible); in ConstructJob()
4656 Args.ClaimAllArgs(options::OPT_mimplicit_it_EQ); in ConstructJob()
4662 Args.ClaimAllArgs(options::OPT_Wa_COMMA); in ConstructJob()
4663 Args.ClaimAllArgs(options::OPT_Xassembler); in ConstructJob()
4664 Args.ClaimAllArgs(options::OPT_femit_dwarf_unwind_EQ); in ConstructJob()
4677 if (Args.hasArg(options::OPT_rewrite_objc) && in ConstructJob()
4678 !Args.hasArg(options::OPT_g_Group)) in ConstructJob()
4686 CollectArgsForIntegratedAssembler(C, Args, CmdArgs, D); in ConstructJob()
4689 (void)Args.hasArg(options::OPT_force__cpusubtype__ALL); in ConstructJob()
4707 if (Arg *ProductNameArg = Args.getLastArg(options::OPT_product_name_EQ)) in ConstructJob()
4708 ProductNameArg->render(Args, CmdArgs); in ConstructJob()
4720 if (Triple.isAMDGCN() && IsOpenMPDevice && Args.hasArg(options::OPT_S) && in ConstructJob()
4721 Args.hasArg(options::OPT_emit_llvm)) { in ConstructJob()
4729 Args.hasArg(options::OPT_interface_stub_version_EQ) in ConstructJob()
4730 ? Args.getLastArgValue(options::OPT_interface_stub_version_EQ) in ConstructJob()
4734 Args.MakeArgString(Twine("-interface-stub-version=") + ArgStr.str())); in ConstructJob()
4761 !Args.hasFlag(options::OPT_fopenmp_new_driver, in ConstructJob()
4763 !Args.hasFlag(options::OPT_offload_new_driver, in ConstructJob()
4767 << Args.getLastArg(options::OPT_foffload_lto, in ConstructJob()
4769 ->getAsString(Args) in ConstructJob()
4773 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
4780 if (const Arg *A = Args.getLastArg(options::OPT_fthinlto_index_EQ)) { in ConstructJob()
4782 D.Diag(diag::err_drv_arg_requires_bitcode_input) << A->getAsString(Args); in ConstructJob()
4783 Args.AddLastArg(CmdArgs, options::OPT_fthinlto_index_EQ); in ConstructJob()
4786 if (Args.getLastArg(options::OPT_fthin_link_bitcode_EQ)) in ConstructJob()
4787 Args.AddLastArg(CmdArgs, options::OPT_fthin_link_bitcode_EQ); in ConstructJob()
4789 if (Args.getLastArg(options::OPT_save_temps_EQ)) in ConstructJob()
4790 Args.AddLastArg(CmdArgs, options::OPT_save_temps_EQ); in ConstructJob()
4792 auto *MemProfArg = Args.getLastArg(options::OPT_fmemory_profile, in ConstructJob()
4797 MemProfArg->render(Args, CmdArgs); in ConstructJob()
4804 Args.AddLastArg(CmdArgs, options::OPT_fembed_bitcode_EQ); in ConstructJob()
4809 TC.addClangTargetOptions(Args, CmdArgs, JA.getOffloadingDeviceKind()); in ConstructJob()
4856 for (const auto &A : Args) in ConstructJob()
4861 Args.addOptOutFlag(CmdArgs, options::OPT_foptimize_sibling_calls, in ConstructJob()
4864 RenderFloatingPointOptions(TC, D, isOptimizationLevelFast(Args), Args, in ConstructJob()
4873 RenderARMABI(D, Triple, Args, CmdArgs); in ConstructJob()
4878 RenderAArch64ABI(Triple, Args, CmdArgs); in ConstructJob()
4883 if (const Arg *A = Args.getLastArg(options::OPT_O_Group)) { in ConstructJob()
4888 A->render(Args, CmdArgs); in ConstructJob()
4903 addDashXForInput(Args, II, CmdArgs); in ConstructJob()
4907 II.getInputArg().renderAsInput(Args, CmdArgs); in ConstructJob()
4937 if (Args.hasFlag(options::OPT_fdiscard_value_names, in ConstructJob()
4939 if (Args.hasArg(options::OPT_fdiscard_value_names) && in ConstructJob()
4951 CmdArgs.push_back(getBaseInputName(Args, Input)); in ConstructJob()
4955 if (Args.hasArg(options::OPT_static)) in ConstructJob()
4958 if (Args.hasArg(options::OPT_municode)) in ConstructJob()
4962 RenderAnalyzerOptions(Args, CmdArgs, Triple, Input); in ConstructJob()
4965 (isa<PreprocessJobAction>(JA) && Args.hasArg(options::OPT__analyze))) in ConstructJob()
4972 for (auto Arg : Args.filtered(options::OPT_Xclang)) in ConstructJob()
4978 for (auto Arg : Args.filtered(options::OPT_Xanalyzer)) in ConstructJob()
4986 CheckCodeGenerationOptions(D, Args); in ConstructJob()
4988 unsigned FunctionAlignment = ParseFunctionAlignment(TC, Args); in ConstructJob()
4992 CmdArgs.push_back(Args.MakeArgString(std::to_string(FunctionAlignment))); in ConstructJob()
4997 if (const Arg *A = Args.getLastArg(options::OPT_falign_loops_EQ)) { in ConstructJob()
5001 << A->getAsString(Args) << A->getValue(); in ConstructJob()
5004 << A->getAsString(Args) << A->getValue(); in ConstructJob()
5007 CmdArgs.push_back(Args.MakeArgString("-falign-loops=" + in ConstructJob()
5014 std::tie(RelocationModel, PICLevel, IsPIE) = ParsePICArgs(TC, Args); in ConstructJob()
5021 if (Args.hasArg(options::OPT_mcmse) && in ConstructJob()
5022 !Args.hasArg(options::OPT_fallow_unsupported)) { in ConstructJob()
5030 !Args.hasArg(options::OPT_fallow_unsupported)) in ConstructJob()
5052 if (Arg *A = Args.getLastArg(options::OPT_meabi)) { in ConstructJob()
5069 Arg *A = Args.getLastArg(options::OPT_fsemantic_interposition, in ConstructJob()
5078 A->render(Args, CmdArgs); in ConstructJob()
5086 if (Arg *A = Args.getLastArg(options::OPT_mthread_model)) { in ConstructJob()
5089 << A->getValue() << A->getAsString(Args); in ConstructJob()
5095 CmdArgs.push_back(Args.MakeArgString(Model)); in ConstructJob()
5099 Args.AddLastArg(CmdArgs, options::OPT_fveclib); in ConstructJob()
5101 if (Args.hasFlag(options::OPT_fmerge_all_constants, in ConstructJob()
5105 if (Args.hasFlag(options::OPT_fno_delete_null_pointer_checks, in ConstructJob()
5111 for (const Arg *A : Args.filtered(options::OPT_frewrite_map_file_EQ)) { in ConstructJob()
5116 A->render(Args, CmdArgs); in ConstructJob()
5121 if (Arg *A = Args.getLastArg(options::OPT_mabi_EQ_vec_extabi, in ConstructJob()
5132 if (Arg *A = Args.getLastArg(options::OPT_mabi_EQ_quadword_atomics)) { in ConstructJob()
5139 if (Arg *A = Args.getLastArg(options::OPT_mlong_double_128)) { in ConstructJob()
5147 if (Arg *A = Args.getLastArg(options::OPT_Wframe_larger_than_EQ)) { in ConstructJob()
5154 CmdArgs.push_back(Args.MakeArgString("-fwarn-stack-size=" + v)); in ConstructJob()
5158 Args.addOptOutFlag(CmdArgs, options::OPT_fjump_tables, in ConstructJob()
5160 Args.addOptInFlag(CmdArgs, options::OPT_fprofile_sample_accurate, in ConstructJob()
5162 Args.addOptOutFlag(CmdArgs, options::OPT_fpreserve_as_comments, in ConstructJob()
5165 if (Arg *A = Args.getLastArg(options::OPT_mregparm_EQ)) { in ConstructJob()
5170 if (Arg *A = Args.getLastArg(options::OPT_maix_struct_return, in ConstructJob()
5183 if (Arg *A = Args.getLastArg(options::OPT_fpcc_struct_return, in ConstructJob()
5196 if (Args.hasFlag(options::OPT_mrtd, options::OPT_mno_rtd, false)) in ConstructJob()
5199 if (Args.hasArg(options::OPT_fenable_matrix)) { in ConstructJob()
5207 getFramePointerKind(Args, RawTriple); in ConstructJob()
5223 Args.addOptOutFlag(CmdArgs, options::OPT_fzero_initialized_in_bss, in ConstructJob()
5226 bool OFastEnabled = isOptimizationLevelFast(Args); in ConstructJob()
5234 if (!Args.hasFlag(options::OPT_fstrict_aliasing, StrictAliasingAliasOption, in ConstructJob()
5237 if (!Args.hasFlag(options::OPT_fstruct_path_tbaa, in ConstructJob()
5240 Args.addOptInFlag(CmdArgs, options::OPT_fstrict_enums, in ConstructJob()
5242 Args.addOptOutFlag(CmdArgs, options::OPT_fstrict_return, in ConstructJob()
5244 Args.addOptInFlag(CmdArgs, options::OPT_fallow_editor_placeholders, in ConstructJob()
5246 Args.addOptInFlag(CmdArgs, options::OPT_fstrict_vtable_pointers, in ConstructJob()
5248 Args.addOptInFlag(CmdArgs, options::OPT_fforce_emit_vtables, in ConstructJob()
5250 Args.addOptOutFlag(CmdArgs, options::OPT_foptimize_sibling_calls, in ConstructJob()
5252 Args.addOptOutFlag(CmdArgs, options::OPT_fescaping_block_tail_calls, in ConstructJob()
5255 Args.AddLastArg(CmdArgs, options::OPT_ffine_grained_bitfield_accesses, in ConstructJob()
5258 Args.AddLastArg(CmdArgs, options::OPT_fexperimental_relative_cxx_abi_vtables, in ConstructJob()
5262 if (Args.hasFlag(options::OPT_fsplit_stack, options::OPT_fno_split_stack, in ConstructJob()
5267 if (Args.hasFlag(options::OPT_fprotect_parens, in ConstructJob()
5271 RenderFloatingPointOptions(TC, D, OFastEnabled, Args, CmdArgs, JA); in ConstructJob()
5273 if (Arg *A = Args.getLastArg(options::OPT_fextend_args_EQ)) { in ConstructJob()
5287 if (Arg *A = Args.getLastArg(options::OPT_mdouble_EQ)) { in ConstructJob()
5289 A->render(Args, CmdArgs); in ConstructJob()
5292 << A->getAsString(Args) << TripleStr; in ConstructJob()
5295 if (Arg *A = Args.getLastArg(options::OPT_LongDouble_Group)) { in ConstructJob()
5297 A->render(Args, CmdArgs); in ConstructJob()
5300 A->render(Args, CmdArgs); in ConstructJob()
5303 << A->getAsString(Args) << TripleStr; in ConstructJob()
5309 if (!Args.hasFlag(options::OPT_fverbose_asm, options::OPT_fno_verbose_asm, in ConstructJob()
5315 if (Arg *A = Args.getLastArg(options::OPT_fbinutils_version_EQ)) { in ConstructJob()
5319 A->render(Args, CmdArgs); in ConstructJob()
5323 A->render(Args, CmdArgs); in ConstructJob()
5334 if (Args.hasArg(options::OPT_fdebug_pass_structure)) { in ConstructJob()
5338 if (Args.hasArg(options::OPT_fdebug_pass_arguments)) { in ConstructJob()
5354 if (Args.hasFlag(options::OPT_mms_bitfields, options::OPT_mno_ms_bitfields, in ConstructJob()
5362 if (Arg *A = Args.getLastArg(options::OPT_fdirect_access_external_data, in ConstructJob()
5366 A->render(Args, CmdArgs); in ConstructJob()
5368 if (Args.hasFlag(options::OPT_fno_plt, options::OPT_fplt, false)) { in ConstructJob()
5376 Args.hasFlag(options::OPT_ffreestanding, options::OPT_fhosted, false) || in ConstructJob()
5381 Args.AddLastArg(CmdArgs, options::OPT_fno_knr_functions); in ConstructJob()
5386 auto SanitizeArgs = TC.getSanitizerArgs(Args); in ConstructJob()
5387 bool AsyncUnwindTables = Args.hasFlag( in ConstructJob()
5390 (TC.IsUnwindTablesDefault(Args) || SanitizeArgs.needsUnwindTables()) && in ConstructJob()
5392 bool UnwindTables = Args.hasFlag(options::OPT_funwind_tables, in ConstructJob()
5401 if (!Args.getLastArg(options::OPT_gpu_use_aux_triple_only) && in ConstructJob()
5409 CmdArgs.push_back(Args.MakeArgString(HostCPU)); in ConstructJob()
5415 TC.addClangTargetOptions(Args, CmdArgs, JA.getOffloadingDeviceKind()); in ConstructJob()
5417 if (Arg *A = Args.getLastArg(options::OPT_mcmodel_EQ)) { in ConstructJob()
5424 A->render(Args, CmdArgs); in ConstructJob()
5431 if (Arg *A = Args.getLastArg(options::OPT_mtls_size_EQ)) { in ConstructJob()
5441 Args.AddLastArg(CmdArgs, options::OPT_mtls_size_EQ); in ConstructJob()
5445 std::string CPU = getCPUName(D, Args, Triple, /*FromAs*/ false); in ConstructJob()
5448 CmdArgs.push_back(Args.MakeArgString(CPU)); in ConstructJob()
5451 RenderTargetOptions(Triple, Args, KernelOrKext, CmdArgs); in ConstructJob()
5476 AddClangCLArgs(Args, InputType, CmdArgs, &DebugInfoKind, &EmitCodeView); in ConstructJob()
5479 renderDebugOptions(TC, D, RawTriple, Args, EmitCodeView, in ConstructJob()
5484 if (Args.hasFlag(options::OPT_fjmc, options::OPT_fno_jmc, false)) { in ConstructJob()
5504 const char *SplitDWARFOut = SplitDebugName(JA, Args, Input, Output); in ConstructJob()
5514 if (Arg *A = Args.getLastArg(options::OPT_mlinker_version_EQ)) { in ConstructJob()
5521 if (!Args.hasArg(options::OPT_fallow_unsupported)) { in ConstructJob()
5525 if ((Unsupported = Args.getLastArg(options::OPT_fapple_kext)) || in ConstructJob()
5526 (Unsupported = Args.getLastArg(options::OPT_mkernel))) in ConstructJob()
5531 if ((Unsupported = Args.getLastArg(options::OPT_faltivec))) in ConstructJob()
5535 if ((Unsupported = Args.getLastArg(options::OPT_fno_altivec))) in ConstructJob()
5540 Args.AddAllArgs(CmdArgs, options::OPT_v); in ConstructJob()
5542 if (Args.getLastArg(options::OPT_H)) { in ConstructJob()
5546 Args.AddAllArgs(CmdArgs, options::OPT_fshow_skipped_includes); in ConstructJob()
5555 Args.AddLastArg(CmdArgs, options::OPT_P); in ConstructJob()
5556 Args.AddLastArg(CmdArgs, options::OPT_print_ivar_layout); in ConstructJob()
5572 if (Args.hasArg(options::OPT_fcrash_diagnostics_dir)) { in ConstructJob()
5573 StringRef Dir = Args.getLastArgValue(options::OPT_fcrash_diagnostics_dir); in ConstructJob()
5575 CmdArgs.push_back(Args.MakeArgString("-crash-diagnostics-dir=" + Dir)); in ConstructJob()
5580 if (Args.hasFlag(options::OPT_ffunction_sections, in ConstructJob()
5585 if (Arg *A = Args.getLastArg(options::OPT_fbasic_block_sections_EQ)) { in ConstructJob()
5591 << A->getAsString(Args) << A->getValue(); in ConstructJob()
5593 A->render(Args, CmdArgs); in ConstructJob()
5601 << A->getAsString(Args) << TripleStr; in ConstructJob()
5606 if (Args.hasFlag(options::OPT_fdata_sections, options::OPT_fno_data_sections, in ConstructJob()
5611 Args.addOptOutFlag(CmdArgs, options::OPT_funique_section_names, in ConstructJob()
5613 Args.addOptInFlag(CmdArgs, options::OPT_funique_internal_linkage_names, in ConstructJob()
5615 Args.addOptInFlag(CmdArgs, options::OPT_funique_basic_block_section_names, in ConstructJob()
5618 if (Arg *A = Args.getLastArg(options::OPT_fsplit_machine_functions, in ConstructJob()
5623 A->render(Args, CmdArgs); in ConstructJob()
5626 << A->getAsString(Args) << TripleStr; in ConstructJob()
5630 Args.AddLastArg(CmdArgs, options::OPT_finstrument_functions, in ConstructJob()
5638 addPGOAndCoverageFlags(TC, C, D, Output, Args, SanitizeArgs, CmdArgs); in ConstructJob()
5640 Args.AddLastArg(CmdArgs, options::OPT_fclang_abi_compat_EQ); in ConstructJob()
5644 !Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs)) { in ConstructJob()
5645 PScpu::addProfileRTArgs(TC, Args, CmdArgs); in ConstructJob()
5646 PScpu::addSanitizerArgs(TC, Args, CmdArgs); in ConstructJob()
5650 if (Args.hasArg(options::OPT_nostdinc)) { in ConstructJob()
5654 if (Args.hasArg(options::OPT_nostdlibinc)) in ConstructJob()
5656 Args.AddLastArg(CmdArgs, options::OPT_nostdincxx); in ConstructJob()
5657 Args.AddLastArg(CmdArgs, options::OPT_nobuiltininc); in ConstructJob()
5664 Args.AddLastArg(CmdArgs, options::OPT_working_directory); in ConstructJob()
5666 RenderARCMigrateToolOptions(D, Args, CmdArgs); in ConstructJob()
5673 AddPreprocessingOptions(C, JA, D, Args, CmdArgs, Output, Inputs); in ConstructJob()
5679 Args.ClaimAllArgs(options::OPT_D); in ConstructJob()
5682 if (Arg *A = Args.getLastArg(options::OPT_O_Group)) { in ConstructJob()
5687 A->render(Args, CmdArgs); in ConstructJob()
5693 Args.filtered(options::OPT_clang_ignored_gcc_optimization_f_Group)) { in ConstructJob()
5694 D.Diag(diag::warn_ignored_gcc_optimization) << A->getAsString(Args); in ConstructJob()
5699 Args.filtered(options::OPT_clang_ignored_legacy_options_Group)) { in ConstructJob()
5700 D.Diag(diag::warn_ignored_clang_option) << A->getAsString(Args); in ConstructJob()
5704 claimNoWarnArgs(Args); in ConstructJob()
5706 Args.AddAllArgs(CmdArgs, options::OPT_R_Group); in ConstructJob()
5709 Args.filtered(options::OPT_W_Group, options::OPT__SLASH_wd)) { in ConstructJob()
5715 << A->getAsString(Args) << A->getValue(); in ConstructJob()
5720 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
5725 A->render(Args, CmdArgs); in ConstructJob()
5728 if (Args.hasFlag(options::OPT_pedantic, options::OPT_no_pedantic, false)) in ConstructJob()
5730 Args.AddLastArg(CmdArgs, options::OPT_pedantic_errors); in ConstructJob()
5731 Args.AddLastArg(CmdArgs, options::OPT_w); in ConstructJob()
5734 if (Args.hasFlag(options::OPT_ffixed_point, options::OPT_fno_fixed_point, in ConstructJob()
5736 Args.AddLastArg(CmdArgs, options::OPT_ffixed_point); in ConstructJob()
5738 if (Arg *A = Args.getLastArg(options::OPT_fcxx_abi_EQ)) in ConstructJob()
5739 A->render(Args, CmdArgs); in ConstructJob()
5741 Args.AddLastArg(CmdArgs, options::OPT_fexperimental_relative_cxx_abi_vtables, in ConstructJob()
5744 if (Arg *A = Args.getLastArg(options::OPT_ffuchsia_api_level_EQ)) in ConstructJob()
5745 A->render(Args, CmdArgs); in ConstructJob()
5754 const Arg *Std = Args.getLastArg(options::OPT_std_EQ, options::OPT_ansi); in ConstructJob()
5762 Std->render(Args, CmdArgs); in ConstructJob()
5765 if (Arg *A = Args.getLastArg(options::OPT_std_EQ, options::OPT_ansi, in ConstructJob()
5769 A->render(Args, CmdArgs); in ConstructJob()
5778 if (!Args.hasArg(options::OPT__SLASH_std)) { in ConstructJob()
5779 Args.AddAllArgsTranslated(CmdArgs, options::OPT_std_default_EQ, "-std=", in ConstructJob()
5787 Args.AddLastArg(CmdArgs, options::OPT_ftrigraphs, in ConstructJob()
5809 Args.getLastArg(options::OPT_Wwrite_strings, in ConstructJob()
5820 Args.hasFlag(options::OPT_Wdeprecated, options::OPT_Wno_deprecated, in ConstructJob()
5826 if (Arg *Asm = Args.getLastArg(options::OPT_fasm, options::OPT_fno_asm)) { in ConstructJob()
5833 if (!ShouldEnableAutolink(Args, TC, JA)) in ConstructJob()
5838 addDebugCompDirArg(Args, CmdArgs, D.getVFS()); in ConstructJob()
5840 addDebugPrefixMapArg(D, TC, Args, CmdArgs); in ConstructJob()
5842 if (Arg *A = Args.getLastArg(options::OPT_ftemplate_depth_, in ConstructJob()
5848 if (Arg *A = Args.getLastArg(options::OPT_foperator_arrow_depth_EQ)) { in ConstructJob()
5853 if (Arg *A = Args.getLastArg(options::OPT_fconstexpr_depth_EQ)) { in ConstructJob()
5858 if (Arg *A = Args.getLastArg(options::OPT_fconstexpr_steps_EQ)) { in ConstructJob()
5863 Args.AddLastArg(CmdArgs, options::OPT_fexperimental_library); in ConstructJob()
5865 if (Args.hasArg(options::OPT_fexperimental_new_constant_interpreter)) in ConstructJob()
5868 if (Arg *A = Args.getLastArg(options::OPT_fbracket_depth_EQ)) { in ConstructJob()
5873 if (Arg *A = Args.getLastArg(options::OPT_Wlarge_by_value_copy_EQ, in ConstructJob()
5877 CmdArgs.push_back(Args.MakeArgString("-Wlarge-by-value-copy=" + bytes)); in ConstructJob()
5882 if (Args.hasArg(options::OPT_relocatable_pch)) in ConstructJob()
5885 if (const Arg *A = Args.getLastArg(options::OPT_fcf_runtime_abi_EQ)) { in ConstructJob()
5893 A->render(Args, CmdArgs); in ConstructJob()
5896 if (Arg *A = Args.getLastArg(options::OPT_fconstant_string_class_EQ)) { in ConstructJob()
5901 if (Arg *A = Args.getLastArg(options::OPT_ftabstop_EQ)) { in ConstructJob()
5906 if (Args.hasFlag(options::OPT_fstack_size_section, in ConstructJob()
5910 if (Args.hasArg(options::OPT_fstack_usage)) { in ConstructJob()
5913 if (Arg *OutputOpt = Args.getLastArg(options::OPT_o)) { in ConstructJob()
5916 CmdArgs.push_back(Args.MakeArgString(OutputFilename)); in ConstructJob()
5919 Args.MakeArgString(Twine(getBaseInputStem(Args, Inputs)) + ".su")); in ConstructJob()
5923 if (Arg *A = Args.getLastArg(options::OPT_ferror_limit_EQ)) in ConstructJob()
5928 if (Arg *A = Args.getLastArg(options::OPT_fmacro_backtrace_limit_EQ)) { in ConstructJob()
5933 if (Arg *A = Args.getLastArg(options::OPT_ftemplate_backtrace_limit_EQ)) { in ConstructJob()
5938 if (Arg *A = Args.getLastArg(options::OPT_fconstexpr_backtrace_limit_EQ)) { in ConstructJob()
5943 if (Arg *A = Args.getLastArg(options::OPT_fspell_checking_limit_EQ)) { in ConstructJob()
5950 if (Arg *A = Args.getLastArg(options::OPT_fmessage_length_EQ)) { in ConstructJob()
5962 Args.MakeArgString("-fmessage-length=" + Twine(MessageLength))); in ConstructJob()
5964 if (Arg *A = Args.getLastArg(options::OPT_frandomize_layout_seed_EQ)) in ConstructJob()
5966 Args.MakeArgString("-frandomize-layout-seed=" + Twine(A->getValue(0)))); in ConstructJob()
5968 if (Arg *A = Args.getLastArg(options::OPT_frandomize_layout_seed_file_EQ)) in ConstructJob()
5969 CmdArgs.push_back(Args.MakeArgString("-frandomize-layout-seed-file=" + in ConstructJob()
5973 if (const Arg *A = Args.getLastArg(options::OPT_fvisibility_EQ, in ConstructJob()
5995 Args.getLastArg(options::OPT_fvisibility_from_dllstorageclass, in ConstructJob()
6000 Args.AddLastArg(CmdArgs, options::OPT_fvisibility_dllexport_EQ); in ConstructJob()
6001 Args.AddLastArg(CmdArgs, options::OPT_fvisibility_nodllstorageclass_EQ); in ConstructJob()
6002 Args.AddLastArg(CmdArgs, options::OPT_fvisibility_externs_dllimport_EQ); in ConstructJob()
6003 Args.AddLastArg(CmdArgs, in ConstructJob()
6008 if (const Arg *A = Args.getLastArg(options::OPT_mignore_xcoff_visibility)) { in ConstructJob()
6013 << A->getAsString(Args) << TripleStr; in ConstructJob()
6017 Args.getLastArg(options::OPT_mdefault_visibility_export_mapping_EQ)) { in ConstructJob()
6019 A->render(Args, CmdArgs); in ConstructJob()
6022 << A->getAsString(Args) << TripleStr; in ConstructJob()
6025 if (Args.hasFlag(options::OPT_fvisibility_inlines_hidden, in ConstructJob()
6029 Args.AddLastArg(CmdArgs, options::OPT_fvisibility_inlines_hidden_static_local_var, in ConstructJob()
6031 Args.AddLastArg(CmdArgs, options::OPT_fvisibility_global_new_delete_hidden); in ConstructJob()
6032 Args.AddLastArg(CmdArgs, options::OPT_ftlsmodel_EQ); in ConstructJob()
6034 if (Args.hasFlag(options::OPT_fnew_infallible, in ConstructJob()
6038 if (Args.hasFlag(options::OPT_fno_operator_names, in ConstructJob()
6043 Args.AddLastArg(CmdArgs, options::OPT_femit_all_decls); in ConstructJob()
6044 Args.AddLastArg(CmdArgs, options::OPT_fheinous_gnu_extensions); in ConstructJob()
6045 Args.AddLastArg(CmdArgs, options::OPT_fdigraphs, options::OPT_fno_digraphs); in ConstructJob()
6046 Args.AddLastArg(CmdArgs, options::OPT_femulated_tls, in ConstructJob()
6048 Args.AddLastArg(CmdArgs, options::OPT_fzero_call_used_regs_EQ); in ConstructJob()
6050 if (Arg *A = Args.getLastArg(options::OPT_fzero_call_used_regs_EQ)) { in ConstructJob()
6056 << A->getAsString(Args) << TripleStr; in ConstructJob()
6061 Args.AddLastArg(CmdArgs, options::OPT_fzvector); in ConstructJob()
6063 Args.AddLastArg(CmdArgs, options::OPT_fdiagnostics_show_template_tree); in ConstructJob()
6064 Args.AddLastArg(CmdArgs, options::OPT_fno_elide_type); in ConstructJob()
6068 if (Args.hasFlag(options::OPT_fopenmp, options::OPT_fopenmp_EQ, in ConstructJob()
6072 switch (D.getOpenMPRuntime(Args)) { in ConstructJob()
6081 if (!Args.hasFlag(options::OPT_fopenmp_use_tls, in ConstructJob()
6084 Args.AddLastArg(CmdArgs, options::OPT_fopenmp_simd, in ConstructJob()
6086 Args.AddAllArgs(CmdArgs, options::OPT_fopenmp_enable_irbuilder); in ConstructJob()
6087 Args.AddAllArgs(CmdArgs, options::OPT_fopenmp_version_EQ); in ConstructJob()
6088 if (!Args.hasFlag(options::OPT_fopenmp_extensions, in ConstructJob()
6091 Args.AddAllArgs(CmdArgs, options::OPT_fopenmp_cuda_number_of_sm_EQ); in ConstructJob()
6092 Args.AddAllArgs(CmdArgs, options::OPT_fopenmp_cuda_blocks_per_sm_EQ); in ConstructJob()
6093 Args.AddAllArgs(CmdArgs, in ConstructJob()
6095 if (Args.hasFlag(options::OPT_fopenmp_optimistic_collapse, in ConstructJob()
6102 if (Args.hasFlag(options::OPT_fopenmp_cuda_mode, in ConstructJob()
6107 Args.AddAllArgs(CmdArgs, options::OPT_fopenmp_target_debug_EQ); in ConstructJob()
6108 if (Args.hasFlag(options::OPT_fopenmp_target_debug, in ConstructJob()
6114 if (Args.hasFlag(options::OPT_fopenmp_cuda_force_full_runtime, in ConstructJob()
6121 if (Args.hasFlag(options::OPT_fopenmp_assume_teams_oversubscription, in ConstructJob()
6125 if (Args.hasFlag(options::OPT_fopenmp_assume_threads_oversubscription, in ConstructJob()
6129 if (Args.hasArg(options::OPT_fopenmp_assume_no_thread_state)) in ConstructJob()
6131 if (Args.hasArg(options::OPT_fopenmp_offload_mandatory)) in ConstructJob()
6144 Args.AddLastArg(CmdArgs, options::OPT_fopenmp_simd, in ConstructJob()
6146 Args.AddAllArgs(CmdArgs, options::OPT_fopenmp_version_EQ); in ConstructJob()
6147 Args.addOptOutFlag(CmdArgs, options::OPT_fopenmp_extensions, in ConstructJob()
6152 if (Args.hasArg(options::OPT_offload_new_driver)) in ConstructJob()
6155 SanitizeArgs.addArgs(TC, Args, CmdArgs, InputType); in ConstructJob()
6158 XRay.addArgs(TC, Args, CmdArgs, InputType); in ConstructJob()
6161 Args.getAllArgValues(options::OPT_fprofile_list_EQ)) { in ConstructJob()
6163 CmdArgs.push_back(Args.MakeArgString("-fprofile-list=" + Filename)); in ConstructJob()
6168 if (Arg *A = Args.getLastArg(options::OPT_fpatchable_function_entry_EQ)) { in ConstructJob()
6173 << A->getAsString(Args) << TripleStr; in ConstructJob()
6182 CmdArgs.push_back(Args.MakeArgString(A->getSpelling() + Twine(Size))); in ConstructJob()
6183 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
6188 Args.AddLastArg(CmdArgs, options::OPT_fms_hotpatch); in ConstructJob()
6191 Args.AddLastArg(CmdArgs, options::OPT_pg); in ConstructJob()
6194 if (Arg *A = Args.getLastArg(options::OPT_mfentry)) { in ConstructJob()
6196 A->render(Args, CmdArgs); in ConstructJob()
6199 << A->getAsString(Args) << TripleStr; in ConstructJob()
6201 if (Arg *A = Args.getLastArg(options::OPT_mnop_mcount)) { in ConstructJob()
6203 A->render(Args, CmdArgs); in ConstructJob()
6206 << A->getAsString(Args) << TripleStr; in ConstructJob()
6208 if (Arg *A = Args.getLastArg(options::OPT_mrecord_mcount)) { in ConstructJob()
6210 A->render(Args, CmdArgs); in ConstructJob()
6213 << A->getAsString(Args) << TripleStr; in ConstructJob()
6217 if (Args.getLastArg(options::OPT_fapple_kext) || in ConstructJob()
6218 (Args.hasArg(options::OPT_mkernel) && types::isCXX(InputType))) in ConstructJob()
6221 Args.AddLastArg(CmdArgs, options::OPT_altivec_src_compat); in ConstructJob()
6222 Args.AddLastArg(CmdArgs, options::OPT_flax_vector_conversions_EQ); in ConstructJob()
6223 Args.AddLastArg(CmdArgs, options::OPT_fobjc_sender_dependent_dispatch); in ConstructJob()
6224 Args.AddLastArg(CmdArgs, options::OPT_fdiagnostics_print_source_range_info); in ConstructJob()
6225 Args.AddLastArg(CmdArgs, options::OPT_fdiagnostics_parseable_fixits); in ConstructJob()
6226 Args.AddLastArg(CmdArgs, options::OPT_ftime_report); in ConstructJob()
6227 Args.AddLastArg(CmdArgs, options::OPT_ftime_report_EQ); in ConstructJob()
6228 Args.AddLastArg(CmdArgs, options::OPT_ftime_trace); in ConstructJob()
6229 Args.AddLastArg(CmdArgs, options::OPT_ftime_trace_granularity_EQ); in ConstructJob()
6230 Args.AddLastArg(CmdArgs, options::OPT_ftime_trace_EQ); in ConstructJob()
6231 Args.AddLastArg(CmdArgs, options::OPT_ftrapv); in ConstructJob()
6232 Args.AddLastArg(CmdArgs, options::OPT_malign_double); in ConstructJob()
6233 Args.AddLastArg(CmdArgs, options::OPT_fno_temp_file); in ConstructJob()
6235 if (Arg *A = Args.getLastArg(options::OPT_ftrapv_handler_EQ)) { in ConstructJob()
6240 Args.AddLastArg(CmdArgs, options::OPT_ftrap_function_EQ); in ConstructJob()
6244 if (Arg *A = Args.getLastArg(options::OPT_fwrapv, options::OPT_fno_wrapv)) { in ConstructJob()
6247 } else if (Arg *A = Args.getLastArg(options::OPT_fstrict_overflow, in ConstructJob()
6253 if (Arg *A = Args.getLastArg(options::OPT_freroll_loops, in ConstructJob()
6258 Args.AddLastArg(CmdArgs, options::OPT_ffinite_loops, in ConstructJob()
6261 Args.AddLastArg(CmdArgs, options::OPT_fwritable_strings); in ConstructJob()
6262 Args.AddLastArg(CmdArgs, options::OPT_funroll_loops, in ConstructJob()
6265 Args.AddLastArg(CmdArgs, options::OPT_fstrict_flex_arrays_EQ); in ConstructJob()
6267 Args.AddLastArg(CmdArgs, options::OPT_pthread); in ConstructJob()
6269 if (Args.hasFlag(options::OPT_mspeculative_load_hardening, in ConstructJob()
6271 CmdArgs.push_back(Args.MakeArgString("-mspeculative-load-hardening")); in ConstructJob()
6273 RenderSSPOptions(D, TC, Args, CmdArgs, KernelOrKext); in ConstructJob()
6274 RenderSCPOptions(TC, Args, CmdArgs); in ConstructJob()
6275 RenderTrivialAutoVarInitOptions(D, TC, Args, CmdArgs); in ConstructJob()
6277 Args.AddLastArg(CmdArgs, options::OPT_fswift_async_fp_EQ); in ConstructJob()
6280 if (Args.hasFlag(options::OPT_mstackrealign, options::OPT_mno_stackrealign, in ConstructJob()
6282 CmdArgs.push_back(Args.MakeArgString("-mstackrealign")); in ConstructJob()
6284 if (Args.hasArg(options::OPT_mstack_alignment)) { in ConstructJob()
6285 StringRef alignment = Args.getLastArgValue(options::OPT_mstack_alignment); in ConstructJob()
6286 CmdArgs.push_back(Args.MakeArgString("-mstack-alignment=" + alignment)); in ConstructJob()
6289 if (Args.hasArg(options::OPT_mstack_probe_size)) { in ConstructJob()
6290 StringRef Size = Args.getLastArgValue(options::OPT_mstack_probe_size); in ConstructJob()
6293 CmdArgs.push_back(Args.MakeArgString("-mstack-probe-size=" + Size)); in ConstructJob()
6298 Args.addOptOutFlag(CmdArgs, options::OPT_mstack_arg_probe, in ConstructJob()
6301 if (Arg *A = Args.getLastArg(options::OPT_mrestrict_it, in ConstructJob()
6313 RenderOpenCLOptions(Args, CmdArgs, InputType); in ConstructJob()
6317 RenderHLSLOptions(Args, CmdArgs, InputType); in ConstructJob()
6320 if (Args.hasFlag(options::OPT_fhip_new_launch_api, in ConstructJob()
6323 if (Args.hasFlag(options::OPT_fgpu_allow_device_init, in ConstructJob()
6326 Args.addOptInFlag(CmdArgs, options::OPT_fhip_kernel_arg_name, in ConstructJob()
6333 if (Args.hasFlag(options::OPT_fgpu_defer_diag, in ConstructJob()
6336 if (Args.hasFlag(options::OPT_fgpu_exclude_wrong_side_overloads, in ConstructJob()
6345 if (Args.hasArg(options::OPT_nogpulib)) in ConstructJob()
6348 if (Arg *A = Args.getLastArg(options::OPT_fcf_protection_EQ)) { in ConstructJob()
6350 Args.MakeArgString(Twine("-fcf-protection=") + A->getValue())); in ConstructJob()
6354 Args.AddLastArg(CmdArgs, options::OPT_mibt_seal); in ConstructJob()
6356 if (Arg *A = Args.getLastArg(options::OPT_mfunction_return_EQ)) in ConstructJob()
6358 Args.MakeArgString(Twine("-mfunction-return=") + A->getValue())); in ConstructJob()
6364 if (Arg *A = getLastProfileSampleUseArg(Args)) { in ConstructJob()
6365 auto *PGOArg = Args.getLastArg( in ConstructJob()
6378 A->render(Args, CmdArgs); in ConstructJob()
6380 Args.AddLastArg(CmdArgs, options::OPT_fprofile_remapping_file_EQ); in ConstructJob()
6382 if (Args.hasFlag(options::OPT_fpseudo_probe_for_profiling, in ConstructJob()
6387 if (Args.hasFlag(options::OPT_funique_internal_linkage_names, in ConstructJob()
6392 RenderBuiltinOptions(TC, RawTriple, Args, CmdArgs); in ConstructJob()
6394 Args.addOptOutFlag(CmdArgs, options::OPT_fassume_sane_operator_new, in ConstructJob()
6398 if (Args.hasFlag(options::OPT_fblocks, options::OPT_fno_blocks, in ConstructJob()
6400 (Args.hasArg(options::OPT_fgnu_runtime) && in ConstructJob()
6401 Args.hasArg(options::OPT_fobjc_nonfragile_abi) && in ConstructJob()
6402 !Args.hasArg(options::OPT_fno_blocks))) { in ConstructJob()
6405 if (!Args.hasArg(options::OPT_fgnu_runtime) && !TC.hasBlocksRuntime()) in ConstructJob()
6413 if (Args.hasFlag(options::OPT_fcoroutines_ts, options::OPT_fno_coroutines_ts, in ConstructJob()
6419 Args.AddLastArg(CmdArgs, options::OPT_fdouble_square_bracket_attributes, in ConstructJob()
6422 Args.addOptOutFlag(CmdArgs, options::OPT_faccess_control, in ConstructJob()
6424 Args.addOptOutFlag(CmdArgs, options::OPT_felide_constructors, in ConstructJob()
6434 if (Args.hasFlag(options::OPT_fshort_enums, options::OPT_fno_short_enums, in ConstructJob()
6438 RenderCharacterOptions(Args, AuxTriple ? *AuxTriple : RawTriple, CmdArgs); in ConstructJob()
6441 if (!Args.hasFlag( in ConstructJob()
6449 if (Args.hasFlag(options::OPT_fregister_global_dtors_with_atexit, in ConstructJob()
6454 Args.addOptInFlag(CmdArgs, options::OPT_fuse_line_directives, in ConstructJob()
6458 if (Args.hasFlag(options::OPT_fminimize_whitespace, in ConstructJob()
6468 if (Args.hasFlag(options::OPT_fms_extensions, options::OPT_fno_ms_extensions, in ConstructJob()
6473 bool IsMSVCCompat = Args.hasFlag( in ConstructJob()
6475 (IsWindowsMSVC && Args.hasFlag(options::OPT_fms_extensions, in ConstructJob()
6482 if (Arg *A = Args.getLastArg(options::OPT_fgnuc_version_EQ)) { in ConstructJob()
6492 << A->getAsString(Args) << A->getValue(); in ConstructJob()
6500 Args.MakeArgString("-fgnuc-version=" + GNUCVer.getAsString())); in ConstructJob()
6503 VersionTuple MSVT = TC.computeMSVCVersion(&D, Args); in ConstructJob()
6506 Args.MakeArgString("-fms-compatibility-version=" + MSVT.getAsString())); in ConstructJob()
6511 if (const Arg *StdArg = Args.getLastArg(options::OPT__SLASH_std)) { in ConstructJob()
6519 << StdArg->getAsString(Args); in ConstructJob()
6525 if (const Arg *StdArg = Args.getLastArg(options::OPT__SLASH_std)) { in ConstructJob()
6535 << StdArg->getAsString(Args); in ConstructJob()
6548 Args.addOptInFlag(CmdArgs, options::OPT_fborland_extensions, in ConstructJob()
6552 if (Args.hasFlag(options::OPT_fdeclspec, options::OPT_fno_declspec, in ConstructJob()
6555 else if (Args.hasArg(options::OPT_fno_declspec)) in ConstructJob()
6560 if (!Args.hasFlag(options::OPT_fthreadsafe_statics, in ConstructJob()
6570 if (Args.hasFlag(options::OPT_fdelayed_template_parsing, in ConstructJob()
6576 Args.AddLastArg(CmdArgs, options::OPT_fgnu_keywords, in ConstructJob()
6579 Args.addOptInFlag(CmdArgs, options::OPT_fgnu89_inline, in ConstructJob()
6582 const Arg *InlineArg = Args.getLastArg(options::OPT_finline_functions, in ConstructJob()
6585 if (Arg *A = Args.getLastArg(options::OPT_finline, options::OPT_fno_inline)) { in ConstructJob()
6587 A->render(Args, CmdArgs); in ConstructJob()
6589 InlineArg->render(Args, CmdArgs); in ConstructJob()
6597 RenderModulesOptions(C, D, Args, Input, Output, CmdArgs, HaveModules); in ConstructJob()
6599 if (Args.hasFlag(options::OPT_fpch_validate_input_files_content, in ConstructJob()
6602 if (Args.hasFlag(options::OPT_fpch_instantiate_templates, in ConstructJob()
6605 if (Args.hasFlag(options::OPT_fpch_codegen, options::OPT_fno_pch_codegen, in ConstructJob()
6608 if (Args.hasFlag(options::OPT_fpch_debuginfo, options::OPT_fno_pch_debuginfo, in ConstructJob()
6615 ObjCRuntime Runtime = AddObjCRuntimeArgs(Args, Inputs, CmdArgs, rewriteKind); in ConstructJob()
6616 RenderObjCOptions(TC, D, RawTriple, Args, Runtime, rewriteKind != RK_None, in ConstructJob()
6620 Args.hasFlag(options::OPT_fobjc_encode_cxx_class_template_spec, in ConstructJob()
6625 if (Args.hasFlag(options::OPT_fapplication_extension, in ConstructJob()
6632 EH = addExceptionArgs(Args, InputType, TC, KernelOrKext, Runtime, CmdArgs); in ConstructJob()
6635 Arg *A = Args.getLastArg( in ConstructJob()
6649 switch (TC.GetExceptionModel(Args)) { in ConstructJob()
6665 Args.addOptOutFlag(CmdArgs, options::OPT_fassume_sane_operator_new, in ConstructJob()
6671 Args.addOptInFlag(CmdArgs, options::OPT_frelaxed_template_template_args, in ConstructJob()
6676 Args.addOptInFlag(CmdArgs, options::OPT_fsized_deallocation, in ConstructJob()
6681 if (Arg *A = Args.getLastArg(options::OPT_faligned_allocation, in ConstructJob()
6692 if (Arg *A = Args.getLastArg(options::OPT_fnew_alignment_EQ, in ConstructJob()
6695 Args.MakeArgString(Twine("-fnew-alignment=") + A->getValue())); in ConstructJob()
6699 if (!Args.hasFlag(options::OPT_fconstant_cfstrings, in ConstructJob()
6701 !Args.hasFlag(options::OPT_mconstant_cfstrings, in ConstructJob()
6705 Args.addOptInFlag(CmdArgs, options::OPT_fpascal_strings, in ConstructJob()
6710 if (Arg *A = Args.getLastArg(options::OPT_fpack_struct_EQ)) { in ConstructJob()
6713 CmdArgs.push_back(Args.MakeArgString(PackStructStr)); in ConstructJob()
6714 } else if (Args.hasFlag(options::OPT_fpack_struct, in ConstructJob()
6720 bool SkipMaxTypeAlign = Args.hasArg(options::OPT_fno_max_type_align); in ConstructJob()
6721 if (Arg *A = Args.getLastArg(options::OPT_fmax_type_align_EQ)) { in ConstructJob()
6725 CmdArgs.push_back(Args.MakeArgString(MaxTypeAlignStr)); in ConstructJob()
6730 CmdArgs.push_back(Args.MakeArgString(MaxTypeAlignStr)); in ConstructJob()
6734 if (!Args.hasFlag(options::OPT_Qy, options::OPT_Qn, true)) in ConstructJob()
6738 Args.addOptInFlag(CmdArgs, options::OPT_fcommon, options::OPT_fno_common); in ConstructJob()
6742 if (!Args.hasFlag(options::OPT_fsigned_bitfields, in ConstructJob()
6745 << Args.getLastArg(options::OPT_funsigned_bitfields)->getAsString(Args); in ConstructJob()
6748 if (!Args.hasFlag(options::OPT_ffor_scope, options::OPT_fno_for_scope, true)) in ConstructJob()
6750 << Args.getLastArg(options::OPT_fno_for_scope)->getAsString(Args); in ConstructJob()
6753 if (Arg *inputCharset = Args.getLastArg(options::OPT_finput_charset_EQ)) { in ConstructJob()
6756 D.Diag(diag::err_drv_invalid_value) << inputCharset->getAsString(Args) in ConstructJob()
6761 if (Arg *execCharset = Args.getLastArg(options::OPT_fexec_charset_EQ)) { in ConstructJob()
6764 D.Diag(diag::err_drv_invalid_value) << execCharset->getAsString(Args) in ConstructJob()
6768 RenderDiagnosticsOptions(D, Args, CmdArgs); in ConstructJob()
6770 Args.addOptInFlag(CmdArgs, options::OPT_fasm_blocks, in ConstructJob()
6774 if (!Args.hasFlag(options::OPT_fgnu_inline_asm, in ConstructJob()
6781 bool EnableVec = shouldEnableVectorizerAtOLevel(Args, false); in ConstructJob()
6784 if (Args.hasFlag(options::OPT_fvectorize, VectorizeAliasOption, in ConstructJob()
6789 bool EnableSLPVec = shouldEnableVectorizerAtOLevel(Args, true); in ConstructJob()
6792 if (Args.hasFlag(options::OPT_fslp_vectorize, SLPVectAliasOption, in ConstructJob()
6796 ParseMPreferVectorWidth(D, Args, CmdArgs); in ConstructJob()
6798 Args.AddLastArg(CmdArgs, options::OPT_fshow_overloads_EQ); in ConstructJob()
6799 Args.AddLastArg(CmdArgs, in ConstructJob()
6804 if (Arg *A = Args.getLastArg(options::OPT_fdollars_in_identifiers, in ConstructJob()
6812 Args.addOptInFlag(CmdArgs, options::OPT_fapple_pragma_pack, in ConstructJob()
6815 if (Args.hasFlag(options::OPT_fxl_pragma_pack, in ConstructJob()
6820 if (willEmitRemarks(Args) && checkRemarksOptions(D, Args, Triple)) in ConstructJob()
6821 renderRemarksOptions(Args, CmdArgs, Triple, Input, Output, JA); in ConstructJob()
6823 bool RewriteImports = Args.hasFlag(options::OPT_frewrite_imports, in ConstructJob()
6828 if (Args.hasFlag(options::OPT_fdirectives_only, in ConstructJob()
6836 if (Args.hasFlag(options::OPT_frewrite_includes, in ConstructJob()
6842 if (Arg *A = Args.getLastArg(options::OPT_traditional, in ConstructJob()
6847 D.Diag(diag::err_drv_clang_unsupported) << A->getAsString(Args); in ConstructJob()
6850 Args.AddLastArg(CmdArgs, options::OPT_dM); in ConstructJob()
6851 Args.AddLastArg(CmdArgs, options::OPT_dD); in ConstructJob()
6852 Args.AddLastArg(CmdArgs, options::OPT_dI); in ConstructJob()
6854 Args.AddLastArg(CmdArgs, options::OPT_fmax_tokens_EQ); in ConstructJob()
6857 if (Arg *A = Args.getLastArg(options::OPT__serialize_diags)) { in ConstructJob()
6859 CmdArgs.push_back(Args.MakeArgString(A->getValue())); in ConstructJob()
6862 if (Args.hasArg(options::OPT_fretain_comments_from_system_headers)) in ConstructJob()
6866 Args.AddAllArgs(CmdArgs, options::OPT_fcomment_block_commands); in ConstructJob()
6868 Args.AddAllArgs(CmdArgs, options::OPT_fparse_all_comments); in ConstructJob()
6871 for (const Arg *A : Args.filtered(options::OPT_fplugin_EQ)) { in ConstructJob()
6885 for (const Arg *A : Args.filtered(options::OPT_fplugin_arg)) { in ConstructJob()
6894 D.Diag(diag::warn_drv_missing_plugin_name) << A->getAsString(Args); in ConstructJob()
6897 << PluginName << A->getAsString(Args); in ConstructJob()
6902 CmdArgs.push_back(Args.MakeArgString(Twine("-plugin-arg-") + PluginName)); in ConstructJob()
6903 CmdArgs.push_back(Args.MakeArgString(Arg)); in ConstructJob()
6907 for (const Arg *A : Args.filtered(options::OPT_fpass_plugin_EQ)) { in ConstructJob()
6909 Args.MakeArgString(Twine("-fpass-plugin=") + A->getValue())); in ConstructJob()
6914 SmallString<128> StatsFile = getStatsFileName(Args, Output, Input, D); in ConstructJob()
6916 CmdArgs.push_back(Args.MakeArgString(Twine("-stats-file=") + StatsFile)); in ConstructJob()
6924 for (auto Arg : Args.filtered(options::OPT_Xclang)) { in ConstructJob()
6931 Args.AddAllArgValues(CmdArgs, options::OPT_Xclang); in ConstructJob()
6933 for (const Arg *A : Args.filtered(options::OPT_mllvm)) { in ConstructJob()
6942 A->render(Args, CmdArgs); in ConstructJob()
6960 Args.AddAllArgs(CmdArgs, options::OPT_undef); in ConstructJob()
6970 Args.hasFlag(options::OPT_grecord_command_line, in ConstructJob()
6973 Args.hasFlag(options::OPT_frecord_command_line, in ConstructJob()
6977 << Args.getLastArg(options::OPT_frecord_command_line)->getAsString(Args) in ConstructJob()
6981 for (const auto &Arg : Args) in ConstructJob()
6982 Arg->render(Args, OriginalArgs); in ConstructJob()
6992 auto FlagsArgString = Args.MakeArgString(Flags); in ConstructJob()
7016 CmdArgs.push_back(Args.MakeArgString("-fembed-offload-object=" + in ConstructJob()
7022 if (Args.hasFlag(options::OPT_fcuda_short_ptr, in ConstructJob()
7036 CmdArgs.push_back(Args.MakeArgString(Twine("-cuid=") + Twine(CUID))); in ConstructJob()
7041 Args.AddLastArg(CmdArgs, options::OPT_fgpu_default_stream_EQ); in ConstructJob()
7046 Args.getLastArgValue(options::OPT_fgpu_inline_threshold_EQ); in ConstructJob()
7050 CmdArgs.append({"-mllvm", Args.MakeArgStringRef(ArgStr)}); in ConstructJob()
7063 CmdArgs.push_back(Args.MakeArgString(OpenMPDeviceInput->getFilename())); in ConstructJob()
7068 handleAMDGPUCodeObjectVersionOptions(D, Args, CmdArgs); in ConstructJob()
7070 Args.addOptInFlag(CmdArgs, options::OPT_munsafe_fp_atomics, in ConstructJob()
7083 CmdArgs.push_back(Args.MakeArgString(Targets + llvm::join(Triples, ","))); in ConstructJob()
7087 Args.hasFlag(options::OPT_fvirtual_function_elimination, in ConstructJob()
7101 bool WholeProgramVTables = Args.hasFlag( in ConstructJob()
7128 Args.hasFlag(options::OPT_fsplit_lto_unit, in ConstructJob()
7136 if (Arg *A = Args.getLastArg(options::OPT_fglobal_isel, in ConstructJob()
7148 Arg *A = Args.getLastArg(options::OPT_O_Group); in ConstructJob()
7167 if (Args.hasArg(options::OPT_forder_file_instrumentation)) { in ConstructJob()
7178 if (Arg *A = Args.getLastArg(options::OPT_fforce_enable_int128, in ConstructJob()
7184 Args.addOptInFlag(CmdArgs, options::OPT_fkeep_static_consts, in ConstructJob()
7186 Args.addOptInFlag(CmdArgs, options::OPT_fcomplete_member_pointers, in ConstructJob()
7189 if (!Args.hasFlag(options::OPT_fcxx_static_destructors, in ConstructJob()
7193 addMachineOutlinerArgs(D, Args, CmdArgs, Triple, /*IsLTO=*/false); in ConstructJob()
7195 if (Arg *A = Args.getLastArg(options::OPT_moutline_atomics, in ConstructJob()
7211 getToolChain().IsAArch64OutlineAtomicsDefault(Args)) { in ConstructJob()
7216 if (Args.hasFlag(options::OPT_faddrsig, options::OPT_fno_addrsig, in ConstructJob()
7230 if (Arg *A = Args.getLastArg(options::OPT_fsymbol_partition_EQ)) { in ConstructJob()
7231 std::string Str = A->getAsString(Args); in ConstructJob()
7235 CmdArgs.push_back(Args.MakeArgString(Str)); in ConstructJob()
7240 addDebugObjectName(Args, CmdArgs, DebugCompilationDir, in ConstructJob()
7253 CmdArgs.push_back(Args.MakeArgString(OutputFilename)); in ConstructJob()
7262 addDashXForInput(Args, Input, CmdArgs); in ConstructJob()
7276 Input.getInputArg().renderAsInput(Args, CmdArgs); in ConstructJob()
7292 Args.hasFlag(options::OPT__SLASH_showFilenames, in ConstructJob()
7297 if (Arg *A = Args.getLastArg(options::OPT_pg)) in ConstructJob()
7299 !Args.hasArg(options::OPT_mfentry)) in ConstructJob()
7301 << A->getAsString(Args); in ConstructJob()
7307 Args.ClaimAllArgs(options::OPT_fpch_preprocess); in ConstructJob()
7311 Args.ClaimAllArgs(options::OPT_clang_ignored_f_Group); in ConstructJob()
7312 Args.ClaimAllArgs(options::OPT_clang_ignored_m_Group); in ConstructJob()
7315 Args.ClaimAllArgs(options::OPT_emit_llvm); in ConstructJob()
7483 static EHFlags parseClangCLEHFlags(const Driver &D, const ArgList &Args) { in parseClangCLEHFlags() argument
7487 Args.getAllArgValues(options::OPT__SLASH_EH); in parseClangCLEHFlags()
7514 Args.hasFlag(options::OPT__SLASH_GX, options::OPT__SLASH_GX_, in parseClangCLEHFlags()
7520 if (Args.hasArg(options::OPT__SLASH_kernel)) { in parseClangCLEHFlags()
7529 void Clang::AddClangCLArgs(const ArgList &Args, types::ID InputType, in AddClangCLArgs() argument
7536 if (Args.hasArg(options::OPT__SLASH_LDd)) in AddClangCLArgs()
7541 if (Arg *A = Args.getLastArg(options::OPT__SLASH_M_Group)) in AddClangCLArgs()
7547 if (Args.hasArg(options::OPT__SLASH_LDd)) in AddClangCLArgs()
7560 if (Args.hasArg(options::OPT__SLASH_LDd)) in AddClangCLArgs()
7576 if (Args.hasArg(options::OPT__SLASH_Zl)) { in AddClangCLArgs()
7588 Args.getLastArg(options::OPT__SLASH_showIncludes, in AddClangCLArgs()
7596 if (Args.hasFlag(options::OPT__SLASH_GR_, options::OPT__SLASH_GR, in AddClangCLArgs()
7602 if (!isNVPTX && Args.hasFlag(options::OPT__SLASH_GS, options::OPT__SLASH_GS_, in AddClangCLArgs()
7605 CmdArgs.push_back(Args.MakeArgString(Twine(LangOptions::SSPStrong))); in AddClangCLArgs()
7609 if (Arg *DebugInfoArg = Args.getLastArg(options::OPT__SLASH_Z7, in AddClangCLArgs()
7623 if (Args.hasFlag(options::OPT__SLASH_JMC, options::OPT__SLASH_JMC_, in AddClangCLArgs()
7632 EHFlags EH = parseClangCLEHFlags(D, Args); in AddClangCLArgs()
7642 if (Args.hasArg(options::OPT__SLASH_EP)) { in AddClangCLArgs()
7653 if (Arg *A = Args.getLastArg(options::OPT__SLASH_volatile_Group)) in AddClangCLArgs()
7659 if (Args.hasFlag(options::OPT__SLASH_Zc_dllexportInlines_, in AddClangCLArgs()
7665 if (Args.hasFlag(options::OPT__SLASH_Zc_wchar_t_, in AddClangCLArgs()
7670 if (Args.hasArg(options::OPT__SLASH_kernel)) { in AddClangCLArgs()
7673 Args.getAllArgValues(options::OPT__SLASH_arch); in AddClangCLArgs()
7686 if (Args.hasFlag(options::OPT__SLASH_GR, options::OPT__SLASH_GR_, false)) in AddClangCLArgs()
7691 Arg *MostGeneralArg = Args.getLastArg(options::OPT__SLASH_vmg); in AddClangCLArgs()
7692 Arg *BestCaseArg = Args.getLastArg(options::OPT__SLASH_vmb); in AddClangCLArgs()
7695 << MostGeneralArg->getAsString(Args) << BestCaseArg->getAsString(Args); in AddClangCLArgs()
7698 Arg *SingleArg = Args.getLastArg(options::OPT__SLASH_vms); in AddClangCLArgs()
7699 Arg *MultipleArg = Args.getLastArg(options::OPT__SLASH_vmm); in AddClangCLArgs()
7700 Arg *VirtualArg = Args.getLastArg(options::OPT__SLASH_vmv); in AddClangCLArgs()
7706 << FirstConflict->getAsString(Args) in AddClangCLArgs()
7707 << SecondConflict->getAsString(Args); in AddClangCLArgs()
7719 Args.getLastArg(options::OPT__SLASH_Gd, options::OPT__SLASH_Gr, in AddClangCLArgs()
7753 Args.AddLastArg(CmdArgs, options::OPT_vtordisp_mode_EQ); in AddClangCLArgs()
7755 if (!Args.hasArg(options::OPT_fdiagnostics_format_EQ)) { in AddClangCLArgs()
7760 if (Args.hasArg(options::OPT__SLASH_kernel)) in AddClangCLArgs()
7763 if (Arg *A = Args.getLastArg(options::OPT__SLASH_guard)) { in AddClangCLArgs()
7785 const char *Clang::getBaseInputName(const ArgList &Args, in getBaseInputName() argument
7787 return Args.MakeArgString(llvm::sys::path::filename(Input.getBaseInput())); in getBaseInputName()
7790 const char *Clang::getBaseInputStem(const ArgList &Args, in getBaseInputStem() argument
7792 const char *Str = getBaseInputName(Args, Inputs[0]); in getBaseInputStem()
7795 return Args.MakeArgString(std::string(Str, End)); in getBaseInputStem()
7800 const char *Clang::getDependencyFileName(const ArgList &Args, in getDependencyFileName() argument
7804 if (Arg *OutputOpt = Args.getLastArg(options::OPT_o)) { in getDependencyFileName()
7807 return Args.MakeArgString(OutputFilename); in getDependencyFileName()
7810 return Args.MakeArgString(Twine(getBaseInputStem(Args, Inputs)) + ".d"); in getDependencyFileName()
7815 void ClangAs::AddMIPSTargetArgs(const ArgList &Args, in AddMIPSTargetArgs() argument
7820 mips::getMipsCPUAndABI(Args, Triple, CPUName, ABIName); in AddMIPSTargetArgs()
7826 void ClangAs::AddX86TargetArgs(const ArgList &Args, in AddX86TargetArgs() argument
7828 addX86AlignBranchArgs(getToolChain().getDriver(), Args, CmdArgs, in AddX86TargetArgs()
7831 if (Arg *A = Args.getLastArg(options::OPT_masm_EQ)) { in AddX86TargetArgs()
7835 CmdArgs.push_back(Args.MakeArgString("-x86-asm-syntax=" + Value)); in AddX86TargetArgs()
7843 void ClangAs::AddRISCVTargetArgs(const ArgList &Args, in AddRISCVTargetArgs() argument
7846 StringRef ABIName = riscv::getRISCVABI(Args, Triple); in AddRISCVTargetArgs()
7854 const ArgList &Args, in ConstructJob() argument
7868 Args.ClaimAllArgs(options::OPT_w); in ConstructJob()
7870 Args.ClaimAllArgs(options::OPT_emit_llvm); in ConstructJob()
7872 claimNoWarnArgs(Args); in ConstructJob()
7881 CmdArgs.push_back(Args.MakeArgString(TripleStr)); in ConstructJob()
7884 CmdArgs.push_back(Args.MakeArgString(TargetVariantTriple->getTriple())); in ConstructJob()
7895 CmdArgs.push_back(Clang::getBaseInputName(Args, Input)); in ConstructJob()
7898 std::string CPU = getCPUName(D, Args, Triple, /*FromAs*/ true); in ConstructJob()
7901 CmdArgs.push_back(Args.MakeArgString(CPU)); in ConstructJob()
7905 getTargetFeatures(D, Triple, Args, CmdArgs, true); in ConstructJob()
7908 (void)Args.hasArg(options::OPT_force__cpusubtype__ALL); in ConstructJob()
7911 Args.AddAllArgs(CmdArgs, options::OPT_I_Group); in ConstructJob()
7926 Args.ClaimAllArgs(options::OPT_g_Group); in ConstructJob()
7927 if (Arg *A = Args.getLastArg(options::OPT_g_Group)) in ConstructJob()
7931 unsigned DwarfVersion = ParseDebugDefaultVersion(getToolChain(), Args); in ConstructJob()
7932 if (const Arg *GDwarfN = getDwarfNArg(Args)) in ConstructJob()
7942 addDebugCompDirArg(Args, CmdArgs, C.getDriver().getVFS()); in ConstructJob()
7953 addDebugPrefixMapArg(getToolChain().getDriver(), getToolChain(), Args, in ConstructJob()
7959 CmdArgs.push_back(Args.MakeArgString(getClangFullVersion())); in ConstructJob()
7962 Args.AddAllArgs(CmdArgs, options::OPT_I); in ConstructJob()
7964 RenderDebugEnablingArgs(Args, CmdArgs, DebugInfoKind, DwarfVersion, in ConstructJob()
7966 renderDwarfFormat(D, Triple, Args, CmdArgs, DwarfVersion); in ConstructJob()
7967 RenderDebugInfoCompressionArgs(Args, CmdArgs, D, getToolChain()); in ConstructJob()
7975 ParsePICArgs(getToolChain(), Args); in ConstructJob()
7987 for (const auto &Arg : Args) in ConstructJob()
7988 Arg->render(Args, OriginalArgs); in ConstructJob()
8000 CmdArgs.push_back(Args.MakeArgString(Flags)); in ConstructJob()
8014 AddMIPSTargetArgs(Args, CmdArgs); in ConstructJob()
8019 AddX86TargetArgs(Args, CmdArgs); in ConstructJob()
8028 if (Args.hasFlag(options::OPT_mdefault_build_attributes, in ConstructJob()
8038 if (Args.hasArg(options::OPT_mmark_bti_property)) { in ConstructJob()
8046 AddRISCVTargetArgs(Args, CmdArgs); in ConstructJob()
8055 Args.ClaimAllArgs(options::OPT_W_Group); in ConstructJob()
8057 CollectArgsForIntegratedAssembler(C, Args, CmdArgs, in ConstructJob()
8060 Args.AddAllArgs(CmdArgs, options::OPT_mllvm); in ConstructJob()
8063 addDebugObjectName(Args, CmdArgs, DebugCompilationDir, in ConstructJob()
8076 addDebugObjectName(Args, NewArgs, DebugCompilationDir, in ConstructJob()
8091 if (getDebugFissionKind(D, Args, A) == DwarfFissionKind::Split && in ConstructJob()
8094 CmdArgs.push_back(SplitDebugName(JA, Args, Input, Output)); in ConstructJob()
8098 handleAMDGPUCodeObjectVersionOptions(D, Args, CmdArgs, /*IsCC1As=*/true); in ConstructJob()
8309 const ArgList &Args, in ConstructJob() argument
8317 CmdArgs.push_back(Args.MakeArgString(Triple.getTriple())); in ConstructJob()
8332 Args.MakeArgString(getToolChain().GetProgramPath(getShortName())), in ConstructJob()
8339 const llvm::opt::ArgList &Args, in ConstructJob() argument
8380 CmdArgs.push_back(Args.MakeArgString("--image=" + llvm::join(Parts, ","))); in ConstructJob()
8385 Args.MakeArgString(getToolChain().GetProgramPath(getShortName())), in ConstructJob()
8392 const ArgList &Args, in ConstructJob() argument
8405 CudaInstallationDetector CudaInstallation(D, TheTriple, Args); in ConstructJob()
8407 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
8420 if (!TC->getTriple().isAMDGPU() || Args.hasArg(options::OPT_nogpulib)) in ConstructJob()
8432 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
8439 if (const Arg *A = Args.getLastArg(options::OPT_O_Group)) { in ConstructJob()
8453 CmdArgs.push_back(Args.MakeArgString(Twine("--opt-level=O") + OOpt)); in ConstructJob()
8458 Args.MakeArgString("--host-triple=" + TheTriple.getTriple())); in ConstructJob()
8459 if (Args.hasArg(options::OPT_v)) in ConstructJob()
8462 if (const Arg *A = Args.getLastArg(options::OPT_g_Group)) { in ConstructJob()
8467 for (const auto &A : Args.getAllArgValues(options::OPT_Xcuda_ptxas)) in ConstructJob()
8468 CmdArgs.push_back(Args.MakeArgString("--ptxas-args=" + A)); in ConstructJob()
8471 if (const Arg *A = Args.getLastArg(options::OPT_Rpass_EQ)) in ConstructJob()
8472 CmdArgs.push_back(Args.MakeArgString(Twine("--offload-opt=-pass-remarks=") + in ConstructJob()
8474 if (const Arg *A = Args.getLastArg(options::OPT_Rpass_missed_EQ)) in ConstructJob()
8475 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
8477 if (const Arg *A = Args.getLastArg(options::OPT_Rpass_analysis_EQ)) in ConstructJob()
8478 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
8480 if (Args.getLastArg(options::OPT_save_temps_EQ)) in ConstructJob()
8484 Linker->ConstructJob(C, JA, Output, Inputs, Args, LinkingOutput); in ConstructJob()
8488 for (Arg *A : Args.filtered(options::OPT_Xoffload_linker)) { in ConstructJob()
8492 Args.MakeArgString(Twine("--device-linker=") + A->getValue(1))); in ConstructJob()
8494 CmdArgs.push_back(Args.MakeArgString( in ConstructJob()
8499 Args.ClaimAllArgs(options::OPT_Xoffload_linker); in ConstructJob()
8502 for (Arg *A : Args.filtered(options::OPT_mllvm)) { in ConstructJob()
8509 CmdArgs.push_back(Args.MakeArgString(Twine("--linker-path=") + in ConstructJob()
8516 Args.MakeArgString(getToolChain().GetProgramPath("clang-linker-wrapper")); in ConstructJob()