Lines Matching full:options

28 #include "clang/Driver/Options.h"
31 #include "llvm/Frontend/Debug/Options.h"
81 if (opt.matches(clang::driver::options::OPT_fcolor_diagnostics)) {
83 } else if (opt.matches(clang::driver::options::OPT_fno_color_diagnostics)) {
85 } else if (opt.matches(clang::driver::options::OPT_fdiagnostics_color_EQ)) {
107 args.getLastArg(clang::driver::options::OPT_O_Group)) {
108 if (a->getOption().matches(clang::driver::options::OPT_O0))
111 assert(a->getOption().matches(clang::driver::options::OPT_O));
113 return getLastArgIntValue(args, clang::driver::options::OPT_O, defaultOpt,
132 args.getLastArg(clang::driver::options::OPT_debug_info_kind_EQ)) {
163 llvm::opt::Arg *arg = args.getLastArg(clang::driver::options::OPT_fveclib);
200 if (a->getOption().matches(clang::driver::options::OPT_R_Joined)) {
237 if (args.hasFlag(clang::driver::options::OPT_fdebug_pass_manager,
238 clang::driver::options::OPT_fno_debug_pass_manager, false))
241 if (args.hasFlag(clang::driver::options::OPT_fstack_arrays,
242 clang::driver::options::OPT_fno_stack_arrays, false))
245 if (args.hasFlag(clang::driver::options::OPT_floop_versioning,
246 clang::driver::options::OPT_fno_loop_versioning, false))
249 opts.UnrollLoops = args.hasFlag(clang::driver::options::OPT_funroll_loops,
250 clang::driver::options::OPT_fno_unroll_loops,
257 args.getLastArg(clang::driver::options::OPT_mframe_pointer_EQ)) {
272 for (auto *a : args.filtered(clang::driver::options::OPT_fpass_plugin_EQ))
277 args.filtered(clang::driver::options::OPT_fembed_offload_object_EQ))
282 args.getLastArg(clang::driver::options::OPT_flto_EQ)) {
292 clang::driver::options::OPT_mcode_object_version_EQ)) {
306 args.getLastArg(clang::driver::options::OPT_opt_record_file))
311 args.getLastArg(clang::driver::options::OPT_opt_record_format))
318 args.getLastArg(clang::driver::options::OPT_opt_record_passes))
324 parseOptimizationRemark(diags, args, clang::driver::options::OPT_Rpass_EQ,
329 diags, args, clang::driver::options::OPT_Rpass_missed_EQ,
335 diags, args, clang::driver::options::OPT_Rpass_analysis_EQ,
353 if (auto *a = args.getLastArg(clang::driver::options::OPT_save_temps_EQ))
358 args.getLastArg(clang::driver::options::OPT_record_command_line)) {
364 args.filtered(clang::driver::options::OPT_mlink_builtin_bitcode))
369 args.getLastArg(clang::driver::options::OPT_mrelocation_model)) {
389 args, clang::driver::options::OPT_pic_level, 0, diags)) {
392 << args.getLastArg(clang::driver::options::OPT_pic_level)
397 if (args.hasArg(clang::driver::options::OPT_pic_is_pie))
403 args.getLastArg(clang::driver::options::OPT_mcmodel_EQ)) {
415 clang::driver::options::OPT_mlarge_data_threshold_EQ)) {
425 if (args.hasFlag(clang::driver::options::OPT_fno_underscoring,
426 clang::driver::options::OPT_funderscoring, false)) {
432 /// options accordingly.
434 /// \param [in] opts The target options instance to update
438 args.getLastArg(clang::driver::options::OPT_triple))
442 args.getLastArg(clang::driver::options::OPT_target_cpu))
446 args.getLastArg(clang::driver::options::OPT_tune_cpu))
450 args.filtered(clang::driver::options::OPT_target_feature))
453 if (args.hasArg(clang::driver::options::OPT_fdisable_real_10))
456 if (args.hasArg(clang::driver::options::OPT_fdisable_real_3))
459 if (args.hasArg(clang::driver::options::OPT_fdisable_integer_2))
462 if (args.hasArg(clang::driver::options::OPT_fdisable_integer_16))
466 args.getLastArg(clang::driver::options::OPT_mabi_EQ)) {
503 // Treat multiple action options as an invocation error. Note that `clang
504 // -cc1` does accept multiple action options, but will only consider the
506 if (args.hasMultipleArgs(clang::driver::options::OPT_Action_Group)) {
515 args.getLastArg(clang::driver::options::OPT_Action_Group)) {
520 case clang::driver::options::OPT_test_io:
523 case clang::driver::options::OPT_E:
526 case clang::driver::options::OPT_fsyntax_only:
529 case clang::driver::options::OPT_emit_fir:
532 case clang::driver::options::OPT_emit_hlfir:
535 case clang::driver::options::OPT_emit_llvm:
538 case clang::driver::options::OPT_emit_llvm_bc:
541 case clang::driver::options::OPT_emit_obj:
544 case clang::driver::options::OPT_S:
547 case clang::driver::options::OPT_fdebug_unparse:
550 case clang::driver::options::OPT_fdebug_unparse_no_sema:
553 case clang::driver::options::OPT_fdebug_unparse_with_symbols:
556 case clang::driver::options::OPT_fdebug_unparse_with_modules:
559 case clang::driver::options::OPT_fdebug_dump_symbols:
562 case clang::driver::options::OPT_fdebug_dump_parse_tree:
565 case clang::driver::options::OPT_fdebug_dump_pft:
568 case clang::driver::options::OPT_fdebug_dump_all:
571 case clang::driver::options::OPT_fdebug_dump_parse_tree_no_sema:
574 case clang::driver::options::OPT_fdebug_dump_provenance:
577 case clang::driver::options::OPT_fdebug_dump_parsing_log:
580 case clang::driver::options::OPT_fdebug_measure_parse_tree:
583 case clang::driver::options::OPT_fdebug_pre_fir_tree:
586 case clang::driver::options::OPT_fget_symbols_sources:
589 case clang::driver::options::OPT_fget_definition:
592 case clang::driver::options::OPT_init_only:
597 // case clang::driver::options::OPT_emit_llvm:
598 // case clang::driver::options::OPT_emit_llvm_only:
599 // case clang::driver::options::OPT_emit_codegen_only:
600 // case clang::driver::options::OPT_emit_module:
607 clang::driver::options::OPT_fget_definition) {
627 if (llvm::opt::Arg *a = args.getLastArg(clang::driver::options::OPT_load)) {
633 args.getLastArg(clang::driver::options::OPT_plugin)) {
638 opts.outputFile = args.getLastArgValue(clang::driver::options::OPT_o);
639 opts.showHelp = args.hasArg(clang::driver::options::OPT_help);
640 opts.showVersion = args.hasArg(clang::driver::options::OPT_version);
642 args.hasArg(clang::driver::options::OPT_print_supported_cpus);
647 args.getLastArg(clang::driver::options::OPT_x)) {
674 args.getAllArgValues(clang::driver::options::OPT_INPUT);
693 // Set fortranForm based on options -ffree-form and -ffixed-form.
695 args.getLastArg(clang::driver::options::OPT_ffixed_form,
696 clang::driver::options::OPT_ffree_form)) {
698 arg->getOption().matches(clang::driver::options::OPT_ffixed_form)
705 args.getLastArg(clang::driver::options::OPT_ffixed_line_length_EQ)) {
728 args.getLastArg(clang::driver::options::OPT_fconvert_EQ)) {
740 args.hasFlag(clang::driver::options::OPT_fimplicit_none,
741 clang::driver::options::OPT_fno_implicit_none, false));
745 args.hasFlag(clang::driver::options::OPT_fbackslash,
746 clang::driver::options::OPT_fno_backslash,
752 args.hasFlag(clang::driver::options::OPT_flogical_abbreviations,
753 clang::driver::options::OPT_fno_logical_abbreviations,
758 args.hasFlag(clang::driver::options::OPT_funsigned,
759 clang::driver::options::OPT_fno_unsigned,
765 args.hasFlag(clang::driver::options::OPT_fxor_operator,
766 clang::driver::options::OPT_fno_xor_operator, false));
769 if (args.hasArg(clang::driver::options::OPT_fno_automatic)) {
776 args.hasFlag(clang::driver::options::OPT_fsave_main_program,
777 clang::driver::options::OPT_fno_save_main_program, false));
780 clang::driver::options::OPT_falternative_parameter_statement)) {
784 args.getLastArg(clang::driver::options::OPT_finput_charset_EQ)) {
822 /// options accordingly.
824 /// \param [in] opts The preprocessor options instance
829 for (const auto *currentArg : args.filtered(clang::driver::options::OPT_D,
830 clang::driver::options::OPT_U)) {
831 if (currentArg->getOption().matches(clang::driver::options::OPT_D)) {
839 for (const auto *currentArg : args.filtered(clang::driver::options::OPT_I))
845 args.filtered(clang::driver::options::OPT_fintrinsic_modules_path))
850 clang::driver::options::OPT_cpp, clang::driver::options::OPT_nocpp))
852 (currentArg->getOption().matches(clang::driver::options::OPT_cpp))
856 opts.noReformat = args.hasArg(clang::driver::options::OPT_fno_reformat);
858 args.hasArg(clang::driver::options::OPT_fpreprocess_include_lines);
859 opts.noLineDirectives = args.hasArg(clang::driver::options::OPT_P);
860 opts.showMacros = args.hasArg(clang::driver::options::OPT_dM);
864 /// options accordingly. Returns false if new errors are generated.
871 args.getAllArgValues(clang::driver::options::OPT_module_dir);
874 // https://gcc.gnu.org/onlinedocs/gfortran/Directory-Options.html
890 if (args.hasArg(clang::driver::options::OPT_fdebug_module_writer)) {
895 if (args.hasArg(clang::driver::options::OPT_fhermetic_module_files)) {
901 args.getLastArg(clang::driver::options::OPT_module_suffix)) {
907 clang::driver::options::OPT_fanalyzed_objects_for_unparse,
908 clang::driver::options::OPT_fno_analyzed_objects_for_unparse, true));
914 /// options accordingly. Returns false if new errors are generated.
922 if (args.hasArg(clang::driver::options::OPT_W_Joined)) {
924 args.getAllArgValues(clang::driver::options::OPT_W_Joined);
948 /// options accordingly. Returns false if new errors are generated.
954 if (args.hasArg(clang::driver::options::OPT_fdefault_real_8)) {
958 if (args.hasArg(clang::driver::options::OPT_fdefault_integer_8)) {
964 if (args.hasArg(clang::driver::options::OPT_fdefault_double_8)) {
965 if (!args.hasArg(clang::driver::options::OPT_fdefault_real_8)) {
973 // https://gcc.gnu.org/onlinedocs/gfortran/Fortran-Dialect-Options.html
976 if (args.hasArg(clang::driver::options::OPT_flarge_sizes))
980 auto language = args.getLastArgValue(clang::driver::options::OPT_x);
987 if (args.hasArg(clang::driver::options::OPT_fopenacc)) {
993 if (args.hasArg(clang::driver::options::OPT_pedantic)) {
999 if (args.hasArg(clang::driver::options::OPT_w))
1003 // TODO: Set proper options when more fortran standards
1005 if (args.hasArg(clang::driver::options::OPT_std_EQ)) {
1006 auto standard = args.getLastArgValue(clang::driver::options::OPT_std_EQ);
1025 llvm::opt::Arg *arg = args.getLastArg(clang::driver::options::OPT_fopenmp,
1026 clang::driver::options::OPT_fno_openmp);
1027 if (!arg || arg->getOption().matches(clang::driver::options::OPT_fno_openmp))
1038 args, clang::driver::options::OPT_fopenmp_version_EQ,
1042 if (args.hasArg(clang::driver::options::OPT_fopenmp_force_usm)) {
1045 if (args.hasArg(clang::driver::options::OPT_fopenmp_is_target_device)) {
1051 clang::driver::options::OPT_fopenmp_host_ir_file_path)) {
1059 clang::driver::options::OPT_fopenmp_assume_teams_oversubscription,
1060 clang::driver::options::
1065 if (args.hasArg(clang::driver::options::OPT_fopenmp_assume_no_thread_state))
1069 clang::driver::options::OPT_fopenmp_assume_no_nested_parallelism))
1073 clang::driver::options::OPT_fopenmp_assume_threads_oversubscription,
1074 clang::driver::options::
1079 if ((args.hasArg(clang::driver::options::OPT_fopenmp_target_debug) ||
1080 args.hasArg(clang::driver::options::OPT_fopenmp_target_debug_EQ))) {
1082 args, clang::driver::options::OPT_fopenmp_target_debug_EQ,
1086 args.hasArg(clang::driver::options::OPT_fopenmp_target_debug))
1089 if (args.hasArg(clang::driver::options::OPT_nogpulib))
1112 args.getLastArg(clang::driver::options::OPT_fopenmp_targets_EQ)) {
1146 /// Parses signed integer overflow options and populates the
1158 if (args.getLastArg(clang::driver::options::OPT_fwrapv))
1177 args.getLastArg(clang::driver::options::OPT_ffp_contract)) {
1194 if (args.getLastArg(clang::driver::options::OPT_menable_no_infs)) {
1198 if (args.getLastArg(clang::driver::options::OPT_menable_no_nans)) {
1202 if (args.getLastArg(clang::driver::options::OPT_fapprox_func)) {
1206 if (args.getLastArg(clang::driver::options::OPT_fno_signed_zeros)) {
1210 if (args.getLastArg(clang::driver::options::OPT_mreassociate)) {
1214 if (args.getLastArg(clang::driver::options::OPT_freciprocal_math)) {
1218 if (args.getLastArg(clang::driver::options::OPT_ffast_math)) {
1231 /// Parses vscale range options and populates the CompilerInvocation
1241 args.getLastArg(clang::driver::options::OPT_mvscale_min_EQ);
1243 args.getLastArg(clang::driver::options::OPT_mvscale_max_EQ);
1290 if (args.hasArg(clang::driver::options::OPT_dependent_lib) &&
1300 args.getAllArgValues(clang::driver::options::OPT_dependent_lib);
1333 llvm::opt::Visibility visibilityMask(clang::driver::options::FC1Option);
1346 for (const auto *a : args.filtered(clang::driver::options::OPT_UNKNOWN)) {
1358 if (args.hasArg(clang::driver::options::OPT_flang_experimental_hlfir) ||
1359 args.hasArg(clang::driver::options::OPT_emit_hlfir)) {
1364 if (args.hasArg(clang::driver::options::OPT_flang_deprecated_no_hlfir) &&
1365 !args.hasArg(clang::driver::options::OPT_emit_hlfir)) {
1366 if (args.hasArg(clang::driver::options::OPT_flang_experimental_hlfir)) {
1369 "Options '-flang-experimental-hlfir' and "
1377 if (args.hasArg(clang::driver::options::OPT_fno_ppc_native_vec_elem_order)) {
1382 if (args.hasFlag(clang::driver::options::OPT_finit_global_zero,
1383 clang::driver::options::OPT_fno_init_global_zero,
1389 // Preserve all the remark options requested, i.e. -Rpass, -Rpass-missed or
1392 for (auto *a : args.filtered(clang::driver::options::OPT_R_Group)) {
1393 if (a->getOption().matches(clang::driver::options::OPT_R_value_Group))
1406 if (!args.hasFlag(clang::driver::options::OPT_frealloc_lhs,
1407 clang::driver::options::OPT_fno_realloc_lhs, true))
1421 // Collect LLVM (-mllvm) and MLIR (-mmlir) options.
1422 // NOTE: Try to avoid adding any options directly to `llvmArgs` or
1427 args.getAllArgValues(clang::driver::options::OPT_mllvm);
1429 args.getAllArgValues(clang::driver::options::OPT_mmlir);
1452 // Process the timing-related options.
1453 if (args.hasArg(clang::driver::options::OPT_ftime_report))
1651 // the math related options using Fortran::commmon::MathOptionsBase,