reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
674 unsigned OptimizationLevel = getOptimizationLevel(Args, IK, Diags); 681 << Args.getLastArg(OPT_O)->getAsString(Args) << "-O" << MaxOptLevel; 681 << Args.getLastArg(OPT_O)->getAsString(Args) << "-O" << MaxOptLevel; 693 if (Arg *InlineArg = Args.getLastArg( 707 Opts.ExperimentalNewPassManager = Args.hasFlag( 712 Args.hasFlag(OPT_fdebug_pass_manager, OPT_fno_debug_pass_manager, 715 if (Arg *A = Args.getLastArg(OPT_fveclib)) { 726 Diags.Report(diag::err_drv_invalid_value) << A->getAsString(Args) << Name; 729 if (Arg *A = Args.getLastArg(OPT_debug_info_kind_EQ)) { 738 Diags.Report(diag::err_drv_invalid_value) << A->getAsString(Args) 743 if (Arg *A = Args.getLastArg(OPT_debugger_tuning_EQ)) { 750 Diags.Report(diag::err_drv_invalid_value) << A->getAsString(Args) 755 Opts.DwarfVersion = getLastArgIntValue(Args, OPT_dwarf_version_EQ, 0, Diags); 756 Opts.DebugColumnInfo = Args.hasArg(OPT_dwarf_column_info); 757 Opts.EmitCodeView = Args.hasArg(OPT_gcodeview); 758 Opts.CodeViewGHash = Args.hasArg(OPT_gcodeview_ghash); 759 Opts.MacroDebugInfo = Args.hasArg(OPT_debug_info_macro); 760 Opts.WholeProgramVTables = Args.hasArg(OPT_fwhole_program_vtables); 762 Args.hasArg(OPT_fvirtual_function_elimination); 763 Opts.LTOVisibilityPublicStd = Args.hasArg(OPT_flto_visibility_public_std); 764 Opts.SplitDwarfFile = Args.getLastArgValue(OPT_split_dwarf_file); 765 Opts.SplitDwarfOutput = Args.getLastArgValue(OPT_split_dwarf_output); 766 Opts.SplitDwarfInlining = !Args.hasArg(OPT_fno_split_dwarf_inlining); 767 Opts.DebugTypeExtRefs = Args.hasArg(OPT_dwarf_ext_refs); 768 Opts.DebugExplicitImport = Args.hasArg(OPT_dwarf_explicit_import); 769 Opts.DebugFwdTemplateParams = Args.hasArg(OPT_debug_forward_template_params); 770 Opts.EmbedSource = Args.hasArg(OPT_gembed_source); 772 for (const auto &Arg : Args.getAllArgValues(OPT_fdebug_prefix_map_EQ)) 776 Args.getLastArg(OPT_emit_llvm_uselists, OPT_no_emit_llvm_uselists)) 779 Opts.DisableLLVMPasses = Args.hasArg(OPT_disable_llvm_passes); 780 Opts.DisableLifetimeMarkers = Args.hasArg(OPT_disable_lifetimemarkers); 790 Opts.EnableDebugEntryValues = Args.hasArg(OPT_femit_debug_entry_values); 792 Opts.DisableO0ImplyOptNone = Args.hasArg(OPT_disable_O0_optnone); 793 Opts.DisableRedZone = Args.hasArg(OPT_disable_red_zone); 794 Opts.IndirectTlsSegRefs = Args.hasArg(OPT_mno_tls_direct_seg_refs); 795 Opts.ForbidGuardVariables = Args.hasArg(OPT_fforbid_guard_variables); 796 Opts.UseRegisterSizedBitfieldAccess = Args.hasArg( 798 Opts.RelaxedAliasing = Args.hasArg(OPT_relaxed_aliasing); 799 Opts.StructPathTBAA = !Args.hasArg(OPT_no_struct_path_tbaa); 800 Opts.NewStructPathTBAA = !Args.hasArg(OPT_no_struct_path_tbaa) && 801 Args.hasArg(OPT_new_struct_path_tbaa); 803 Args.hasFlag(OPT_ffine_grained_bitfield_accesses, 805 Opts.DwarfDebugFlags = Args.getLastArgValue(OPT_dwarf_debug_flags); 806 Opts.RecordCommandLine = Args.getLastArgValue(OPT_record_command_line); 807 Opts.MergeAllConstants = Args.hasArg(OPT_fmerge_all_constants); 808 Opts.NoCommon = Args.hasArg(OPT_fno_common); 809 Opts.NoImplicitFloat = Args.hasArg(OPT_no_implicit_float); 810 Opts.OptimizeSize = getOptimizationLevelSize(Args); 811 Opts.SimplifyLibCalls = !(Args.hasArg(OPT_fno_builtin) || 812 Args.hasArg(OPT_ffreestanding)); 814 getAllNoBuiltinFuncValues(Args, Opts.NoBuiltinFuncs); 816 Args.hasFlag(OPT_funroll_loops, OPT_fno_unroll_loops, 818 Opts.RerollLoops = Args.hasArg(OPT_freroll_loops); 820 Opts.DisableIntegratedAS = Args.hasArg(OPT_fno_integrated_as); 821 Opts.Autolink = !Args.hasArg(OPT_fno_autolink); 822 Opts.SampleProfileFile = Args.getLastArgValue(OPT_fprofile_sample_use_EQ); 823 Opts.DebugInfoForProfiling = Args.hasFlag( 826 Args.hasArg(OPT_ggnu_pubnames) 828 : Args.hasArg(OPT_gpubnames) 831 Opts.DebugRangesBaseAddress = Args.hasArg(OPT_fdebug_ranges_base_address); 833 setPGOInstrumentor(Opts, Args, Diags); 835 Args.getLastArgValue(OPT_fprofile_instrument_path_EQ); 837 Args.getLastArgValue(OPT_fprofile_instrument_use_path_EQ); 841 Args.getLastArgValue(OPT_fprofile_remapping_file_EQ); 844 << Args.getLastArg(OPT_fprofile_remapping_file_EQ)->getAsString(Args) 844 << Args.getLastArg(OPT_fprofile_remapping_file_EQ)->getAsString(Args) 849 Args.hasFlag(OPT_fcoverage_mapping, OPT_fno_coverage_mapping, false); 850 Opts.DumpCoverageMapping = Args.hasArg(OPT_dump_coverage_mapping); 851 Opts.AsmVerbose = Args.hasArg(OPT_masm_verbose); 852 Opts.PreserveAsmComments = !Args.hasArg(OPT_fno_preserve_as_comments); 853 Opts.AssumeSaneOperatorNew = !Args.hasArg(OPT_fno_assume_sane_operator_new); 854 Opts.ObjCAutoRefCountExceptions = Args.hasArg(OPT_fobjc_arc_exceptions); 855 Opts.CXAAtExit = !Args.hasArg(OPT_fno_use_cxa_atexit); 857 Args.hasArg(OPT_fregister_global_dtors_with_atexit); 858 Opts.CXXCtorDtorAliases = Args.hasArg(OPT_mconstructor_aliases); 860 Opts.DebugPass = Args.getLastArgValue(OPT_mdebug_pass); 863 if (Arg *A = Args.getLastArg(OPT_mframe_pointer_EQ)) { 874 Diags.Report(diag::err_drv_invalid_value) << A->getAsString(Args) << Name; 884 if (Args.hasArg(OPT_pg)) 887 Opts.DisableFree = Args.hasArg(OPT_disable_free); 888 Opts.DiscardValueNames = Args.hasArg(OPT_discard_value_names); 889 Opts.DisableTailCalls = Args.hasArg(OPT_mdisable_tail_calls); 891 Args.hasArg(OPT_fno_escaping_block_tail_calls); 892 Opts.FloatABI = Args.getLastArgValue(OPT_mfloat_abi); 893 Opts.LessPreciseFPMAD = Args.hasArg(OPT_cl_mad_enable) || 894 Args.hasArg(OPT_cl_unsafe_math_optimizations) || 895 Args.hasArg(OPT_cl_fast_relaxed_math); 896 Opts.LimitFloatPrecision = Args.getLastArgValue(OPT_mlimit_float_precision); 897 Opts.NoInfsFPMath = (Args.hasArg(OPT_menable_no_infinities) || 898 Args.hasArg(OPT_cl_finite_math_only) || 899 Args.hasArg(OPT_cl_fast_relaxed_math)); 900 Opts.NoNaNsFPMath = (Args.hasArg(OPT_menable_no_nans) || 901 Args.hasArg(OPT_cl_unsafe_math_optimizations) || 902 Args.hasArg(OPT_cl_finite_math_only) || 903 Args.hasArg(OPT_cl_fast_relaxed_math)); 904 Opts.NoSignedZeros = (Args.hasArg(OPT_fno_signed_zeros) || 905 Args.hasArg(OPT_cl_no_signed_zeros) || 906 Args.hasArg(OPT_cl_unsafe_math_optimizations) || 907 Args.hasArg(OPT_cl_fast_relaxed_math)); 908 Opts.Reassociate = Args.hasArg(OPT_mreassociate); 909 Opts.FlushDenorm = Args.hasArg(OPT_cl_denorms_are_zero) || 910 (Args.hasArg(OPT_fcuda_is_device) && 911 Args.hasArg(OPT_fcuda_flush_denormals_to_zero)); 913 Args.hasArg(OPT_cl_fp32_correctly_rounded_divide_sqrt); 915 Args.hasArg(OPT_cl_uniform_work_group_size); 916 Opts.Reciprocals = Args.getAllArgValues(OPT_mrecip_EQ); 917 Opts.ReciprocalMath = Args.hasArg(OPT_freciprocal_math); 918 Opts.NoTrappingMath = Args.hasArg(OPT_fno_trapping_math); 920 !Args.hasArg(OPT_fno_strict_float_cast_overflow); 922 Opts.NoZeroInitializedInBSS = Args.hasArg(OPT_mno_zero_initialized_in_bss); 923 Opts.NumRegisterParameters = getLastArgIntValue(Args, OPT_mregparm, 0, Diags); 924 Opts.NoExecStack = Args.hasArg(OPT_mno_exec_stack); 925 Opts.FatalWarnings = Args.hasArg(OPT_massembler_fatal_warnings); 926 Opts.NoWarn = Args.hasArg(OPT_massembler_no_warn); 927 Opts.EnableSegmentedStacks = Args.hasArg(OPT_split_stacks); 928 Opts.RelaxAll = Args.hasArg(OPT_mrelax_all); 930 Args.hasArg(OPT_mincremental_linker_compatible); 932 Args.hasArg(OPT_mpie_copy_relocations); 933 Opts.NoPLT = Args.hasArg(OPT_fno_plt); 934 Opts.SaveTempLabels = Args.hasArg(OPT_msave_temp_labels); 935 Opts.NoDwarfDirectoryAsm = Args.hasArg(OPT_fno_dwarf_directory_asm); 936 Opts.SoftFloat = Args.hasArg(OPT_msoft_float); 937 Opts.StrictEnums = Args.hasArg(OPT_fstrict_enums); 938 Opts.StrictReturn = !Args.hasArg(OPT_fno_strict_return); 939 Opts.StrictVTablePointers = Args.hasArg(OPT_fstrict_vtable_pointers); 940 Opts.ForceEmitVTables = Args.hasArg(OPT_fforce_emit_vtables); 941 Opts.UnsafeFPMath = Args.hasArg(OPT_menable_unsafe_fp_math) || 942 Args.hasArg(OPT_cl_unsafe_math_optimizations) || 943 Args.hasArg(OPT_cl_fast_relaxed_math); 944 Opts.UnwindTables = Args.hasArg(OPT_munwind_tables); 945 Opts.RelocationModel = getRelocModel(Args, Diags); 946 Opts.ThreadModel = Args.getLastArgValue(OPT_mthread_model, "posix"); 949 << Args.getLastArg(OPT_mthread_model)->getAsString(Args) 949 << Args.getLastArg(OPT_mthread_model)->getAsString(Args) 951 Opts.TrapFuncName = Args.getLastArgValue(OPT_ftrap_function_EQ); 952 Opts.UseInitArray = Args.hasArg(OPT_fuse_init_array); 954 Opts.FunctionSections = Args.hasFlag(OPT_ffunction_sections, 956 Opts.DataSections = Args.hasFlag(OPT_fdata_sections, 959 Args.hasFlag(OPT_fstack_size_section, OPT_fno_stack_size_section, false); 960 Opts.UniqueSectionNames = Args.hasFlag(OPT_funique_section_names, 963 Opts.MergeFunctions = Args.hasArg(OPT_fmerge_functions); 965 Opts.NoUseJumpTables = Args.hasArg(OPT_fno_jump_tables); 967 Opts.NullPointerIsValid = Args.hasArg(OPT_fno_delete_null_pointer_checks); 969 Opts.ProfileSampleAccurate = Args.hasArg(OPT_fprofile_sample_accurate); 971 Opts.PrepareForLTO = Args.hasArg(OPT_flto, OPT_flto_EQ); 973 if (Arg *A = Args.getLastArg(OPT_flto_EQ)) { 978 Diags.Report(diag::err_drv_invalid_value) << A->getAsString(Args) << S; 980 Opts.LTOUnit = Args.hasFlag(OPT_flto_unit, OPT_fno_lto_unit, false); 981 Opts.EnableSplitLTOUnit = Args.hasArg(OPT_fsplit_lto_unit); 982 if (Arg *A = Args.getLastArg(OPT_fthinlto_index_EQ)) { 985 << A->getAsString(Args) << "-x ir"; 986 Opts.ThinLTOIndexFile = Args.getLastArgValue(OPT_fthinlto_index_EQ); 988 if (Arg *A = Args.getLastArg(OPT_save_temps_EQ)) 994 Opts.ThinLinkBitcodeFile = Args.getLastArgValue(OPT_fthin_link_bitcode_EQ); 996 Opts.MSVolatile = Args.hasArg(OPT_fms_volatile); 998 Opts.VectorizeLoop = Args.hasArg(OPT_vectorize_loops); 999 Opts.VectorizeSLP = Args.hasArg(OPT_vectorize_slp); 1001 Opts.PreferVectorWidth = Args.getLastArgValue(OPT_mprefer_vector_width_EQ); 1003 Opts.MainFileName = Args.getLastArgValue(OPT_main_file_name); 1004 Opts.VerifyModule = !Args.hasArg(OPT_disable_llvm_verifier); 1006 Opts.ControlFlowGuardNoChecks = Args.hasArg(OPT_cfguard_no_checks); 1007 Opts.ControlFlowGuard = Args.hasArg(OPT_cfguard); 1009 Opts.DisableGCov = Args.hasArg(OPT_test_coverage); 1010 Opts.EmitGcovArcs = Args.hasArg(OPT_femit_coverage_data); 1011 Opts.EmitGcovNotes = Args.hasArg(OPT_femit_coverage_notes); 1013 Opts.CoverageDataFile = Args.getLastArgValue(OPT_coverage_data_file); 1014 Opts.CoverageNotesFile = Args.getLastArgValue(OPT_coverage_notes_file); 1015 Opts.CoverageExtraChecksum = Args.hasArg(OPT_coverage_cfg_checksum); 1017 Args.hasArg(OPT_coverage_no_function_names_in_data); 1019 Args.getLastArgValue(OPT_fprofile_filter_files_EQ); 1021 Args.getLastArgValue(OPT_fprofile_exclude_files_EQ); 1023 Args.hasArg(OPT_coverage_exit_block_before_body); 1024 if (Args.hasArg(OPT_coverage_version_EQ)) { 1025 StringRef CoverageVersion = Args.getLastArgValue(OPT_coverage_version_EQ); 1028 << Args.getLastArg(OPT_coverage_version_EQ)->getAsString(Args) 1028 << Args.getLastArg(OPT_coverage_version_EQ)->getAsString(Args) 1036 if (Arg *A = Args.getLastArg(OPT_fembed_bitcode_EQ)) { 1045 Diags.Report(diag::err_drv_invalid_value) << A->getAsString(Args) << Name; 1055 for (const auto &A : Args) { 1065 A->render(Args, ASL); 1075 Opts.PreserveVec3Type = Args.hasArg(OPT_fpreserve_vec3_type); 1076 Opts.InstrumentFunctions = Args.hasArg(OPT_finstrument_functions); 1078 Args.hasArg(OPT_finstrument_functions_after_inlining); 1080 Args.hasArg(OPT_finstrument_function_entry_bare); 1083 Args.hasArg(OPT_fxray_instrument); 1085 Args.hasArg(OPT_fxray_always_emit_customevents); 1087 Args.hasArg(OPT_fxray_always_emit_typedevents); 1089 getLastArgIntValue(Args, OPT_fxray_instruction_threshold_EQ, 200, Diags); 1092 Args.getAllArgValues(OPT_fxray_instrumentation_bundle); 1097 parseXRayInstrumentationBundle("-fxray-instrumentation-bundle=", A, Args, 1100 Opts.InstrumentForProfiling = Args.hasArg(OPT_pg); 1101 Opts.CallFEntry = Args.hasArg(OPT_mfentry); 1102 Opts.EmitOpenCLArgMetadata = Args.hasArg(OPT_cl_kernel_arg_info); 1104 if (const Arg *A = Args.getLastArg(OPT_fcf_protection_EQ)) { 1114 Diags.Report(diag::err_drv_invalid_value) << A->getAsString(Args) << Name; 1119 if (const Arg *A = Args.getLastArg(OPT_compress_debug_sections, 1134 Opts.RelaxELFRelocations = Args.hasArg(OPT_mrelax_relocations); 1135 Opts.DebugCompilationDir = Args.getLastArgValue(OPT_fdebug_compilation_dir); 1137 Args.filtered(OPT_mlink_bitcode_file, OPT_mlink_builtin_bitcode)) { 1150 getLastArgIntValue(Args, OPT_fsanitize_coverage_type, 0, Diags); 1152 Args.hasArg(OPT_fsanitize_coverage_indirect_calls); 1153 Opts.SanitizeCoverageTraceBB = Args.hasArg(OPT_fsanitize_coverage_trace_bb); 1154 Opts.SanitizeCoverageTraceCmp = Args.hasArg(OPT_fsanitize_coverage_trace_cmp); 1155 Opts.SanitizeCoverageTraceDiv = Args.hasArg(OPT_fsanitize_coverage_trace_div); 1156 Opts.SanitizeCoverageTraceGep = Args.hasArg(OPT_fsanitize_coverage_trace_gep); 1158 Args.hasArg(OPT_fsanitize_coverage_8bit_counters); 1159 Opts.SanitizeCoverageTracePC = Args.hasArg(OPT_fsanitize_coverage_trace_pc); 1161 Args.hasArg(OPT_fsanitize_coverage_trace_pc_guard); 1162 Opts.SanitizeCoverageNoPrune = Args.hasArg(OPT_fsanitize_coverage_no_prune); 1164 Args.hasArg(OPT_fsanitize_coverage_inline_8bit_counters); 1165 Opts.SanitizeCoveragePCTable = Args.hasArg(OPT_fsanitize_coverage_pc_table); 1167 Args.hasArg(OPT_fsanitize_coverage_stack_depth); 1169 getLastArgIntValue(Args, OPT_fsanitize_memory_track_origins_EQ, 0, Diags); 1171 Args.hasFlag(OPT_fsanitize_memory_use_after_dtor, 1174 Opts.SanitizeMinimalRuntime = Args.hasArg(OPT_fsanitize_minimal_runtime); 1175 Opts.SanitizeCfiCrossDso = Args.hasArg(OPT_fsanitize_cfi_cross_dso); 1177 Args.hasArg(OPT_fsanitize_cfi_icall_generalize_pointers); 1179 Args.hasArg(OPT_fsanitize_cfi_canonical_jump_tables); 1180 Opts.SanitizeStats = Args.hasArg(OPT_fsanitize_stats); 1181 if (Arg *A = Args.getLastArg( 1188 if (Arg *A = Args.getLastArg(OPT_fsanitize_address_use_after_scope, 1194 Args.hasArg(OPT_fsanitize_address_globals_dead_stripping); 1195 if (Arg *A = Args.getLastArg(OPT_fsanitize_address_use_odr_indicator, 1201 getLastArgIntValue(Args, OPT_stack_protector_buffer_size, 8, Diags); 1202 Opts.StackRealignment = Args.hasArg(OPT_mstackrealign); 1203 if (Arg *A = Args.getLastArg(OPT_mstack_alignment)) { 1210 if (Arg *A = Args.getLastArg(OPT_mstack_probe_size)) { 1217 Opts.NoStackArgProbe = Args.hasArg(OPT_mno_stack_arg_probe); 1219 if (Arg *A = Args.getLastArg(OPT_fobjc_dispatch_method_EQ)) { 1227 Diags.Report(diag::err_drv_invalid_value) << A->getAsString(Args) << Name; 1236 if (Args.hasArg(OPT_fno_objc_convert_messages_to_runtime_calls)) 1239 if (Args.getLastArg(OPT_femulated_tls) || 1240 Args.getLastArg(OPT_fno_emulated_tls)) { 1243 Args.hasFlag(OPT_femulated_tls, OPT_fno_emulated_tls, false); 1246 if (Arg *A = Args.getLastArg(OPT_ftlsmodel_EQ)) { 1255 Diags.Report(diag::err_drv_invalid_value) << A->getAsString(Args) << Name; 1262 if (Arg *A = Args.getLastArg(OPT_fdenormal_fp_math_EQ)) { 1271 Diags.Report(diag::err_drv_invalid_value) << A->getAsString(Args) << Val; 1274 if (Arg *A = Args.getLastArg(OPT_fpcc_struct_return, OPT_freg_struct_return)) { 1283 Opts.DependentLibraries = Args.getAllArgValues(OPT_dependent_lib); 1284 Opts.LinkerOptions = Args.getAllArgValues(OPT_linker_option); 1287 Opts.OptRecordFile = Args.getLastArgValue(OPT_opt_record_file); 1291 if (Arg *A = Args.getLastArg(OPT_opt_record_passes)) { 1296 if (Arg *A = Args.getLastArg(OPT_opt_record_format)) { 1301 if (Arg *A = Args.getLastArg(OPT_Rpass_EQ)) { 1303 GenerateOptimizationRemarkRegex(Diags, Args, A); 1307 if (Arg *A = Args.getLastArg(OPT_Rpass_missed_EQ)) { 1309 GenerateOptimizationRemarkRegex(Diags, Args, A); 1313 if (Arg *A = Args.getLastArg(OPT_Rpass_analysis_EQ)) { 1315 GenerateOptimizationRemarkRegex(Diags, Args, A); 1320 Args.hasArg(options::OPT_fdiagnostics_show_hotness); 1332 Args, options::OPT_fdiagnostics_hotness_threshold_EQ, 0); 1348 Opts.RewriteMapFiles = Args.getAllArgValues(OPT_frewrite_map_file); 1353 Args.getAllArgValues(OPT_fsanitize_recover_EQ), Diags, 1356 Args.getAllArgValues(OPT_fsanitize_trap_EQ), Diags, 1360 Args.getLastArgValue(OPT_fcuda_include_gpubinary); 1362 Opts.Backchain = Args.hasArg(OPT_mbackchain); 1365 Args, OPT_fsanitize_undefined_strip_path_components_EQ, 0, Diags); 1367 Opts.EmitVersionIdentMetadata = Args.hasFlag(OPT_Qy, OPT_Qn, true); 1369 Opts.Addrsig = Args.hasArg(OPT_faddrsig); 1371 if (Arg *A = Args.getLastArg(OPT_msign_return_address_EQ)) { 1383 << A->getAsString(Args) << SignScope; 1385 if (Arg *A = Args.getLastArg(OPT_msign_return_address_key_EQ)) { 1396 << A->getAsString(Args) << SignKey; 1401 Opts.BranchTargetEnforcement = Args.hasArg(OPT_mbranch_target_enforce); 1403 Opts.KeepStaticConsts = Args.hasArg(OPT_fkeep_static_consts); 1405 Opts.SpeculativeLoadHardening = Args.hasArg(OPT_mspeculative_load_hardening); 1407 Opts.DefaultFunctionAttrs = Args.getAllArgValues(OPT_default_function_attr); 1409 Opts.PassPlugins = Args.getAllArgValues(OPT_fpass_plugin_EQ); 1411 Opts.SymbolPartition = Args.getLastArgValue(OPT_fsymbol_partition_EQ);