Lines Matching full:args
30 static void addDashXForInput(const ArgList &Args, const InputInfo &Input,
37 void Flang::addFortranDialectOptions(const ArgList &Args,
39 Args.addAllArgs(CmdArgs, {options::OPT_ffixed_form,
65 void Flang::addPreprocessingOptions(const ArgList &Args,
67 Args.addAllArgs(CmdArgs,
89 static bool shouldLoopVersion(const ArgList &Args) {
90 const Arg *LoopVersioningArg = Args.getLastArg(
121 void Flang::addOtherOptions(const ArgList &Args, ArgStringList &CmdArgs) const {
122 Args.addAllArgs(CmdArgs,
131 if (Args.hasArg(options::OPT_gN_Group)) {
132 Arg *gNArg = Args.getLastArg(options::OPT_gN_Group);
134 } else if (Args.hasArg(options::OPT_g_Flag)) {
142 void Flang::addCodegenOptions(const ArgList &Args,
145 Args.getLastArg(options::OPT_Ofast, options::OPT_fstack_arrays,
151 if (shouldLoopVersion(Args))
154 Args.addAllArgs(CmdArgs,
165 void Flang::addPicOptions(const ArgList &Args, ArgStringList &CmdArgs) const {
172 ParsePICArgs(getToolChain(), Args);
186 void Flang::AddAArch64TargetArgs(const ArgList &Args,
189 if (Arg *A = Args.getLastArg(options::OPT_msve_vector_bits_EQ)) {
200 Args.MakeArgString("-mvscale-max=" + llvm::Twine(Bits / 128)));
206 Args.MakeArgString("-mvscale-min=" + llvm::Twine(Bits / 128)));
215 void Flang::AddLoongArch64TargetArgs(const ArgList &Args,
219 if (const Arg *A = Args.getLastArg(options::OPT_mabi_EQ)) {
226 if (const Arg *A = Args.getLastArg(options::OPT_mannotate_tablejump,
235 void Flang::AddPPCTargetArgs(const ArgList &Args,
240 if (const Arg *A = Args.getLastArg(options::OPT_mabi_EQ)) {
261 void Flang::AddRISCVTargetArgs(const ArgList &Args,
265 if (Arg *A = Args.getLastArg(options::OPT_mrvv_vector_bits_EQ)) {
271 std::string Arch = riscv::getRISCVArch(Args, Triple);
295 Args.MakeArgString("-mvscale-max=" + llvm::Twine(VScaleMin)));
297 Args.MakeArgString("-mvscale-min=" + llvm::Twine(VScaleMin)));
306 void Flang::AddX86_64TargetArgs(const ArgList &Args,
308 if (Arg *A = Args.getLastArg(options::OPT_masm_EQ)) {
311 CmdArgs.push_back(Args.MakeArgString("-mllvm"));
312 CmdArgs.push_back(Args.MakeArgString("-x86-asm-syntax=" + Value));
320 static void addVSDefines(const ToolChain &TC, const ArgList &Args,
324 const VersionTuple vt = TC.computeMSVCVersion(nullptr, Args);
327 CmdArgs.push_back(Args.MakeArgString("-D_MSC_VER=" + Twine(ver / 100000)));
328 CmdArgs.push_back(Args.MakeArgString("-D_MSC_FULL_VER=" + Twine(ver)));
329 CmdArgs.push_back(Args.MakeArgString("-D_WIN32"));
344 static void processVSRuntimeLibrary(const ToolChain &TC, const ArgList &Args,
350 CmdArgs.push_back(Args.MakeArgString(
351 "--dependent-lib=" + TC.getCompilerRTBasename(Args, "builtins")));
354 if (auto *rtl = Args.getLastArg(options::OPT_fms_runtime_lib_EQ)) {
394 void Flang::AddAMDGPUTargetArgs(const ArgList &Args,
396 if (Arg *A = Args.getLastArg(options::OPT_mcode_object_version_EQ)) {
398 CmdArgs.push_back(Args.MakeArgString("-mcode-object-version=" + Val));
402 TC.addClangTargetOptions(Args, CmdArgs, Action::OffloadKind::OFK_OpenMP);
405 void Flang::addTargetOptions(const ArgList &Args,
411 std::string CPU = getCPUName(D, Args, Triple);
414 CmdArgs.push_back(Args.MakeArgString(CPU));
417 addOutlineAtomicsArgs(D, getToolChain(), Args, CmdArgs, Triple);
424 getTargetFeatures(D, Triple, Args, CmdArgs, /*ForAs*/ false);
425 AddAArch64TargetArgs(Args, CmdArgs);
430 getTargetFeatures(D, Triple, Args, CmdArgs, /*ForAs*/ false);
431 AddAMDGPUTargetArgs(Args, CmdArgs);
434 getTargetFeatures(D, Triple, Args, CmdArgs, /*ForAs*/ false);
435 AddRISCVTargetArgs(Args, CmdArgs);
438 getTargetFeatures(D, Triple, Args, CmdArgs, /*ForAs*/ false);
439 AddX86_64TargetArgs(Args, CmdArgs);
444 AddPPCTargetArgs(Args, CmdArgs);
447 getTargetFeatures(D, Triple, Args, CmdArgs, /*ForAs*/ false);
448 AddLoongArch64TargetArgs(Args, CmdArgs);
452 if (Arg *A = Args.getLastArg(options::OPT_fveclib)) {
474 if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs)) {
481 A->render(Args, CmdArgs);
485 processVSRuntimeLibrary(TC, Args, CmdArgs);
486 addVSDefines(TC, Args, CmdArgs);
490 if (const Arg *A = Args.getLastArg(options::OPT_mtune_EQ)) {
493 CmdArgs.push_back(Args.MakeArgString(llvm::sys::getHostCPUName()));
500 const JobAction &JA, const ArgList &Args,
519 Args.MakeArgString("-fembed-offload-object=" +
524 CmdArgs.push_back(Args.MakeArgString(Inputs[i].getFilename()));
540 Args.AddAllArgs(CmdArgs, options::OPT_fopenmp_target_debug_EQ);
541 if (Args.hasFlag(options::OPT_fopenmp_target_debug,
547 if (Args.hasFlag(options::OPT_fopenmp_assume_teams_oversubscription,
551 if (Args.hasFlag(options::OPT_fopenmp_assume_threads_oversubscription,
555 if (Args.hasArg(options::OPT_fopenmp_assume_no_thread_state))
557 if (Args.hasArg(options::OPT_fopenmp_assume_no_nested_parallelism))
559 if (Args.hasArg(options::OPT_nogpulib))
563 addOpenMPHostOffloadingArgs(C, JA, Args, CmdArgs);
566 static void addFloatingPointOptions(const Driver &D, const ArgList &Args,
576 if (const Arg *A = Args.getLastArg(options::OPT_ffp_contract)) {
593 for (const Arg *A : Args) {
674 CmdArgs.push_back(Args.MakeArgString("-ffp-contract=" + FPContract));
695 static void renderRemarksOptions(const ArgList &Args, ArgStringList &CmdArgs,
698 if (const Arg *A = Args.getLastArg(options::OPT_fsave_optimization_record_EQ))
703 const Arg *A = Args.getLastArg(options::OPT_foptimization_record_file_EQ);
709 if (Args.hasArg(options::OPT_c) || Args.hasArg(options::OPT_S)) {
710 if (Arg *FinalOutput = Args.getLastArg(options::OPT_o))
724 CmdArgs.push_back(Args.MakeArgString(F));
728 Args.getLastArg(options::OPT_foptimization_record_passes_EQ)) {
741 const ArgList &Args, const char *LinkingOutput) const {
755 CmdArgs.push_back(Args.MakeArgString(TripleStr));
759 if (Args.getLastArg(options::OPT_dM)) {
793 addPreprocessingOptions(Args, CmdArgs);
795 addFortranDialectOptions(Args, CmdArgs);
801 !Args.getLastArg(options::OPT_ffixed_form, options::OPT_ffree_form))
804 handleColorDiagnosticsArgs(D, Args, CmdArgs);
819 addPicOptions(Args, CmdArgs);
822 addFloatingPointOptions(D, Args, CmdArgs);
824 // Add target args, features, etc.
825 addTargetOptions(Args, CmdArgs);
828 std::get<0>(ParsePICArgs(getToolChain(), Args));
830 addMCModel(D, Args, Triple, RelocationModel, CmdArgs);
833 addCodegenOptions(Args, CmdArgs);
836 Args.AddAllArgs(CmdArgs, options::OPT_R_Group);
839 if (willEmitRemarks(Args))
840 renderRemarksOptions(Args, CmdArgs, Input);
843 addOtherOptions(Args, CmdArgs);
847 Args.AddLastArg(CmdArgs, options::OPT_w);
851 if (Args.hasFlag(options::OPT_fopenmp, options::OPT_fopenmp_EQ,
855 switch (D.getOpenMPRuntime(Args)) {
860 Args.AddAllArgs(CmdArgs, options::OPT_fopenmp_version_EQ);
862 if (Args.hasArg(options::OPT_fopenmp_force_usm))
877 const Arg *A = Args.getLastArg(options::OPT_fopenmp_EQ);
889 addOffloadOptions(C, Inputs, JA, Args, CmdArgs);
892 Args.AddAllArgValues(CmdArgs, options::OPT_Xflang);
895 getFramePointerKind(Args, Triple);
917 for (const Arg *A : Args.filtered(options::OPT_mllvm)) {
919 A->render(Args, CmdArgs);
922 for (const Arg *A : Args.filtered(options::OPT_mmlir)) {
924 A->render(Args, CmdArgs);
928 for (const Arg *A : Args.filtered(options::OPT_flang_ignored_w_Group)) {
935 if (const Arg *A = Args.getLastArg(options::OPT_O_Group)) {
943 A->render(Args, CmdArgs);
947 renderCommonIntegerOverflowOptions(Args, CmdArgs);
955 if (Args.getLastArg(options::OPT_save_temps_EQ))
956 Args.AddLastArg(CmdArgs, options::OPT_save_temps_EQ);
958 addDashXForInput(Args, Input, CmdArgs);
962 if (shouldRecordCommandLine(TC, Args, FRecordCmdLine, GRecordCmdLine)) {
963 const char *CmdLine = renderEscapedCommandLine(TC, Args);
984 Input.getInputArg().renderAsInput(Args, CmdArgs);
987 const char *Exec = Args.MakeArgString(D.GetProgramPath("flang", TC));