Mercurial > hg > CbC > GCC_original
diff gcc/common.opt @ 16:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | f6334be47118 |
children | 84e7813d76e9 |
line wrap: on
line diff
--- a/gcc/common.opt Sun Aug 21 07:07:55 2011 +0900 +++ b/gcc/common.opt Fri Oct 27 22:46:09 2017 +0900 @@ -1,7 +1,6 @@ ; Options for the language- and target-independent parts of the compiler. -; Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 -; Free Software Foundation, Inc. +; Copyright (C) 2003-2017 Free Software Foundation, Inc. ; ; This file is part of GCC. ; @@ -32,21 +31,33 @@ Variable int optimize_size +Variable +int optimize_debug + ; Not used directly to control optimizations, only to save -Ofast ; setting for "optimize" attributes. Variable int optimize_fast +; True if this is the lto front end. This is used to disable gimple +; generation and lowering passes that are normally run on the output +; of a front end. These passes must be bypassed for lto since they +; have already been done before the gimple was written. +Variable +bool in_lto_p = false + +; This variable is set to non-0 only by LTO front-end. 1 indicates that +; the output produced will be used for incrmeental linking (thus weak symbols +; can still be bound). +Variable +int flag_incremental_link = 0 + ; 0 means straightforward implementation of complex divide acceptable. ; 1 means wide ranges of inputs must work for complex divide. ; 2 means C99-like requirements for complex multiply and divide. Variable int flag_complex_method = 1 -; Nonzero if subexpressions must be evaluated from left-to-right. -Variable -int flag_evaluation_order = 0 - ; Language specific warning pass for unused results. Variable bool flag_warn_unused_result = false @@ -58,6 +69,10 @@ Variable int flag_generate_lto +; Nonzero if we should write GIMPLE bytecode for offload compilation. +Variable +int flag_generate_offload = 0 + ; True to warn about any objects definitions whose size is larger ; than N bytes. Also want about function definitions whose returned ; values are larger than N bytes, where N is 'larger_than_size'. @@ -131,13 +146,14 @@ Variable unsigned int initial_max_fld_align = TARGET_DEFAULT_PACK_STRUCT -Variable -enum vect_verbosity_levels user_vect_verbosity_level = MAX_VERBOSITY_LEVEL - ; Type of stack check. Variable enum stack_check_type flag_stack_check = NO_STACK_CHECK +; True if stack usage information needs to be computed. +Variable +bool flag_stack_usage_info = false + ; -dA causes debug commentary information to be produced in ; the generated assembly code (to make it more readable). This option ; is generally only of use to those who actually need to read the @@ -147,6 +163,18 @@ Variable int flag_debug_asm +; How many NOP insns to place at each function entry by default +Variable +HOST_WIDE_INT function_entry_patch_area_size + +; And how far the real asm entry point is into this area +Variable +HOST_WIDE_INT function_entry_patch_area_start + +; Balance between GNAT encodings and standard DWARF to emit. +Variable +enum dwarf_gnat_encodings gnat_encodings = DWARF_GNAT_ENCODINGS_DEFAULT + ; -dP causes the rtl to be emitted as a comment in assembly. Variable int flag_dump_rtl_in_asm @@ -163,9 +191,6 @@ Variable int flag_print_asm_name -Variable -enum graph_dump_types graph_dump_format = no_graph - ; Name of top-level original source file (what was input to cpp). ; This comes from the #-command at the beginning of the actual input. ; If there isn't any there, then this is the cc1 input file name. @@ -200,6 +225,26 @@ Variable bool flag_opts_finished +; What the sanitizer should instrument +Variable +unsigned int flag_sanitize + +; What sanitizers should recover from errors +Variable +unsigned int flag_sanitize_recover = (SANITIZE_UNDEFINED | SANITIZE_UNDEFINED_NONDEFAULT | SANITIZE_KERNEL_ADDRESS) & ~(SANITIZE_UNREACHABLE | SANITIZE_RETURN) + +; What the coverage sanitizers should instrument +Variable +unsigned int flag_sanitize_coverage + +; Flag whether a prefix has been added to dump_base_name +Variable +bool dump_base_name_prefixed = false + +; Flag whether HSA generation has been explicitely disabled +Variable +bool flag_disable_hsa = false + ### Driver @@ -256,11 +301,11 @@ -help Common Driver Var(help_flag) -Display this information +Display this information. -help= Common Driver Report Joined ---help=<class> Display descriptions of a specific class of options. <class> is one or more of optimizers, target, warnings, undocumented, params +--help=<class> Display descriptions of a specific class of options. <class> is one or more of optimizers, target, warnings, undocumented, params. -language Driver Separate Alias(x) @@ -280,6 +325,9 @@ -no-standard-libraries Driver Alias(nostdlib) +-no-sysroot-suffix +Driver Var(no_sysroot_suffix) + -no-warnings Common Alias(w) @@ -296,13 +344,16 @@ Driver Alias(pass-exit-codes) -pedantic -Common Alias(pedantic) +Common Alias(Wpedantic) -pedantic-errors Common Alias(pedantic-errors) -pie -Common Alias(pie) +Driver Alias(pie) + +-static-pie +Driver Alias(static-pie) -pipe Driver Alias(pipe) @@ -334,6 +385,9 @@ -print-multi-os-directory Driver Alias(print-multi-os-directory) +-print-multiarch +Driver Alias(print-multiarch) + -print-prog-name Driver Separate Alias(print-prog-name=) @@ -356,7 +410,7 @@ Driver Alias(save-temps) -shared -Common Alias(shared) +Driver Alias(shared) -specs Driver Separate Alias(specs=) @@ -372,7 +426,7 @@ -target-help Common Driver -Alias for --help=target +Alias for --help=target. -time Driver Alias(time) @@ -397,7 +451,7 @@ -param Common Separate ---param <param>=<value> Set parameter <param> to value. See below for a complete list of parameters +--param <param>=<value> Set parameter <param> to value. See below for a complete list of parameters. -param= Common Joined Alias(-param) @@ -425,15 +479,19 @@ O Common JoinedOrMissing Optimization --O<number> Set optimization level to <number> +-O<number> Set optimization level to <number>. Os Common Optimization -Optimize for space rather than speed +Optimize for space rather than speed. Ofast Common Optimization -Optimize for speed disregarding exact standards compliance +Optimize for speed disregarding exact standards compliance. + +Og +Common Optimization +Optimize for debugging experience rather than speed or size. Q Driver @@ -456,211 +514,309 @@ Tbss Driver Separate +Tbss= +Driver Joined + Tdata Driver Separate +Tdata= +Driver Joined + Ttext Driver Separate +Ttext= +Driver Joined + W Common RejectNegative Warning Alias(Wextra) -This switch is deprecated; use -Wextra instead +This switch is deprecated; use -Wextra instead. Wa, -Driver JoinedOrMissing +Driver JoinedOrMissing RejectNegative Wl, -Driver JoinedOrMissing +Driver JoinedOrMissing RejectNegative Wp, -Driver JoinedOrMissing +Driver JoinedOrMissing RejectNegative Waggregate-return Common Var(warn_aggregate_return) Warning -Warn about returning structures, unions or arrays +Warn about returning structures, unions or arrays. + +Waggressive-loop-optimizations +Common Var(warn_aggressive_loop_optimizations) Init(1) Warning +Warn if a loop with constant number of iterations triggers undefined behavior. Warray-bounds Common Var(warn_array_bounds) Warning -Warn if an array is accessed out of bounds +Warn if an array is accessed out of bounds. + +Warray-bounds= +Common Joined RejectNegative UInteger Var(warn_array_bounds) Warning IntegerRange(0, 2) +Warn if an array is accessed out of bounds. Wattributes Common Var(warn_attributes) Init(1) Warning -Warn about inappropriate attribute usage +Warn about inappropriate attribute usage. + +Wattribute-alias +Common Var(warn_attributes) Init(1) Warning +Warn about type safety and similar errors in attribute alias and related. Wcast-align Common Var(warn_cast_align) Warning -Warn about pointer casts which increase alignment +Warn about pointer casts which increase alignment. + +Wcast-align=strict +Common Var(warn_cast_align,2) Warning +Warn about pointer casts which increase alignment. Wcpp Common Var(warn_cpp) Init(1) Warning -Warn when a #warning directive is encountered +Warn when a #warning directive is encountered. Wdeprecated-declarations Common Var(warn_deprecated_decl) Init(1) Warning -Warn about uses of __attribute__((deprecated)) declarations +Warn about uses of __attribute__((deprecated)) declarations. Wdisabled-optimization Common Var(warn_disabled_optimization) Warning -Warn when an optimization pass is disabled +Warn when an optimization pass is disabled. Werror Common Var(warnings_are_errors) -Treat all warnings as errors +Treat all warnings as errors. Werror= Common Joined -Treat specified warning as error +Treat specified warning as error. Wextra Common Var(extra_warnings) Warning -Print extra (possibly unwanted) warnings +Print extra (possibly unwanted) warnings. Wfatal-errors Common Var(flag_fatal_errors) -Exit on the first error occurred +Exit on the first error occurred. Wframe-larger-than= -Common RejectNegative Joined UInteger --Wframe-larger-than=<number> Warn if a function's stack frame requires more than <number> bytes +Common RejectNegative Joined UInteger Warning +-Wframe-larger-than=<number> Warn if a function's stack frame requires more than <number> bytes. + +Wfree-nonheap-object +Common Var(warn_free_nonheap_object) Init(1) Warning +Warn when attempting to free a non-heap object. + +Whsa +Common Var(warn_hsa) Init(1) Warning +Warn when a function cannot be expanded to HSAIL. + +Wimplicit-fallthrough +Common Alias(Wimplicit-fallthrough=,3,0) Warning + +Wimplicit-fallthrough= +Common Var(warn_implicit_fallthrough) RejectNegative Joined UInteger Warning IntegerRange(0, 5) +Warn when a switch case falls through. Winline Common Var(warn_inline) Warning -Warn when an inlined function cannot be inlined +Warn when an inlined function cannot be inlined. + +Winvalid-memory-model +Common Var(warn_invalid_memory_model) Init(1) Warning +Warn when an atomic memory model parameter is known to be outside the valid range. Wlarger-than- Common RejectNegative Joined Warning Undocumented Alias(Wlarger-than=) Wlarger-than= Common RejectNegative Joined UInteger Warning --Wlarger-than=<number> Warn if an object is larger than <number> bytes +-Wlarger-than=<number> Warn if an object is larger than <number> bytes. + +Wnonnull-compare +Var(warn_nonnull_compare) Warning +Warn if comparing pointer parameter with nonnull attribute with NULL. + +Wnull-dereference +Common Var(warn_null_dereference) Warning +Warn if dereferencing a NULL pointer may lead to erroneous or undefined behavior. Wunsafe-loop-optimizations Common Var(warn_unsafe_loop_optimizations) Warning Warn if the loop cannot be optimized due to nontrivial assumptions. Wmissing-noreturn -Common Var(warn_missing_noreturn) Warning -Warn about functions which might be candidates for __attribute__((noreturn)) - -Wmudflap -Common Var(warn_mudflap) Init(1) Warning -Warn about constructs not instrumented by -fmudflap +Common Warning Alias(Wsuggest-attribute=noreturn) + +Wodr +Common Var(warn_odr_violations) Init(1) Warning +Warn about some C++ One Definition Rule violations during link time optimization. Woverflow Common Var(warn_overflow) Init(1) Warning -Warn about overflow in arithmetic expressions +Warn about overflow in arithmetic expressions. + +Wlto-type-mismatch +Common Var(warn_lto_type_mismatch) Init(1) Warning +During link time optimization warn about mismatched types of global declarations. Wpacked Common Var(warn_packed) Warning -Warn when the packed attribute has no effect on struct layout +Warn when the packed attribute has no effect on struct layout. Wpadded Common Var(warn_padded) Warning -Warn when padding is required to align structure members +Warn when padding is required to align structure members. + +Wpedantic +Common Var(pedantic) Init(0) Warning +Issue warnings needed for strict compliance to the standard. + +Wreturn-local-addr +Common Var(warn_return_local_addr) Init(1) Warning +Warn about returning a pointer/reference to a local or temporary variable. Wshadow Common Var(warn_shadow) Warning -Warn when one local variable shadows another +Warn when one variable shadows another. Same as -Wshadow=global. + +Wshadow=global +Common Warning Alias(Wshadow) +Warn when one variable shadows another (globally). + +Wshadow=local +Common Var(warn_shadow_local) Warning EnabledBy(Wshadow) +Warn when one local variable shadows another local variable or parameter. + +Wshadow-local +Common Warning Undocumented Alias(Wshadow=local) + +Wshadow=compatible-local +Common Var(warn_shadow_compatible_local) Warning EnabledBy(Wshadow=local) +Warn when one local variable shadows another local variable or parameter of compatible type. + +Wshadow-compatible-local +Common Warning Undocumented Alias(Wshadow=compatible-local) Wstack-protector Common Var(warn_stack_protect) Warning -Warn when not issuing stack smashing protection for some reason +Warn when not issuing stack smashing protection for some reason. + +Wstack-usage= +Common Joined RejectNegative UInteger Var(warn_stack_usage) Warning +-Wstack-usage=<number> Warn if stack usage might be larger than specified amount. Wstrict-aliasing Common Warning -Warn about code which might break strict aliasing rules +Warn about code which might break strict aliasing rules. Wstrict-aliasing= -Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Init(-1) Warning -Warn about code which might break strict aliasing rules +Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Warning +Warn about code which might break strict aliasing rules. Wstrict-overflow Common Warning -Warn about optimizations that assume that signed overflow is undefined +Warn about optimizations that assume that signed overflow is undefined. Wstrict-overflow= -Common Joined RejectNegative UInteger Var(warn_strict_overflow) Init(-1) Warning -Warn about optimizations that assume that signed overflow is undefined +Common Joined RejectNegative UInteger Var(warn_strict_overflow) Warning +Warn about optimizations that assume that signed overflow is undefined. + +Wsuggest-attribute=cold +Common Var(warn_suggest_attribute_cold) Warning +Warn about functions which might be candidates for __attribute__((cold)). Wsuggest-attribute=const Common Var(warn_suggest_attribute_const) Warning -Warn about functions which might be candidates for __attribute__((const)) +Warn about functions which might be candidates for __attribute__((const)). Wsuggest-attribute=pure Common Var(warn_suggest_attribute_pure) Warning -Warn about functions which might be candidates for __attribute__((pure)) +Warn about functions which might be candidates for __attribute__((pure)). Wsuggest-attribute=noreturn Common Var(warn_suggest_attribute_noreturn) Warning -Warn about functions which might be candidates for __attribute__((noreturn)) - -Wswitch -Common Var(warn_switch) Warning -Warn about enumerated switches, with no default, missing a case - -Wswitch-default -Common Var(warn_switch_default) Warning -Warn about enumerated switches missing a \"default:\" statement - -Wswitch-enum -Common Var(warn_switch_enum) Warning -Warn about all enumerated switches missing a specific case +Warn about functions which might be candidates for __attribute__((noreturn)). + +Wsuggest-final-types +Common Var(warn_suggest_final_types) Warning +Warn about C++ polymorphic types where adding final keyword would improve code quality. + +Wsuggest-final-methods +Common Var(warn_suggest_final_methods) Warning +Warn about C++ virtual methods where adding final keyword would improve code quality. + +Wswitch-unreachable +Common Var(warn_switch_unreachable) Warning Init(1) +Warn about statements between switch's controlling expression and the first +case. Wsystem-headers Common Var(warn_system_headers) Warning -Do not suppress warnings from system headers +Do not suppress warnings from system headers. Wtrampolines Common Var(warn_trampolines) Warning -Warn whenever a trampoline is generated +Warn whenever a trampoline is generated. Wtype-limits -Common Var(warn_type_limits) Init(-1) Warning -Warn if a comparison is always true or always false due to the limited range of the data type +Common Var(warn_type_limits) Warning EnabledBy(Wextra) +Warn if a comparison is always true or always false due to the limited range of the data type. Wuninitialized -Common Var(warn_uninitialized) Init(-1) Warning -Warn about uninitialized automatic variables +Common Var(warn_uninitialized) Warning EnabledBy(Wextra) +Warn about uninitialized automatic variables. + +Wmaybe-uninitialized +Common Var(warn_maybe_uninitialized) Warning EnabledBy(Wuninitialized) +Warn about maybe uninitialized automatic variables. Wunreachable-code -Common Ignore +Common Ignore Warning Does nothing. Preserved for backward compatibility. Wunused Common Var(warn_unused) Init(0) Warning -Enable all -Wunused- warnings +Enable all -Wunused- warnings. Wunused-but-set-parameter -Common Var(warn_unused_but_set_parameter) Init(-1) Warning -Warn when a function parameter is only set, otherwise unused +Common Var(warn_unused_but_set_parameter) Warning EnabledBy(Wunused && Wextra) +Warn when a function parameter is only set, otherwise unused. Wunused-but-set-variable -Common Var(warn_unused_but_set_variable) Init(-1) Warning -Warn when a variable is only set, otherwise unused +Common Var(warn_unused_but_set_variable) Warning EnabledBy(Wunused) +Warn when a variable is only set, otherwise unused. Wunused-function -Common Var(warn_unused_function) Init(-1) Warning -Warn when a function is unused +Common Var(warn_unused_function) Warning EnabledBy(Wunused) +Warn when a function is unused. Wunused-label -Common Var(warn_unused_label) Init(-1) Warning -Warn when a label is unused +Common Var(warn_unused_label) Warning EnabledBy(Wunused) +Warn when a label is unused. Wunused-parameter -Common Var(warn_unused_parameter) Init(-1) Warning -Warn when a function parameter is unused +Common Var(warn_unused_parameter) Warning EnabledBy(Wunused && Wextra) +Warn when a function parameter is unused. Wunused-value -Common Var(warn_unused_value) Init(-1) Warning -Warn when an expression value is unused +Common Var(warn_unused_value) Warning EnabledBy(Wunused) +Warn when an expression value is unused. Wunused-variable -Common Var(warn_unused_variable) Init(-1) Warning -Warn when a variable is unused +Common Var(warn_unused_variable) Warning EnabledBy(Wunused) +Warn when a variable is unused. Wcoverage-mismatch Common Var(warn_coverage_mismatch) Init(1) Warning -Warn in case profiles in -fprofile-use do not match +Warn in case profiles in -fprofile-use do not match. + +Wvector-operation-performance +Common Var(warn_vector_operation_performance) Warning +Warn when a vector operation is compiled outside the SIMD. Xassembler Driver Separate @@ -676,7 +832,7 @@ aux-info Common Separate Var(aux_info_file_name) --aux-info <file> Emit declaration information into <file> +-aux-info <file> Emit declaration information into <file>. aux-info= Common Joined Alias(aux-info) @@ -695,15 +851,15 @@ d Common Joined --d<letters> Enable dumps from specific passes of the compiler +-d<letters> Enable dumps from specific passes of the compiler. dumpbase Common Separate Var(dump_base_name) --dumpbase <file> Set the file basename to be used for dumps +-dumpbase <file> Set the file basename to be used for dumps. dumpdir Common Separate Var(dump_dir_name) --dumpdir <dir> Set the directory name to be used for dumps +-dumpdir <dir> Set the directory name to be used for dumps. dumpmachine Driver @@ -714,6 +870,9 @@ dumpversion Driver +dumpfullversion +Driver + e Driver Joined Separate @@ -731,9 +890,10 @@ ; Therefore, 0 will not necessarily indicate the same ABI in different ; versions of G++. ; -; 1: The version of the ABI first used in G++ 3.2. +; 1: The version of the ABI first used in G++ 3.2. No longer selectable. ; -; 2: The version of the ABI first used in G++ 3.4 (and current default). +; 2: The version of the ABI first used in G++ 3.4, and the default +; until GCC 4.9. ; ; 3: The version of the ABI that fixes the missing underscore ; in template non-type arguments of pointer type. @@ -746,35 +906,72 @@ ; function parameters used in other parameters and the return type. ; First selectable in G++ 4.6. ; +; 6: The version of the ABI that doesn't promote scoped enums to int and +; changes the mangling of template argument packs, const/static_cast, +; prefix ++ and --, and a class scope function used as a template +; argument. +; First selectable in G++ 4.7. +; +; 7: The version of the ABI that treats nullptr_t as a builtin type and +; corrects the mangling of lambdas in default argument scope. +; First selectable in G++ 4.8. +; +; 8: The version of the ABI that corrects the substitution behavior of +; function types with function-cv-qualifiers. +; First selectable in G++ 4.9 and default in G++ 5. +; +; 9: The version of the ABI that corrects the alignment of nullptr_t. +; First selectable and default in G++ 5.2. +; +; 10: The version of the ABI that mangles attributes that affect type +; identity, such as ia32 calling convention attributes (stdcall, etc.) +; Default in G++ 6 (set in c_common_post_options). +; +; 11: The version of the ABI that corrects mangling of sizeof... expressions +; and introduces new inheriting constructor handling. +; Default in G++ 7. +; +; 12: Corrects the calling convention for classes with only deleted copy/move +; constructors. +; Default in G++ 8. +; ; Additional positive integers will be assigned as new versions of ; the ABI become the default version of the ABI. fabi-version= -Common Joined RejectNegative UInteger Var(flag_abi_version) Init(2) +Common Joined RejectNegative UInteger Var(flag_abi_version) Init(0) +The version of the C++ ABI in use. + +faggressive-loop-optimizations +Common Report Var(flag_aggressive_loop_optimizations) Optimization Init(1) +Aggressively optimize loops using language constraints. falign-functions Common Report Var(align_functions,0) Optimization UInteger -Align the start of functions +Align the start of functions. falign-functions= Common RejectNegative Joined UInteger Var(align_functions) +flimit-function-alignment +Common Report Var(flag_limit_function_alignment) Optimization Init(0) + falign-jumps Common Report Var(align_jumps,0) Optimization UInteger -Align labels which are only reached by jumping +Align labels which are only reached by jumping. falign-jumps= Common RejectNegative Joined UInteger Var(align_jumps) falign-labels Common Report Var(align_labels,0) Optimization UInteger -Align all labels +Align all labels. falign-labels= Common RejectNegative Joined UInteger Var(align_labels) falign-loops Common Report Var(align_loops,0) Optimization UInteger -Align the start of loops +Align the start of loops. falign-loops= Common RejectNegative Joined UInteger Var(align_loops) @@ -795,13 +992,55 @@ Common Ignore Does nothing. Preserved for backward compatibility. +fsanitize= +Common Driver Report Joined +Select what to sanitize. + +fsanitize-coverage= +Common Report Joined +Select what to coverage sanitize. + +fasan-shadow-offset= +Common Joined RejectNegative Var(common_deferred_options) Defer +-fasan-shadow-offset=<number> Use custom shadow memory offset. + +fsanitize-sections= +Common Joined RejectNegative Var(common_deferred_options) Defer +-fsanitize-sections=<sec1,sec2,...> Sanitize global variables +in user-defined sections. + +fsanitize-recover= +Common Report Joined +After diagnosing undefined behavior attempt to continue execution. + +fsanitize-recover +Common Report +This switch is deprecated; use -fsanitize-recover= instead. + +fsanitize-address-use-after-scope +Common Driver Report Var(flag_sanitize_address_use_after_scope) Init(0) + +fsanitize-undefined-trap-on-error +Common Driver Report Var(flag_sanitize_undefined_trap_on_error) Init(0) +Use trap instead of a library function for undefined behavior sanitization. + fasynchronous-unwind-tables Common Report Var(flag_asynchronous_unwind_tables) Optimization -Generate unwind tables that are exact at each instruction boundary +Generate unwind tables that are exact at each instruction boundary. fauto-inc-dec -Common Report Var(flag_auto_inc_dec) Init(1) -Generate auto-inc/dec instructions +Common Report Var(flag_auto_inc_dec) Init(1) Optimization +Generate auto-inc/dec instructions. + +fauto-profile +Common Report Var(flag_auto_profile) +Use sample profile information for call graph node weights. The default +profile file is fbdata.afdo in 'pwd'. + +fauto-profile= +Common Joined RejectNegative Var(auto_profile_file) +Use sample profile information for call graph node weights. The profile +file is specified in the argument. ; -fcheck-bounds causes gcc to generate array bounds checks. ; For C, C++ and ObjC: defaults off. @@ -809,54 +1048,70 @@ ; For Fortran: defaults to off. fbounds-check Common Report Var(flag_bounds_check) -Generate code to check bounds before indexing arrays +Generate code to check bounds before indexing arrays. fbranch-count-reg -Common Report Var(flag_branch_on_count_reg) Init(1) Optimization -Replace add, compare, branch with branch on count register +Common Report Var(flag_branch_on_count_reg) Optimization +Replace add, compare, branch with branch on count register. fbranch-probabilities Common Report Var(flag_branch_probabilities) Optimization -Use profiling information for branch probabilities +Use profiling information for branch probabilities. fbranch-target-load-optimize Common Report Var(flag_branch_target_load_optimize) Optimization -Perform branch target load optimization before prologue / epilogue threading +Perform branch target load optimization before prologue / epilogue threading. fbranch-target-load-optimize2 Common Report Var(flag_branch_target_load_optimize2) Optimization -Perform branch target load optimization after prologue / epilogue threading +Perform branch target load optimization after prologue / epilogue threading. fbtr-bb-exclusive Common Report Var(flag_btr_bb_exclusive) Optimization -Restrict target load migration not to re-use registers in any basic block +Restrict target load migration not to re-use registers in any basic block. fcall-saved- Common Joined RejectNegative Var(common_deferred_options) Defer --fcall-saved-<register> Mark <register> as being preserved across functions +-fcall-saved-<register> Mark <register> as being preserved across functions. fcall-used- Common Joined RejectNegative Var(common_deferred_options) Defer --fcall-used-<register> Mark <register> as being corrupted by function calls +-fcall-used-<register> Mark <register> as being corrupted by function calls. ; Nonzero for -fcaller-saves: allocate values in regs that need to ; be saved across function calls, if that produces overall better code. ; Optional now, so people can test it. fcaller-saves Common Report Var(flag_caller_saves) Optimization -Save registers around function calls +Save registers around function calls. fcheck-data-deps Common Report Var(flag_check_data_deps) -Compare the results of several data dependence analyzers. +This switch is deprecated; do not use. + +fcheck-new +Common Var(flag_check_new) +Check the return value of new in C++. + +fchecking +Common Var(flag_checking) Init(CHECKING_P ? ENABLE_EXTRA_CHECKING ? 2 : 1 : 0) +Perform internal consistency checkings. + +fchecking= +Common Joined RejectNegative UInteger Var(flag_checking) +Perform internal consistency checkings. + +fcode-hoisting +Common Report Var(flag_code_hoisting) Optimization +Enable code hoisting. fcombine-stack-adjustments Common Report Var(flag_combine_stack_adjustments) Optimization Looks for opportunities to reduce stack adjustments and stack references. fcommon -Common Report Var(flag_no_common,0) Optimization -Do not put uninitialized globals in the common section +Common Report Var(flag_no_common,0) +Do not put uninitialized globals in the common section. fcompare-debug Driver @@ -864,31 +1119,31 @@ fcompare-debug= Common Driver JoinedOrMissing RejectNegative Var(flag_compare_debug_opt) --fcompare-debug[=<opts>] Compile with and without e.g. -gtoggle, and compare the final-insns dump +-fcompare-debug[=<opts>] Compile with and without e.g. -gtoggle, and compare the final-insns dump. fcompare-debug-second Common Driver RejectNegative Var(flag_compare_debug) -Run only the second compilation of -fcompare-debug +Run only the second compilation of -fcompare-debug. fcompare-elim Common Report Var(flag_compare_elim_after_reload) Optimization -Perform comparison elimination after register allocation has finished +Perform comparison elimination after register allocation has finished. fconserve-stack Common Var(flag_conserve_stack) Optimization -Do not perform optimizations increasing noticeably stack usage +Do not perform optimizations increasing noticeably stack usage. fcprop-registers Common Report Var(flag_cprop_registers) Optimization -Perform a register copy-propagation optimization pass +Perform a register copy-propagation optimization pass. fcrossjumping Common Report Var(flag_crossjumping) Optimization -Perform cross-jumping optimization +Perform cross-jumping optimization. fcse-follow-jumps Common Report Var(flag_cse_follow_jumps) Optimization -When running CSE, follow jumps to their targets +When running CSE, follow jumps to their targets. fcse-skip-blocks Common Ignore @@ -896,15 +1151,15 @@ fcx-limited-range Common Report Var(flag_cx_limited_range) Optimization SetByCombined -Omit range reduction step when performing complex division +Omit range reduction step when performing complex division. fcx-fortran-rules Common Report Var(flag_cx_fortran_rules) Optimization -Complex multiplication and division follow Fortran rules +Complex multiplication and division follow Fortran rules. fdata-sections -Common Report Var(flag_data_sections) Optimization -Place data items into their own section +Common Report Var(flag_data_sections) +Place data items into their own section. fdbg-cnt-list Common Report Var(common_deferred_options) Defer @@ -912,25 +1167,41 @@ fdbg-cnt= Common RejectNegative Joined Var(common_deferred_options) Defer --fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...] Set the debug counter limit. +-fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...] Set the debug counter limit. fdebug-prefix-map= Common Joined RejectNegative Var(common_deferred_options) Defer -Map one directory name to another in debug information +Map one directory name to another in debug information. + +fdebug-types-section +Common Report Var(flag_debug_types_section) Init(0) +Output .debug_types section when using DWARF v4 debuginfo. ; Nonzero for -fdefer-pop: don't pop args after each function call ; instead save them up to pop many calls' args with one insns. fdefer-pop Common Report Var(flag_defer_pop) Optimization -Defer popping functions args from stack until later +Defer popping functions args from stack until later. fdelayed-branch Common Report Var(flag_delayed_branch) Optimization -Attempt to fill delay slots of branch instructions +Attempt to fill delay slots of branch instructions. + +fdelete-dead-exceptions +Common Report Var(flag_delete_dead_exceptions) Init(0) Optimization +Delete dead instructions that may throw exceptions. fdelete-null-pointer-checks -Common Report Var(flag_delete_null_pointer_checks) Init(1) Optimization -Delete useless null pointer checks +Common Report Var(flag_delete_null_pointer_checks) Init(-1) Optimization +Delete useless null pointer checks. + +fdevirtualize-at-ltrans +Common Report Var(flag_ltrans_devirtualize) +Stream extra data to support more aggressive devirtualization in LTO local transformation mode. + +fdevirtualize-speculatively +Common Report Var(flag_devirtualize_speculatively) Optimization +Perform speculative devirtualization. fdevirtualize Common Report Var(flag_devirtualize) Optimization @@ -938,7 +1209,7 @@ fdiagnostics-show-location= Common Joined RejectNegative Enum(diagnostic_prefixing_rule) --fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics +-fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics. ; Required for these enum values. SourceInclude @@ -953,36 +1224,93 @@ EnumValue Enum(diagnostic_prefixing_rule) String(every-line) Value(DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE) +fdiagnostics-show-caret +Common Var(flag_diagnostics_show_caret) Init(1) +Show the source line with a caret indicating the column. + +fdiagnostics-color +Common Alias(fdiagnostics-color=,always,never) +; + +fdiagnostics-color= +Driver Common Joined RejectNegative Var(flag_diagnostics_show_color) Enum(diagnostic_color_rule) Init(DIAGNOSTICS_COLOR_NO) +-fdiagnostics-color=[never|always|auto] Colorize diagnostics. + +; Required for these enum values. +SourceInclude +diagnostic-color.h + +Enum +Name(diagnostic_color_rule) Type(int) + +EnumValue +Enum(diagnostic_color_rule) String(never) Value(DIAGNOSTICS_COLOR_NO) + +EnumValue +Enum(diagnostic_color_rule) String(always) Value(DIAGNOSTICS_COLOR_YES) + +EnumValue +Enum(diagnostic_color_rule) String(auto) Value(DIAGNOSTICS_COLOR_AUTO) + +fdiagnostics-parseable-fixits +Common Var(flag_diagnostics_parseable_fixits) +Print fix-it hints in machine-readable form. + +fdiagnostics-generate-patch +Common Var(flag_diagnostics_generate_patch) +Print fix-it hints to stderr in unified diff format. + fdiagnostics-show-option Common Var(flag_diagnostics_show_option) Init(1) -Amend appropriate diagnostic messages with the command line option that controls them +Amend appropriate diagnostic messages with the command line option that controls them. + +fdisable- +Common Joined RejectNegative Var(common_deferred_options) Defer +-fdisable-[tree|rtl|ipa]-<pass>=range1+range2 disables an optimization pass. + +fenable- +Common Joined RejectNegative Var(common_deferred_options) Defer +-fenable-[tree|rtl|ipa]-<pass>=range1+range2 enables an optimization pass. fdump- Common Joined RejectNegative Var(common_deferred_options) Defer --fdump-<type> Dump various compiler internals to a file +-fdump-<type> Dump various compiler internals to a file. fdump-final-insns Driver RejectNegative fdump-final-insns= Common RejectNegative Joined Var(flag_dump_final_insns) --fdump-final-insns=filename Dump to filename the insns at the end of translation +-fdump-final-insns=filename Dump to filename the insns at the end of translation. fdump-go-spec= Common RejectNegative Joined Var(flag_dump_go_spec) --fdump-go-spec=filename Write all declarations to file as Go code +-fdump-go-spec=filename Write all declarations to file as Go code. fdump-noaddr Common Report Var(flag_dump_noaddr) -Suppress output of addresses in debugging dumps +Suppress output of addresses in debugging dumps. + +freport-bug +Common Driver Var(flag_report_bug) +Collect and dump debug information into temporary file if ICE in C/C++ +compiler occurred. + +fdump-internal-locations +Common Var(flag_dump_locations) Init(0) +Dump detailed information on GCC's internal representation of source code locations. + +fdump-passes +Common Var(flag_dump_passes) Init(0) +Dump optimization passes. fdump-unnumbered Common Report Var(flag_dump_unnumbered) -Suppress output of instruction numbers, line number notes and addresses in debugging dumps +Suppress output of instruction numbers, line number notes and addresses in debugging dumps. fdump-unnumbered-links Common Report Var(flag_dump_unnumbered_links) -Suppress output of previous and next insn numbers in debugging dumps +Suppress output of previous and next insn numbers in debugging dumps. fdwarf2-cfi-asm Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE) @@ -990,43 +1318,39 @@ fearly-inlining Common Report Var(flag_early_inlining) Init(1) Optimization -Perform early inlining +Perform early inlining. feliminate-dwarf2-dups -Common Report Var(flag_eliminate_dwarf2_dups) -Perform DWARF2 duplicate elimination +Common Ignore +Does nothing. Preserved for backward compatibility. fipa-sra Common Report Var(flag_ipa_sra) Init(0) Optimization -Perform interprocedural reduction of aggregates +Perform interprocedural reduction of aggregates. feliminate-unused-debug-symbols Common Report Var(flag_debug_only_used_symbols) -Perform unused type elimination in debug info +Perform unused symbol elimination in debug info. feliminate-unused-debug-types Common Report Var(flag_eliminate_unused_debug_types) Init(1) -Perform unused type elimination in debug info +Perform unused type elimination in debug info. femit-class-debug-always Common Report Var(flag_emit_class_debug_always) Init(0) Do not suppress C++ class debug information. -fenable-icf-debug -Common Report Var(flag_enable_icf_debug) -Generate debug information to support Identical Code Folding (ICF) - fexceptions Common Report Var(flag_exceptions) Optimization -Enable exception handling +Enable exception handling. fexpensive-optimizations Common Report Var(flag_expensive_optimizations) Optimization -Perform a number of minor, expensive optimizations +Perform a number of minor, expensive optimizations. fexcess-precision= -Common Joined RejectNegative Enum(excess_precision) Var(flag_excess_precision_cmdline) Init(EXCESS_PRECISION_DEFAULT) --fexcess-precision=[fast|standard] Specify handling of excess floating-point precision +Common Joined RejectNegative Enum(excess_precision) Var(flag_excess_precision_cmdline) Init(EXCESS_PRECISION_DEFAULT) SetByCombined +-fexcess-precision=[fast|standard] Specify handling of excess floating-point precision. Enum Name(excess_precision) Type(enum excess_precision) UnknownError(unknown excess precision style %qs) @@ -1037,20 +1361,39 @@ EnumValue Enum(excess_precision) String(standard) Value(EXCESS_PRECISION_STANDARD) +; Whether we permit the extended set of values for FLT_EVAL_METHOD +; introduced in ISO/IEC TS 18661-3, or limit ourselves to those in C99/C11. +fpermitted-flt-eval-methods= +Common Joined RejectNegative Enum(permitted_flt_eval_methods) Var(flag_permitted_flt_eval_methods) Init(PERMITTED_FLT_EVAL_METHODS_DEFAULT) +-fpermitted-flt-eval-methods=[c11|ts-18661] Specify which values of FLT_EVAL_METHOD are permitted. + +Enum +Name(permitted_flt_eval_methods) Type(enum permitted_flt_eval_methods) UnknownError(unknown specification for the set of FLT_EVAL_METHOD values to permit %qs) + +EnumValue +Enum(permitted_flt_eval_methods) String(c11) Value(PERMITTED_FLT_EVAL_METHODS_C11) + +EnumValue +Enum(permitted_flt_eval_methods) String(ts-18661-3) Value(PERMITTED_FLT_EVAL_METHODS_TS_18661) + ffast-math -Common +Common Optimization + +ffat-lto-objects +Common Var(flag_fat_lto_objects) +Output lto objects containing both the intermediate language and binary output. ffinite-math-only Common Report Var(flag_finite_math_only) Optimization SetByCombined -Assume no NaNs or infinities are generated +Assume no NaNs or infinities are generated. ffixed- Common Joined RejectNegative Var(common_deferred_options) Defer --ffixed-<register> Mark <register> as being unavailable to the compiler +-ffixed-<register> Mark <register> as being unavailable to the compiler. ffloat-store Common Report Var(flag_float_store) Optimization -Don't allocate floats and doubles in extended-precision registers +Don't allocate floats and doubles in extended-precision registers. fforce-addr Common Ignore @@ -1058,11 +1401,11 @@ fforward-propagate Common Report Var(flag_forward_propagate) Optimization -Perform a forward propagation pass on RTL +Perform a forward propagation pass on RTL. ffp-contract= -Common Joined RejectNegative Enum(fp_contract_mode) Var(flag_fp_contract_mode) Init(FP_CONTRACT_FAST) --ffp-contract=[off|on|fast] Perform floating-point expression contraction. +Common Joined RejectNegative Enum(fp_contract_mode) Var(flag_fp_contract_mode) Init(FP_CONTRACT_FAST) Optimization +-ffp-contract=[off|on|fast] Perform floating-point expression contraction. Enum Name(fp_contract_mode) Type(enum fp_contract_mode) UnknownError(unknown floating point contraction style %qs) @@ -1077,75 +1420,124 @@ EnumValue Enum(fp_contract_mode) String(fast) Value(FP_CONTRACT_FAST) +ffp-int-builtin-inexact +Common Report Var(flag_fp_int_builtin_inexact) Init(1) Optimization +Allow built-in functions ceil, floor, round, trunc to raise \"inexact\" exceptions. + ; Nonzero means don't put addresses of constant functions in registers. ; Used for compiling the Unix kernel, where strange substitutions are ; done on the assembly output. ffunction-cse -Common Report Var(flag_no_function_cse,0) -Allow function addresses to be held in registers +Common Report Var(flag_no_function_cse,0) Optimization +Allow function addresses to be held in registers. ffunction-sections Common Report Var(flag_function_sections) -Place each function into its own section +Place each function into its own section. fgcse Common Report Var(flag_gcse) Optimization -Perform global common subexpression elimination +Perform global common subexpression elimination. fgcse-lm Common Report Var(flag_gcse_lm) Init(1) Optimization -Perform enhanced load motion during global common subexpression elimination +Perform enhanced load motion during global common subexpression elimination. fgcse-sm Common Report Var(flag_gcse_sm) Init(0) Optimization -Perform store motion after global common subexpression elimination +Perform store motion after global common subexpression elimination. fgcse-las Common Report Var(flag_gcse_las) Init(0) Optimization Perform redundant load after store elimination in global common subexpression -elimination +elimination. fgcse-after-reload Common Report Var(flag_gcse_after_reload) Optimization -Perform global common subexpression elimination after register allocation -has finished +Perform global common subexpression elimination after register allocation has +finished. + +Enum +Name(dwarf_gnat_encodings) Type(int) + +EnumValue +Enum(dwarf_gnat_encodings) String(all) Value(DWARF_GNAT_ENCODINGS_ALL) + +EnumValue +Enum(dwarf_gnat_encodings) String(gdb) Value(DWARF_GNAT_ENCODINGS_GDB) + +EnumValue +Enum(dwarf_gnat_encodings) String(minimal) Value(DWARF_GNAT_ENCODINGS_MINIMAL) + +fgnat-encodings= +Common Enum(dwarf_gnat_encodings) Joined RejectNegative Report Undocumented Var(gnat_encodings) +-fgnat-encodings=[all|gdb|minimal] Select the balance between GNAT encodings and standard DWARF emitted in the debug information ; This option is not documented yet as its semantics will change. fgraphite -Common Report Var(flag_graphite) -Enable in and out of Graphite representation +Common Report Var(flag_graphite) Optimization +Enable in and out of Graphite representation. fgraphite-identity Common Report Var(flag_graphite_identity) Optimization -Enable Graphite Identity transformation +Enable Graphite Identity transformation. + +fhoist-adjacent-loads +Common Report Var(flag_hoist_adjacent_loads) Optimization +Enable hoisting adjacent loads to encourage generating conditional move +instructions. + +fkeep-gc-roots-live +Common Undocumented Report Var(flag_keep_gc_roots_live) Optimization +; Always keep a pointer to a live memory block floop-parallelize-all Common Report Var(flag_loop_parallelize_all) Optimization -Mark all loops as parallel +Mark all loops as parallel. floop-strip-mine -Common Report Var(flag_loop_strip_mine) Optimization -Enable Loop Strip Mining transformation +Common Alias(floop-nest-optimize) +Enable loop nest transforms. Same as -floop-nest-optimize. floop-interchange -Common Report Var(flag_loop_interchange) Optimization -Enable Loop Interchange transformation +Common Alias(floop-nest-optimize) +Enable loop nest transforms. Same as -floop-nest-optimize. floop-block -Common Report Var(flag_loop_block) Optimization -Enable Loop Blocking transformation +Common Alias(floop-nest-optimize) +Enable loop nest transforms. Same as -floop-nest-optimize. + +floop-unroll-and-jam +Common Alias(floop-nest-optimize) +Enable loop nest transforms. Same as -floop-nest-optimize. + +fgnu-tm +Common Report Var(flag_tm) +Enable support for GNU transactional memory. + +fgnu-unique +Common Report Var(flag_gnu_unique) Init(1) +Use STB_GNU_UNIQUE if supported by the assembler. floop-flatten -Common Report Var(flag_loop_flatten) Optimization -Enable Loop Flattening transformation +Common Ignore +Does nothing. Preserved for backward compatibility. + +floop-nest-optimize +Common Report Var(flag_loop_nest_optimize) Optimization +Enable the loop nest optimizer. fstrict-volatile-bitfields -Common Report Var(flag_strict_volatile_bitfields) Init(-1) -Force bitfield accesses to match their type width +Common Report Var(flag_strict_volatile_bitfields) Init(-1) Optimization +Force bitfield accesses to match their type width. + +fstore-merging +Common Report Var(flag_store_merging) Optimization +Merge adjacent stores. fguess-branch-probability Common Report Var(flag_guess_branch_prob) Optimization -Enable guessing of branch probabilities +Enable guessing of branch probabilities. ; Nonzero means ignore `#ident' directives. 0 means handle them. ; Generate position-independent code for executables if possible @@ -1153,23 +1545,39 @@ ; string identifying the compiler. fident Common Report Var(flag_no_ident,0) -Process #ident directives +Process #ident directives. fif-conversion Common Report Var(flag_if_conversion) Optimization -Perform conversion of conditional jumps to branchless equivalents +Perform conversion of conditional jumps to branchless equivalents. fif-conversion2 Common Report Var(flag_if_conversion2) Optimization -Perform conversion of conditional jumps to conditional execution +Perform conversion of conditional jumps to conditional execution. + +fstack-reuse= +Common Joined RejectNegative Enum(stack_reuse_level) Var(flag_stack_reuse) Init(SR_ALL) Optimization +-fstack-reuse=[all|named_vars|none] Set stack reuse level for local variables. + +Enum +Name(stack_reuse_level) Type(enum stack_reuse_level) UnknownError(unknown Stack Reuse Level %qs) + +EnumValue +Enum(stack_reuse_level) String(all) Value(SR_ALL) + +EnumValue +Enum(stack_reuse_level) String(named_vars) Value(SR_NAMED_VARS) + +EnumValue +Enum(stack_reuse_level) String(none) Value(SR_NONE) ftree-loop-if-convert Common Report Var(flag_tree_loop_if_convert) Init(-1) Optimization -Convert conditional jumps in innermost loops to branchless equivalents +Convert conditional jumps in innermost loops to branchless equivalents. ftree-loop-if-convert-stores -Common Report Var(flag_tree_loop_if_convert_stores) Optimization -Also if-convert conditional jumps containing memory writes +Common Ignore +Does nothing. Preserved for backward compatibility. ; -finhibit-size-directive inhibits output of .size for ELF. ; This is used only for compiling crtstuff.c, @@ -1177,89 +1585,135 @@ ; needed for crtstuff.c on other systems. finhibit-size-directive Common Report Var(flag_inhibit_size_directive) -Do not generate .size directives +Do not generate .size directives. findirect-inlining -Common Report Var(flag_indirect_inlining) -Perform indirect inlining - -; Nonzero means that functions declared `inline' will be treated -; as `static'. Prevents generation of zillions of copies of unused -; static inline functions; instead, `inlines' are written out -; only when actually used. Used in conjunction with -g. Also -; does the right thing with #pragma interface. +Common Report Var(flag_indirect_inlining) Optimization +Perform indirect inlining. + +; General flag to enable inlining. Specifying -fno-inline will disable +; all inlining apart from always-inline functions. finline -Common Report Var(flag_no_inline,0) Init(0) -Pay attention to the \"inline\" keyword +Common Report Var(flag_no_inline,0) Init(0) Optimization +Enable inlining of function declared \"inline\", disabling disables all inlining. finline-small-functions Common Report Var(flag_inline_small_functions) Optimization -Integrate simple functions into their callers when code size is known to not growth +Integrate functions into their callers when code size is known not to grow. finline-functions Common Report Var(flag_inline_functions) Optimization -Integrate simple functions into their callers +Integrate functions not declared \"inline\" into their callers when profitable. finline-functions-called-once -Common Report Var(flag_inline_functions_called_once) Init(1) Optimization -Integrate functions called once into their callers +Common Report Var(flag_inline_functions_called_once) Optimization +Integrate functions only required by their single caller. finline-limit- Common RejectNegative Joined Alias(finline-limit=) finline-limit= Common RejectNegative Joined UInteger --finline-limit=<number> Limit the size of inlined functions to <number> +-finline-limit=<number> Limit the size of inlined functions to <number>. + +finline-atomics +Common Report Var(flag_inline_atomics) Init(1) Optimization +Inline __atomic operations when a lock free instruction sequence is available. + +fcf-protection +Common RejectNegative Alias(fcf-protection=,full) + +fcf-protection= +Common Report Joined RejectNegative Enum(cf_protection_level) Var(flag_cf_protection) Init(CF_NONE) +-fcf-protection=[full|branch|return|none] Instrument functions with checks to verify jump/call/return control-flow transfer +instructions have valid targets. + +Enum +Name(cf_protection_level) Type(enum cf_protection_level) UnknownError(unknown Cotrol-Flow Protection Level %qs) + +EnumValue +Enum(cf_protection_level) String(full) Value(CF_FULL) + +EnumValue +Enum(cf_protection_level) String(branch) Value(CF_BRANCH) + +EnumValue +Enum(cf_protection_level) String(return) Value(CF_RETURN) + +EnumValue +Enum(cf_protection_level) String(none) Value(CF_NONE) finstrument-functions Common Report Var(flag_instrument_function_entry_exit) -Instrument function entry and exit with profiling calls +Instrument function entry and exit with profiling calls. finstrument-functions-exclude-function-list= Common RejectNegative Joined --finstrument-functions-exclude-function-list=name,... Do not instrument listed functions +-finstrument-functions-exclude-function-list=name,... Do not instrument listed functions. finstrument-functions-exclude-file-list= Common RejectNegative Joined --finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files +-finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files. fipa-cp Common Report Var(flag_ipa_cp) Optimization -Perform Interprocedural constant propagation +Perform interprocedural constant propagation. fipa-cp-clone Common Report Var(flag_ipa_cp_clone) Optimization -Perform cloning to make Interprocedural constant propagation stronger +Perform cloning to make Interprocedural constant propagation stronger. + +fipa-cp-alignment +Common Ignore +Does nothing. Preserved for backward compatibility. + +fipa-bit-cp +Common Report Var(flag_ipa_bit_cp) Optimization +Perform interprocedural bitwise constant propagation. fipa-profile Common Report Var(flag_ipa_profile) Init(0) Optimization -Perform interprocedural profile propagation +Perform interprocedural profile propagation. fipa-pta Common Report Var(flag_ipa_pta) Init(0) Optimization -Perform interprocedural points-to analysis +Perform interprocedural points-to analysis. fipa-pure-const Common Report Var(flag_ipa_pure_const) Init(0) Optimization -Discover pure and const functions +Discover pure and const functions. + +fipa-icf +Common Report Var(flag_ipa_icf) Optimization +Perform Identical Code Folding for functions and read-only variables. + +fipa-icf-functions +Common Report Var(flag_ipa_icf_functions) Optimization +Perform Identical Code Folding for functions. + +fipa-icf-variables +Common Report Var(flag_ipa_icf_variables) Optimization +Perform Identical Code Folding for variables. fipa-reference Common Report Var(flag_ipa_reference) Init(0) Optimization -Discover readonly and non addressable static variables +Discover readonly and non addressable static variables. fipa-matrix-reorg -Common Report Var(flag_ipa_matrix_reorg) Optimization -Perform matrix layout flattening and transposing based -on profiling information. +Common Ignore +Does nothing. Preserved for backward compatibility. fipa-struct-reorg -Common Report Var(flag_ipa_struct_reorg) -Perform structure layout optimizations based -on profiling information. +Common Ignore +Does nothing. Preserved for backward compatibility. + +fipa-vrp +Common Report Var(flag_ipa_vrp) Optimization +Perform IPA Value Range Propagation. fira-algorithm= -Common Joined RejectNegative Enum(ira_algorithm) Var(flag_ira_algorithm) Init(IRA_ALGORITHM_CB) --fira-algorithm=[CB|priority] Set the used IRA algorithm +Common Joined RejectNegative Enum(ira_algorithm) Var(flag_ira_algorithm) Init(IRA_ALGORITHM_CB) Optimization +-fira-algorithm=[CB|priority] Set the used IRA algorithm. Enum Name(ira_algorithm) Type(enum ira_algorithm) UnknownError(unknown IRA algorithm %qs) @@ -1271,8 +1725,8 @@ Enum(ira_algorithm) String(priority) Value(IRA_ALGORITHM_PRIORITY) fira-region= -Common Joined RejectNegative Enum(ira_region) Var(flag_ira_region) Init(IRA_REGION_MIXED) --fira-region=[one|all|mixed] Set regions for IRA +Common Joined RejectNegative Enum(ira_region) Var(flag_ira_region) Init(IRA_REGION_AUTODETECT) Optimization +-fira-region=[one|all|mixed] Set regions for IRA. Enum Name(ira_region) Type(enum ira_region) UnknownError(unknown IRA region %qs) @@ -1286,17 +1740,22 @@ EnumValue Enum(ira_region) String(mixed) Value(IRA_REGION_MIXED) +fira-hoist-pressure +Common Report Var(flag_ira_hoist_pressure) Init(1) Optimization +Use IRA based register pressure calculation +in RTL hoist optimizations. + fira-loop-pressure -Common Report Var(flag_ira_loop_pressure) +Common Report Var(flag_ira_loop_pressure) Optimization Use IRA based register pressure calculation in RTL loop optimizations. fira-share-save-slots -Common Report Var(flag_ira_share_save_slots) Init(1) +Common Report Var(flag_ira_share_save_slots) Init(1) Optimization Share slots for saving different hard registers. fira-share-spill-slots -Common Report Var(flag_ira_share_spill_slots) Init(1) +Common Report Var(flag_ira_share_spill_slots) Init(1) Optimization Share stack slots for spilled pseudo-registers. fira-verbose= @@ -1305,28 +1764,36 @@ fivopts Common Report Var(flag_ivopts) Init(1) Optimization -Optimize induction variables on trees +Optimize induction variables on trees. fjump-tables Common Var(flag_jump_tables) Init(1) Optimization -Use jump tables for sufficiently large switch statements +Use jump tables for sufficiently large switch statements. fkeep-inline-functions Common Report Var(flag_keep_inline_functions) -Generate code for functions even if they are fully inlined +Generate code for functions even if they are fully inlined. + +fkeep-static-functions +Common Report Var(flag_keep_static_functions) +Generate code for static functions even if they are never called. fkeep-static-consts Common Report Var(flag_keep_static_consts) Init(1) -Emit static const variables even if they are not used +Emit static const variables even if they are not used. fleading-underscore Common Report Var(flag_leading_underscore) Init(-1) -Give external symbols a leading underscore +Give external symbols a leading underscore. floop-optimize Common Ignore Does nothing. Preserved for backward compatibility. +flra-remat +Common Report Var(flag_lra_remat) Optimization +Do CFG-sensitive rematerialization in LRA. + flto Common Enable link-time optimization. @@ -1335,169 +1802,208 @@ Common RejectNegative Joined Var(flag_lto) Link-time optimization with number of parallel jobs or jobserver. -flto-partition=1to1 -Common Var(flag_lto_partition_1to1) -Partition functions and vars at linktime based on object files they originate from - -flto-partition=balanced -Common Var(flag_lto_partition_balanced) -Partition functions and vars at linktime into approximately same sized buckets - -flto-partition=none -Common Var(flag_lto_partition_none) -Disable partioning and streaming +Enum +Name(lto_partition_model) Type(enum lto_partition_model) UnknownError(unknown LTO partitioning model %qs) + +EnumValue +Enum(lto_partition_model) String(none) Value(LTO_PARTITION_NONE) + +EnumValue +Enum(lto_partition_model) String(one) Value(LTO_PARTITION_ONE) + +EnumValue +Enum(lto_partition_model) String(balanced) Value(LTO_PARTITION_BALANCED) + +EnumValue +Enum(lto_partition_model) String(1to1) Value(LTO_PARTITION_1TO1) + +EnumValue +Enum(lto_partition_model) String(max) Value(LTO_PARTITION_MAX) + +flto-partition= +Common Joined RejectNegative Enum(lto_partition_model) Var(flag_lto_partition) Init(LTO_PARTITION_BALANCED) +Specify the algorithm to partition symbols and vars at linktime. ; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h. flto-compression-level= -Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1) --flto-compression-level=<number> Use zlib compression level <number> for IL +Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1) IntegerRange(0, 9) +-flto-compression-level=<number> Use zlib compression level <number> for IL. + +flto-odr-type-merging +Common Report Var(flag_lto_odr_type_mering) Init(1) +Merge C++ types using One Definition Rule. flto-report -Common Report Var(flag_lto_report) Init(0) Optimization -Report various link-time optimization statistics +Common Report Var(flag_lto_report) Init(0) +Report various link-time optimization statistics. + +flto-report-wpa +Common Report Var(flag_lto_report_wpa) Init(0) +Report various link-time optimization statistics for WPA only. fmath-errno Common Report Var(flag_errno_math) Init(1) Optimization SetByCombined -Set errno after built-in math functions +Set errno after built-in math functions. fmax-errors= Common Joined RejectNegative UInteger Var(flag_max_errors) --fmax-errors=<number> Maximum number of errors to report +-fmax-errors=<number> Maximum number of errors to report. fmem-report Common Report Var(mem_report) -Report on permanent memory allocation +Report on permanent memory allocation. + +fmem-report-wpa +Common Report Var(mem_report_wpa) +Report on permanent memory allocation in WPA only. ; This will attempt to merge constant section constants, if 1 only ; string constants and constants from constant pool, if 2 also constant ; variables. fmerge-all-constants -Common Report Var(flag_merge_constants,2) Init(1) Optimization -Attempt to merge identical constants and constant variables +Common Report Var(flag_merge_constants,2) Init(1) +Attempt to merge identical constants and constant variables. fmerge-constants -Common Report Var(flag_merge_constants,1) Optimization -Attempt to merge identical constants across compilation units +Common Report Var(flag_merge_constants,1) +Attempt to merge identical constants across compilation units. fmerge-debug-strings Common Report Var(flag_merge_debug_strings) Init(1) -Attempt to merge identical debug strings across compilation units +Attempt to merge identical debug strings across compilation units. fmessage-length= Common RejectNegative Joined UInteger --fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping +-fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping. fmodulo-sched Common Report Var(flag_modulo_sched) Optimization -Perform SMS based modulo scheduling before the first scheduling pass +Perform SMS based modulo scheduling before the first scheduling pass. fmodulo-sched-allow-regmoves -Common Report Var(flag_modulo_sched_allow_regmoves) -Perform SMS based modulo scheduling with register moves allowed +Common Report Var(flag_modulo_sched_allow_regmoves) Optimization +Perform SMS based modulo scheduling with register moves allowed. fmove-loop-invariants -Common Report Var(flag_move_loop_invariants) Init(1) Optimization -Move loop invariant computations out of loops - -fmudflap -Common RejectNegative Report Var(flag_mudflap) -Add mudflap bounds-checking instrumentation for single-threaded program - -fmudflapth -Common RejectNegative Report Var(flag_mudflap,2) -Add mudflap bounds-checking instrumentation for multi-threaded program - -fmudflapir -Common RejectNegative Report Var(flag_mudflap_ignore_reads) -Ignore read operations when inserting mudflap instrumentation +Common Report Var(flag_move_loop_invariants) Optimization +Move loop invariant computations out of loops. fdce Common Var(flag_dce) Init(1) Optimization -Use the RTL dead code elimination pass +Use the RTL dead code elimination pass. fdse Common Var(flag_dse) Init(1) Optimization -Use the RTL dead store elimination pass +Use the RTL dead store elimination pass. freschedule-modulo-scheduled-loops Common Report Var(flag_resched_modulo_sched) Optimization -Enable/Disable the traditional scheduling in loops that already passed modulo scheduling +Enable/Disable the traditional scheduling in loops that already passed modulo scheduling. fnon-call-exceptions Common Report Var(flag_non_call_exceptions) Optimization -Support synchronous non-call exceptions +Support synchronous non-call exceptions. + +foffload= +Common Driver Joined MissingArgError(options or targets missing after %qs) +-foffload=<targets>=<options> Specify offloading targets and options for them. + +foffload-abi= +Common Joined RejectNegative Enum(offload_abi) Var(flag_offload_abi) Init(OFFLOAD_ABI_UNSET) +-foffload-abi=[lp64|ilp32] Set the ABI to use in an offload compiler. + +Enum +Name(offload_abi) Type(enum offload_abi) UnknownError(unknown offload ABI %qs) + +EnumValue +Enum(offload_abi) String(ilp32) Value(OFFLOAD_ABI_ILP32) + +EnumValue +Enum(offload_abi) String(lp64) Value(OFFLOAD_ABI_LP64) fomit-frame-pointer Common Report Var(flag_omit_frame_pointer) Optimization -When possible do not generate stack frames +When possible do not generate stack frames. + +fopt-info +Common Report Var(flag_opt_info) Optimization +Enable all optimization info dumps on stderr. + +fopt-info- +Common Joined RejectNegative Var(common_deferred_options) Defer +-fopt-info[-<type>=filename] Dump compiler optimization details. foptimize-register-move -Common Report Var(flag_regmove) Optimization -Do the full register move optimization pass +Common Ignore +Does nothing. Preserved for backward compatibility. foptimize-sibling-calls Common Report Var(flag_optimize_sibling_calls) Optimization -Optimize sibling and tail recursive calls +Optimize sibling and tail recursive calls. fpartial-inlining -Common Report Var(flag_partial_inlining) -Perform partial inlining +Common Report Var(flag_partial_inlining) Optimization +Perform partial inlining. fpre-ipa-mem-report Common Report Var(pre_ipa_mem_report) -Report on memory allocation before interprocedural optimization +Report on memory allocation before interprocedural optimization. fpost-ipa-mem-report Common Report Var(post_ipa_mem_report) -Report on memory allocation before interprocedural optimization +Report on memory allocation before interprocedural optimization. fpack-struct Common Report Var(flag_pack_struct) Optimization -Pack structure members together without holes +Pack structure members together without holes. fpack-struct= Common RejectNegative Joined UInteger Optimization --fpack-struct=<number> Set initial maximum structure member alignment +-fpack-struct=<number> Set initial maximum structure member alignment. fpcc-struct-return Common Report Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN) -Return small aggregates in memory, not registers +Return small aggregates in memory, not registers. fpeel-loops Common Report Var(flag_peel_loops) Optimization -Perform loop peeling +Perform loop peeling. fpeephole Common Report Var(flag_no_peephole,0) Optimization -Enable machine specific peephole optimizations +Enable machine specific peephole optimizations. fpeephole2 Common Report Var(flag_peephole2) Optimization -Enable an RTL peephole pass before sched2 +Enable an RTL peephole pass before sched2. fPIC -Common Report Var(flag_pic,2) -Generate position-independent code if possible (large mode) +Common Report Var(flag_pic,2) Negative(fPIE) Init(-1) +Generate position-independent code if possible (large mode). fPIE -Common Report Var(flag_pie,2) -Generate position-independent code for executables if possible (large mode) +Common Report Var(flag_pie,2) Negative(fpic) Init(-1) +Generate position-independent code for executables if possible (large mode). fpic -Common Report Var(flag_pic,1) -Generate position-independent code if possible (small mode) +Common Report Var(flag_pic,1) Negative(fpie) Init(-1) +Generate position-independent code if possible (small mode). fpie -Common Report Var(flag_pie,1) -Generate position-independent code for executables if possible (small mode) +Common Report Var(flag_pie,1) Negative(fPIC) Init(-1) +Generate position-independent code for executables if possible (small mode). + +fplt +Common Report Var(flag_plt) Init(1) Optimization +Use PLT for PIC calls (-fno-plt: load the address from GOT at call site). fplugin= Common Joined RejectNegative Var(common_deferred_options) Defer -Specify a plugin to load +Specify a plugin to load. fplugin-arg- Common Joined RejectNegative Var(common_deferred_options) Defer --fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name> +-fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>. fpredictive-commoning Common Report Var(flag_predictive_commoning) Optimization @@ -1505,15 +2011,19 @@ fprefetch-loop-arrays Common Report Var(flag_prefetch_loop_arrays) Init(-1) Optimization -Generate prefetch instructions, if available, for arrays in loops +Generate prefetch instructions, if available, for arrays in loops. fprofile Common Report Var(profile_flag) -Enable basic program profiling code +Enable basic program profiling code. + +fprofile-abs-path +Common Report Var(profile_abs_path_flag) +Generate absolute source path names for gcov. fprofile-arcs Common Report Var(profile_arc_flag) -Insert arc-based program profiling code +Insert arc-based program profiling code. fprofile-dir= Common Joined RejectNegative Var(profile_data_prefix) @@ -1522,34 +2032,62 @@ fprofile-correction Common Report Var(flag_profile_correction) -Enable correction of flow inconsistent profile data input +Enable correction of flow inconsistent profile data input. + +fprofile-update= +Common Joined RejectNegative Enum(profile_update) Var(flag_profile_update) Init(PROFILE_UPDATE_SINGLE) +-fprofile-update=[single|atomic|prefer-atomic] Set the profile update method. + +Enum +Name(profile_update) Type(enum profile_update) UnknownError(unknown profile update method %qs) + +EnumValue +Enum(profile_update) String(single) Value(PROFILE_UPDATE_SINGLE) + +EnumValue +Enum(profile_update) String(atomic) Value(PROFILE_UPDATE_ATOMIC) + +EnumValue +Enum(profile_update) String(prefer-atomic) Value(PROFILE_UPDATE_PREFER_ATOMIC) fprofile-generate Common -Enable common options for generating profile info for profile feedback directed optimizations +Enable common options for generating profile info for profile feedback directed optimizations. fprofile-generate= Common Joined RejectNegative -Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir= +Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=. fprofile-use Common Var(flag_profile_use) -Enable common options for performing profile feedback directed optimizations +Enable common options for performing profile feedback directed optimizations. fprofile-use= Common Joined RejectNegative -Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir= +Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=. fprofile-values Common Report Var(flag_profile_values) -Insert code to profile values of expressions +Insert code to profile values of expressions. + +fprofile-report +Common Report Var(profile_report) +Report on consistency of profile. + +fprofile-reorder-functions +Common Report Var(flag_profile_reorder_functions) +Enable function reordering that improves code placement. + +fpatchable-function-entry= +Common Joined Optimization +Insert NOP instructions at each function entry. frandom-seed Common Var(common_deferred_options) Defer frandom-seed= Common Joined RejectNegative Var(common_deferred_options) Defer --frandom-seed=<string> Make compile reproducible using <string> +-frandom-seed=<string> Make compile reproducible using <string>. ; This switch causes the command line that was used to create an ; object file to be recorded into the object file. The exact format @@ -1563,31 +2101,60 @@ freg-struct-return Common Report Var(flag_pcc_struct_return,0) Optimization -Return small aggregates in registers +Return small aggregates in registers. fregmove -Common Report Var(flag_regmove) Optimization -Enables a register move optimization +Common Ignore +Does nothing. Preserved for backward compatibility. + +flifetime-dse +Common Report Var(flag_lifetime_dse,2) Init(2) Optimization +Tell DSE that the storage for a C++ object is dead when the constructor +starts and when the destructor finishes. + +flifetime-dse= +Common Joined RejectNegative UInteger Var(flag_lifetime_dse) Optimization IntegerRange(0, 2) + +flive-range-shrinkage +Common Report Var(flag_live_range_shrinkage) Init(0) Optimization +Relief of register pressure through live range shrinkage. frename-registers Common Report Var(flag_rename_registers) Init(2) Optimization -Perform a register renaming optimization pass +Perform a register renaming optimization pass. + +fschedule-fusion +Common Report Var(flag_schedule_fusion) Init(2) Optimization +Perform a target dependent instruction fusion optimization pass. freorder-blocks Common Report Var(flag_reorder_blocks) Optimization -Reorder basic blocks to improve code placement +Reorder basic blocks to improve code placement. + +freorder-blocks-algorithm= +Common Joined RejectNegative Enum(reorder_blocks_algorithm) Var(flag_reorder_blocks_algorithm) Init(REORDER_BLOCKS_ALGORITHM_SIMPLE) Optimization +-freorder-blocks-algorithm=[simple|stc] Set the used basic block reordering algorithm. + +Enum +Name(reorder_blocks_algorithm) Type(enum reorder_blocks_algorithm) UnknownError(unknown basic block reordering algorithm %qs) + +EnumValue +Enum(reorder_blocks_algorithm) String(simple) Value(REORDER_BLOCKS_ALGORITHM_SIMPLE) + +EnumValue +Enum(reorder_blocks_algorithm) String(stc) Value(REORDER_BLOCKS_ALGORITHM_STC) freorder-blocks-and-partition Common Report Var(flag_reorder_blocks_and_partition) Optimization -Reorder basic blocks and partition into hot and cold sections +Reorder basic blocks and partition into hot and cold sections. freorder-functions Common Report Var(flag_reorder_functions) Optimization -Reorder functions to improve code placement +Reorder functions to improve code placement. frerun-cse-after-loop Common Report Var(flag_rerun_cse_after_loop) Optimization -Add a common subexpression elimination pass after loop optimizations +Add a common subexpression elimination pass after loop optimizations. frerun-loop-opt Common Ignore @@ -1595,35 +2162,35 @@ frounding-math Common Report Var(flag_rounding_math) Optimization SetByCombined -Disable optimizations that assume default FP rounding behavior +Disable optimizations that assume default FP rounding behavior. fsched-interblock Common Report Var(flag_schedule_interblock) Init(1) Optimization -Enable scheduling across basic blocks +Enable scheduling across basic blocks. fsched-pressure Common Report Var(flag_sched_pressure) Init(0) Optimization -Enable register pressure sensitive insn scheduling +Enable register pressure sensitive insn scheduling. fsched-spec Common Report Var(flag_schedule_speculative) Init(1) Optimization -Allow speculative motion of non-loads +Allow speculative motion of non-loads. fsched-spec-load Common Report Var(flag_schedule_speculative_load) Optimization -Allow speculative motion of some loads +Allow speculative motion of some loads. fsched-spec-load-dangerous Common Report Var(flag_schedule_speculative_load_dangerous) Optimization -Allow speculative motion of more loads +Allow speculative motion of more loads. fsched-verbose= -Common RejectNegative Joined UInteger Var(sched_verbose_param) --fsched-verbose=<number> Set the verbosity level of the scheduler +Common RejectNegative Joined UInteger Var(sched_verbose_param) Init(1) +-fsched-verbose=<number> Set the verbosity level of the scheduler. fsched2-use-superblocks Common Report Var(flag_sched2_use_superblocks) Optimization -If scheduling post reload, do superblock scheduling +If scheduling post reload, do superblock scheduling. fsched2-use-traces Common Ignore @@ -1631,44 +2198,52 @@ fschedule-insns Common Report Var(flag_schedule_insns) Optimization -Reschedule instructions before register allocation +Reschedule instructions before register allocation. fschedule-insns2 Common Report Var(flag_schedule_insns_after_reload) Optimization -Reschedule instructions after register allocation +Reschedule instructions after register allocation. ; This flag should be on when a target implements non-trivial ; scheduling hooks, maybe saving some information for its own sake. -; On IA64, for example, this is used for correct bundling. +; On IA64, for example, this is used for correct bundling. fselective-scheduling Common Report Var(flag_selective_scheduling) Optimization -Schedule instructions using selective scheduling algorithm +Schedule instructions using selective scheduling algorithm. fselective-scheduling2 -Common Report Var(flag_selective_scheduling2) Optimization -Run selective scheduling after reload +Common Report Var(flag_selective_scheduling2) Optimization +Run selective scheduling after reload. + +fself-test= +Common Undocumented Joined Var(flag_self_test) +Run self-tests, using the given path to locate test files. fsel-sched-pipelining Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization -Perform software pipelining of inner loops during selective scheduling +Perform software pipelining of inner loops during selective scheduling. fsel-sched-pipelining-outer-loops Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization -Perform software pipelining of outer loops during selective scheduling +Perform software pipelining of outer loops during selective scheduling. fsel-sched-reschedule-pipelined Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization -Reschedule pipelined regions without pipelining +Reschedule pipelined regions without pipelining. + +fsemantic-interposition +Common Report Var(flag_semantic_interposition) Init(1) +Allow interposing function (or variables) by ones with different semantics (or initializer) respectively by dynamic linker. ; sched_stalled_insns means that insns can be moved prematurely from the queue ; of stalled insns into the ready list. fsched-stalled-insns Common Report Var(flag_sched_stalled_insns) Optimization UInteger -Allow premature scheduling of queued insns +Allow premature scheduling of queued insns. fsched-stalled-insns= -Common RejectNegative Joined UInteger --fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled +Common RejectNegative Joined UInteger Optimization +-fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled. ; sched_stalled_insns_dep controls how many recently scheduled cycles will ; be examined for a dependency on a stalled insn that is candidate for @@ -1676,110 +2251,148 @@ ; an effect only if the flag 'sched_stalled_insns' is set). fsched-stalled-insns-dep Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger -Set dependence distance checking in premature scheduling of queued insns +Set dependence distance checking in premature scheduling of queued insns. fsched-stalled-insns-dep= -Common RejectNegative Joined UInteger --fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns +Common RejectNegative Joined UInteger Optimization +-fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns. fsched-group-heuristic Common Report Var(flag_sched_group_heuristic) Init(1) Optimization -Enable the group heuristic in the scheduler +Enable the group heuristic in the scheduler. fsched-critical-path-heuristic Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization -Enable the critical path heuristic in the scheduler +Enable the critical path heuristic in the scheduler. fsched-spec-insn-heuristic Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization -Enable the speculative instruction heuristic in the scheduler +Enable the speculative instruction heuristic in the scheduler. fsched-rank-heuristic Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization -Enable the rank heuristic in the scheduler +Enable the rank heuristic in the scheduler. fsched-last-insn-heuristic Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization -Enable the last instruction heuristic in the scheduler +Enable the last instruction heuristic in the scheduler. fsched-dep-count-heuristic Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization -Enable the dependent count heuristic in the scheduler +Enable the dependent count heuristic in the scheduler. fsection-anchors Common Report Var(flag_section_anchors) Optimization -Access data in the same section from shared anchor points +Access data in the same section from shared anchor points. fsee Common Ignore Does nothing. Preserved for backward compatibility. fzee -Common Report Var(flag_zee) Init(0) -Eliminate redundant zero extensions on targets that support implicit extensions. +Common Ignore +Does nothing. Preserved for backward compatibility. + +free +Common Report Var(flag_ree) Init(0) +Turn on Redundant Extensions Elimination pass. fshow-column Common Report Var(flag_show_column) Init(1) -Show column numbers in diagnostics, when available. Default on +Show column numbers in diagnostics, when available. Default on. + +fshrink-wrap +Common Report Var(flag_shrink_wrap) Optimization +Emit function prologues only before parts of the function that need it, +rather than at the top of the function. + +fshrink-wrap-separate +Common Report Var(flag_shrink_wrap_separate) Init(1) Optimization +Shrink-wrap parts of the prologue and epilogue separately. fsignaling-nans Common Report Var(flag_signaling_nans) Optimization SetByCombined -Disable optimizations observable by IEEE signaling NaNs +Disable optimizations observable by IEEE signaling NaNs. fsigned-zeros Common Report Var(flag_signed_zeros) Init(1) Optimization SetByCombined -Disable floating point optimizations that ignore the IEEE signedness of zero +Disable floating point optimizations that ignore the IEEE signedness of zero. fsingle-precision-constant Common Report Var(flag_single_precision_constant) Optimization -Convert floating point constants to single precision constants +Convert floating point constants to single precision constants. fsplit-ivs-in-unroller Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization -Split lifetimes of induction variables when loops are unrolled +Split lifetimes of induction variables when loops are unrolled. fsplit-stack Common Report Var(flag_split_stack) Init(-1) -Generate discontiguous stack frames +Generate discontiguous stack frames. fsplit-wide-types Common Report Var(flag_split_wide_types) Optimization -Split wide types into independent registers +Split wide types into independent registers. + +fssa-backprop +Common Report Var(flag_ssa_backprop) Init(1) Optimization +Enable backward propagation of use properties at the SSA level. + +fssa-phiopt +Common Report Var(flag_ssa_phiopt) Optimization +Optimize conditional patterns using SSA PHI nodes. + +fstdarg-opt +Common Report Var(flag_stdarg_opt) Init(1) Optimization +Optimize amount of stdarg registers saved to stack at start of function. fvariable-expansion-in-unroller Common Report Var(flag_variable_expansion_in_unroller) Optimization -Apply variable expansion when loops are unrolled +Apply variable expansion when loops are unrolled. fstack-check= -Common Report RejectNegative Joined --fstack-check=[no|generic|specific] Insert stack checking code into the program +Common Report RejectNegative Joined Optimization +-fstack-check=[no|generic|specific] Insert stack checking code into the program. fstack-check Common Alias(fstack-check=, specific, no) -Insert stack checking code into the program. Same as -fstack-check=specific +Insert stack checking code into the program. Same as -fstack-check=specific. + +fstack-clash-protection +Common Report Var(flag_stack_clash_protection) Optimization +Insert code to probe each page of stack space as it is allocated to protect +from stack-clash style attacks. fstack-limit Common Var(common_deferred_options) Defer fstack-limit-register= Common RejectNegative Joined Var(common_deferred_options) Defer --fstack-limit-register=<register> Trap if the stack goes past <register> +-fstack-limit-register=<register> Trap if the stack goes past <register>. fstack-limit-symbol= Common RejectNegative Joined Var(common_deferred_options) Defer --fstack-limit-symbol=<name> Trap if the stack goes past symbol <name> +-fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>. fstack-protector -Common Report Var(flag_stack_protect, 1) -Use propolice as a stack protection method +Common Report Var(flag_stack_protect, 1) Init(-1) Optimization +Use propolice as a stack protection method. fstack-protector-all -Common Report RejectNegative Var(flag_stack_protect, 2) -Use a stack protection method for every function +Common Report RejectNegative Var(flag_stack_protect, 2) Init(-1) Optimization +Use a stack protection method for every function. + +fstack-protector-strong +Common Report RejectNegative Var(flag_stack_protect, 3) Init(-1) Optimization +Use a smart stack protection method for certain functions. + +fstack-protector-explicit +Common Report RejectNegative Var(flag_stack_protect, 4) Optimization +Use stack protection method only for functions with the stack_protect attribute. fstack-usage Common RejectNegative Var(flag_stack_usage) -Output stack usage information on a per-function basis +Output stack usage information on a per-function basis. fstrength-reduce Common Ignore @@ -1791,31 +2404,39 @@ ; if alias analysis (in general) is enabled. fstrict-aliasing Common Report Var(flag_strict_aliasing) Optimization -Assume strict aliasing rules apply +Assume strict aliasing rules apply. fstrict-overflow -Common Report Var(flag_strict_overflow) -Treat signed overflow as undefined +Common NegativeAlias Alias(fwrapv) +Treat signed overflow as undefined. Negated as -fwrapv. + +fsync-libcalls +Common Report Var(flag_sync_libcalls) Init(1) +Implement __atomic operations via libcalls to legacy __sync functions. fsyntax-only Common Report Var(flag_syntax_only) -Check for syntax errors, then stop +Check for syntax errors, then stop. ftest-coverage Common Report Var(flag_test_coverage) -Create data files needed by \"gcov\" +Create data files needed by \"gcov\". fthread-jumps Common Report Var(flag_thread_jumps) Optimization -Perform jump threading optimizations +Perform jump threading optimizations. ftime-report Common Report Var(time_report) -Report the time taken by each compiler pass +Report the time taken by each compiler pass. + +ftime-report-details +Common Report Var(time_report_details) +Record times taken by sub-phases separately. ftls-model= Common Joined RejectNegative Enum(tls_model) Var(flag_tls_default) Init(TLS_MODEL_GLOBAL_DYNAMIC) --ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model +-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model. Enum Name(tls_model) Type(enum tls_model) UnknownError(unknown TLS model %qs) @@ -1833,31 +2454,36 @@ Enum(tls_model) String(local-exec) Value(TLS_MODEL_LOCAL_EXEC) ftoplevel-reorder -Common Report Var(flag_toplevel_reorder) Init(2) Optimization -Reorder top level functions, variables, and asms +Common Report Var(flag_toplevel_reorder) Init(2) +Reorder top level functions, variables, and asms. ftracer -Common Report Var(flag_tracer) -Perform superblock formation via tail duplication +Common Report Var(flag_tracer) Optimization +Perform superblock formation via tail duplication. + +ftrampolines +Common Report Var(flag_trampolines) Init(0) +For targets that normally need trampolines for nested functions, always +generate them instead of using descriptors. ; Zero means that floating-point math operations cannot generate a ; (user-visible) trap. This is the case, for example, in nonstop ; IEEE 754 arithmetic. ftrapping-math Common Report Var(flag_trapping_math) Init(1) Optimization SetByCombined -Assume floating-point operations can trap +Assume floating-point operations can trap. ftrapv Common Report Var(flag_trapv) Optimization -Trap for signed overflow in addition, subtraction and multiplication +Trap for signed overflow in addition, subtraction and multiplication. ftree-ccp Common Report Var(flag_tree_ccp) Optimization -Enable SSA-CCP optimization on trees +Enable SSA-CCP optimization on trees. ftree-bit-ccp Common Report Var(flag_tree_bit_ccp) Optimization -Enable SSA-BIT-CCP optimization on trees +Enable SSA-BIT-CCP optimization on trees. ftree-store-ccp Common Ignore @@ -1865,15 +2491,23 @@ ftree-ch Common Report Var(flag_tree_ch) Optimization -Enable loop header copying on trees +Enable loop header copying on trees. + +ftree-coalesce-inlined-vars +Common Ignore RejectNegative +Does nothing. Preserved for backward compatibility. + +ftree-coalesce-vars +Common Report Var(flag_tree_coalesce_vars) Optimization +Enable SSA coalescing of user variables. ftree-copyrename -Common Report Var(flag_tree_copyrename) Optimization -Replace SSA temporaries with better names in copies +Common Ignore +Does nothing. Preserved for backward compatibility. ftree-copy-prop Common Report Var(flag_tree_copy_prop) Optimization -Enable copy propagation on trees +Enable copy propagation on trees. ftree-store-copy-prop Common Ignore @@ -1881,7 +2515,7 @@ ftree-cselim Common Report Var(flag_tree_cselim) Init(2) Optimization -Transform condition stores into unconditional ones +Transform condition stores into unconditional ones. ftree-switch-conversion Common Report Var(flag_tree_switch_conversion) Optimization @@ -1889,51 +2523,72 @@ ftree-dce Common Report Var(flag_tree_dce) Optimization -Enable SSA dead code elimination optimization on trees +Enable SSA dead code elimination optimization on trees. ftree-dominator-opts Common Report Var(flag_tree_dom) Optimization -Enable dominator optimizations +Enable dominator optimizations. + +ftree-tail-merge +Common Report Var(flag_tree_tail_merge) Optimization +Enable tail merging on trees. ftree-dse Common Report Var(flag_tree_dse) Optimization -Enable dead store elimination +Enable dead store elimination. ftree-forwprop Common Report Var(flag_tree_forwprop) Init(1) Optimization -Enable forward propagation on trees +Enable forward propagation on trees. ftree-fre Common Report Var(flag_tree_fre) Optimization -Enable Full Redundancy Elimination (FRE) on trees +Enable Full Redundancy Elimination (FRE) on trees. + +foptimize-strlen +Common Report Var(flag_optimize_strlen) Optimization +Enable string length optimizations on trees. + +fisolate-erroneous-paths-dereference +Common Report Var(flag_isolate_erroneous_paths_dereference) Optimization +Detect paths that trigger erroneous or undefined behavior due to +dereferencing a null pointer. Isolate those paths from the main control +flow and turn the statement with erroneous or undefined behavior into a trap. + +fisolate-erroneous-paths-attribute +Common Report Var(flag_isolate_erroneous_paths_attribute) Optimization +Detect paths that trigger erroneous or undefined behavior due to a null value +being used in a way forbidden by a returns_nonnull or nonnull +attribute. Isolate those paths from the main control flow and turn the +statement with erroneous or undefined behavior into a trap. ftree-loop-distribution Common Report Var(flag_tree_loop_distribution) Optimization -Enable loop distribution on trees +Enable loop distribution on trees. ftree-loop-distribute-patterns Common Report Var(flag_tree_loop_distribute_patterns) Optimization -Enable loop distribution for patterns transformed into a library call +Enable loop distribution for patterns transformed into a library call. ftree-loop-im Common Report Var(flag_tree_loop_im) Init(1) Optimization -Enable loop invariant motion on trees +Enable loop invariant motion on trees. ftree-loop-linear -Common Alias(floop-interchange) -Enable loop interchange transforms. Same as -floop-interchange +Common Alias(floop-nest-optimize) +Enable loop nest transforms. Same as -floop-nest-optimize. ftree-loop-ivcanon Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization -Create canonical induction variables in loops +Create canonical induction variables in loops. ftree-loop-optimize Common Report Var(flag_tree_loop_optimize) Init(1) Optimization -Enable loop optimizations on tree level +Enable loop optimizations on tree level. ftree-parallelize-loops= -Common Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1) -Enable automatic parallelization of loops +Common Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1) Optimization +-ftree-parallelize-loops=<number> Enable automatic parallelization of loops. ftree-phiprop Common Report Var(flag_tree_phiprop) Init(1) Optimization @@ -1941,15 +2596,19 @@ ftree-pre Common Report Var(flag_tree_pre) Optimization -Enable SSA-PRE optimization on trees +Enable SSA-PRE optimization on trees. + +ftree-partial-pre +Common Report Var(flag_tree_partial_pre) Optimization +In SSA-PRE optimization on trees, enable partial-partial redundancy elimination. ftree-pta -Common Report Var(flag_tree_pta) Init(1) Optimization +Common Report Var(flag_tree_pta) Optimization Perform function-local points-to analysis on trees. ftree-reassoc Common Report Var(flag_tree_reassoc) Init(1) Optimization -Enable reassociation on tree level +Enable reassociation on tree level. ftree-salias Common Ignore @@ -1957,50 +2616,63 @@ ftree-sink Common Report Var(flag_tree_sink) Optimization -Enable SSA code sinking on trees +Enable SSA code sinking on trees. + +ftree-slsr +Common Report Var(flag_tree_slsr) Optimization +Perform straight-line strength reduction. ftree-sra Common Report Var(flag_tree_sra) Optimization -Perform scalar replacement of aggregates +Perform scalar replacement of aggregates. ftree-ter Common Report Var(flag_tree_ter) Optimization -Replace temporary expressions in the SSA->normal pass +Replace temporary expressions in the SSA->normal pass. ftree-lrs Common Report Var(flag_tree_live_range_split) Optimization -Perform live range splitting during the SSA->normal pass +Perform live range splitting during the SSA->normal pass. ftree-vrp Common Report Var(flag_tree_vrp) Init(0) Optimization -Perform Value Range Propagation on trees +Perform Value Range Propagation on trees. + +fsplit-paths +Common Report Var(flag_split_paths) Init(0) Optimization +Split paths leading to loop backedges. + +funconstrained-commons +Common Var(flag_unconstrained_commons) Optimization +Assume common declarations may be overridden with ones with a larger +trailing array. funit-at-a-time -Common Report Var(flag_unit_at_a_time) Init(1) Optimization -Compile whole compilation unit at a time +Common Report Var(flag_unit_at_a_time) Init(1) +Compile whole compilation unit at a time. funroll-loops Common Report Var(flag_unroll_loops) Optimization -Perform loop unrolling when iteration count is known +Perform loop unrolling when iteration count is known. funroll-all-loops Common Report Var(flag_unroll_all_loops) Optimization -Perform loop unrolling for all loops +Perform loop unrolling for all loops. ; Nonzero means that loop optimizer may assume that the induction variables ; that control loops do not overflow and that the loops with nontrivial ; exit condition are not infinite funsafe-loop-optimizations -Common Report Var(flag_unsafe_loop_optimizations) Optimization -Allow loop optimizations to assume that the loops behave in normal way +Common Ignore +Does nothing. Preserved for backward compatibility. fassociative-math -Common Report Var(flag_associative_math) SetByCombined +Common Report Var(flag_associative_math) SetByCombined Optimization Allow optimization for floating-point arithmetic which may change the result of the operation due to rounding. freciprocal-math -Common Report Var(flag_reciprocal_math) SetByCombined +Common Report Var(flag_reciprocal_math) SetByCombined Optimization Same as -fassociative-math for expressions which include division. ; Nonzero means that unsafe floating-point math optimizations are allowed @@ -2009,18 +2681,30 @@ ; (e.g., nonnegative for SQRT). funsafe-math-optimizations Common Report Var(flag_unsafe_math_optimizations) Optimization SetByCombined -Allow math optimizations that may violate IEEE or ISO standards +Allow math optimizations that may violate IEEE or ISO standards. funswitch-loops Common Report Var(flag_unswitch_loops) Optimization -Perform loop unswitching +Perform loop unswitching. + +fsplit-loops +Common Report Var(flag_split_loops) Optimization +Perform loop splitting. funwind-tables Common Report Var(flag_unwind_tables) Optimization -Just generate unwind tables for exception handling +Just generate unwind tables for exception handling. + +fuse-ld=bfd +Common Driver Negative(fuse-ld=gold) +Use the bfd linker instead of the default linker. + +fuse-ld=gold +Common Driver Negative(fuse-ld=bfd) +Use the gold linker instead of the default linker. fuse-linker-plugin -Common Undocumented +Common Undocumented Var(flag_use_linker_plugin) ; Positive if we should track variables, negative if we should run ; the var-tracking pass only to discard debug annotations, zero if @@ -2028,46 +2712,76 @@ ; will be set according to optimize, debug_info_level and debug_hooks ; in process_options (). fvar-tracking -Common Report Var(flag_var_tracking) Init(2) Optimization -Perform variable tracking +Common Report Var(flag_var_tracking) Init(2) PerFunction +Perform variable tracking. ; Positive if we should track variables at assignments, negative if ; we should run the var-tracking pass only to discard debug ; annotations. When flag_var_tracking_assignments == ; AUTODETECT_VALUE it will be set according to flag_var_tracking. fvar-tracking-assignments -Common Report Var(flag_var_tracking_assignments) Init(2) Optimization -Perform variable tracking by annotating assignments +Common Report Var(flag_var_tracking_assignments) Init(2) PerFunction +Perform variable tracking by annotating assignments. ; Nonzero if we should toggle flag_var_tracking_assignments after ; processing options and computing its default. */ fvar-tracking-assignments-toggle -Common Report Var(flag_var_tracking_assignments_toggle) Optimization -Toggle -fvar-tracking-assignments - +Common Report Var(flag_var_tracking_assignments_toggle) PerFunction +Toggle -fvar-tracking-assignments. + +; Positive if we should track uninitialized variables, negative if +; we should run the var-tracking pass only to discard debug +; annotations. When flag_var_tracking_uninit == AUTODETECT_VALUE it +; will be set according to flag_var_tracking. fvar-tracking-uninit -Common Report Var(flag_var_tracking_uninit) Optimization -Perform variable tracking and also tag variables that are uninitialized - +Common Report Var(flag_var_tracking_uninit) PerFunction +Perform variable tracking and also tag variables that are uninitialized. + +; Alias to enable both -ftree-loop-vectorize and -ftree-slp-vectorize. ftree-vectorize -Common Report Var(flag_tree_vectorize) Optimization -Enable loop vectorization on trees +Common Report Optimization +Enable vectorization on trees. + +ftree-vectorizer-verbose= +Common Joined RejectNegative Ignore +Does nothing. Preserved for backward compatibility. + +ftree-loop-vectorize +Common Report Var(flag_tree_loop_vectorize) Optimization EnabledBy(ftree-vectorize) +Enable loop vectorization on trees. ftree-slp-vectorize -Common Report Var(flag_tree_slp_vectorize) Init(2) Optimization -Enable basic block vectorization (SLP) on trees +Common Report Var(flag_tree_slp_vectorize) Optimization EnabledBy(ftree-vectorize) +Enable basic block vectorization (SLP) on trees. + +fvect-cost-model= +Common Joined RejectNegative Enum(vect_cost_model) Var(flag_vect_cost_model) Init(VECT_COST_MODEL_DEFAULT) Optimization +Specifies the cost model for vectorization. +-fvect-cost-model=[unlimited|dynamic|cheap] Specifies the cost model for vectorization. + +fsimd-cost-model= +Common Joined RejectNegative Enum(vect_cost_model) Var(flag_simd_cost_model) Init(VECT_COST_MODEL_UNLIMITED) Optimization +-fsimd-cost-model=[unlimited|dynamic|cheap] Specifies the vectorization cost model for code marked with a simd directive. + +Enum +Name(vect_cost_model) Type(enum vect_cost_model) UnknownError(unknown vectorizer cost model %qs) + +EnumValue +Enum(vect_cost_model) String(unlimited) Value(VECT_COST_MODEL_UNLIMITED) + +EnumValue +Enum(vect_cost_model) String(dynamic) Value(VECT_COST_MODEL_DYNAMIC) + +EnumValue +Enum(vect_cost_model) String(cheap) Value(VECT_COST_MODEL_CHEAP) fvect-cost-model -Common Report Var(flag_vect_cost_model) Optimization -Enable use of cost model in vectorization +Common Alias(fvect-cost-model=,dynamic,unlimited) +Enables the dynamic vectorizer cost model. Preserved for backward compatibility. ftree-vect-loop-version -Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization -Enable loop versioning when doing loop vectorization on trees - -ftree-vectorizer-verbose= -Common RejectNegative Joined UInteger --ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer +Common Ignore +Does nothing. Preserved for backward compatibility. ftree-scev-cprop Common Report Var(flag_tree_scev_cprop) Init(1) Optimization @@ -2081,11 +2795,11 @@ ; to not be added and is useful when comparing two assembler files. fverbose-asm Common Report Var(flag_verbose_asm) -Add extra commentary to assembler output +Add extra commentary to assembler output. fvisibility= Common Joined RejectNegative Enum(symbol_visibility) Var(default_visibility) Init(VISIBILITY_DEFAULT) --fvisibility=[default|internal|hidden|protected] Set the default symbol visibility +-fvisibility=[default|internal|hidden|protected] Set the default symbol visibility. Enum Name(symbol_visibility) Type(enum symbol_visibility) UnknownError(unrecognized visibility value %qs) @@ -2102,84 +2816,162 @@ EnumValue Enum(symbol_visibility) String(protected) Value(VISIBILITY_PROTECTED) +fvtable-verify= +Common Joined RejectNegative Enum(vtv_priority) Var(flag_vtable_verify) Init(VTV_NO_PRIORITY) +Validate vtable pointers before using them. + +Enum +Name(vtv_priority) Type(enum vtv_priority) UnknownError(unknown vtable verify initialization priority %qs) + +EnumValue +Enum(vtv_priority) String(none) Value(VTV_NO_PRIORITY) + +EnumValue +Enum(vtv_priority) String(std) Value(VTV_STANDARD_PRIORITY) + +EnumValue +Enum(vtv_priority) String(preinit) Value(VTV_PREINIT_PRIORITY) + +fvtv-counts +Common Var(flag_vtv_counts) +Output vtable verification counters. + +fvtv-debug +Common Var(flag_vtv_debug) +Output vtable verification pointer sets information. + fvpt Common Report Var(flag_value_profile_transformations) Optimization -Use expression value profiles in optimizations +Use expression value profiles in optimizations. fweb Common Report Var(flag_web) Init(2) Optimization -Construct webs and split unrelated uses of single variable +Construct webs and split unrelated uses of single variable. ftree-builtin-call-dce Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization -Enable conditional dead code elimination for builtin calls +Enable conditional dead code elimination for builtin calls. fwhole-program -Common Report Var(flag_whole_program) Init(0) Optimization -Perform whole program optimizations +Common Report Var(flag_whole_program) Init(0) +Perform whole program optimizations. fwrapv Common Report Var(flag_wrapv) Optimization -Assume signed arithmetic overflow wraps around +Assume signed arithmetic overflow wraps around. fzero-initialized-in-bss Common Report Var(flag_zero_initialized_in_bss) Init(1) -Put zero initialized data in the bss section +Put zero initialized data in the bss section. g -Common JoinedOrMissing -Generate debug information in default format +Common Driver RejectNegative JoinedOrMissing +Generate debug information in default format. gcoff -Common JoinedOrMissing Negative(gdwarf-) -Generate debug information in COFF format +Common Driver JoinedOrMissing Negative(gdwarf) +Generate debug information in COFF format. + +gcolumn-info +Common Driver Var(debug_column_info,1) Init(1) +Record DW_AT_decl_column and DW_AT_call_column in DWARF. + +gdwarf +Common Driver JoinedOrMissing Negative(gdwarf-) +Generate debug information in default version of DWARF format. gdwarf- -Common Joined UInteger Var(dwarf_version) Init(2) Negative(gstabs) -Generate debug information in DWARF v2 (or later) format +Common Driver Joined UInteger Var(dwarf_version) Init(4) Negative(gstabs) +Generate debug information in DWARF v2 (or later) format. ggdb -Common JoinedOrMissing -Generate debug information in default extended format +Common Driver JoinedOrMissing +Generate debug information in default extended format. + +gno- +RejectNegative Joined Undocumented +; Catch the gno- prefix, so it doesn't backtrack to g<level>. + +gno-pubnames +Common Driver Negative(gpubnames) Var(debug_generate_pub_sections, 0) Init(-1) +Don't generate DWARF pubnames and pubtypes sections. + +gpubnames +Common Driver Negative(ggnu-pubnames) Var(debug_generate_pub_sections, 1) +Generate DWARF pubnames and pubtypes sections. + +ggnu-pubnames +Common Driver Negative(gno-pubnames) Var(debug_generate_pub_sections, 2) +Generate DWARF pubnames and pubtypes sections with GNU extensions. + +grecord-gcc-switches +Common Driver Var(dwarf_record_gcc_switches) Init(1) +Record gcc command line switches in DWARF DW_AT_producer. + +gsplit-dwarf +Common Driver Var(dwarf_split_debug_info) Init(0) +Generate debug information in separate .dwo files. gstabs -Common JoinedOrMissing Negative(gstabs+) -Generate debug information in STABS format +Common Driver JoinedOrMissing Negative(gstabs+) +Generate debug information in STABS format. gstabs+ -Common JoinedOrMissing Negative(gvms) -Generate debug information in extended STABS format - -gno-strict-dwarf -Common RejectNegative Var(dwarf_strict,0) Init(-1) -Emit DWARF additions beyond selected version +Common Driver JoinedOrMissing Negative(gvms) +Generate debug information in extended STABS format. gstrict-dwarf -Common Report RejectNegative Var(dwarf_strict,1) -Don't emit DWARF additions beyond selected version +Common Driver Report Var(dwarf_strict) Init(0) +Don't emit DWARF additions beyond selected version. gtoggle -Common Report Var(flag_gtoggle) -Toggle debug information generation +Common Driver Report Var(flag_gtoggle) +Toggle debug information generation. gvms -Common JoinedOrMissing Negative(gxcoff) -Generate debug information in VMS format +Common Driver JoinedOrMissing Negative(gxcoff) +Generate debug information in VMS format. gxcoff -Common JoinedOrMissing Negative(gxcoff+) -Generate debug information in XCOFF format +Common Driver JoinedOrMissing Negative(gxcoff+) +Generate debug information in XCOFF format. gxcoff+ -Common JoinedOrMissing Negative(gcoff) -Generate debug information in extended XCOFF format +Common Driver JoinedOrMissing Negative(gcoff) +Generate debug information in extended XCOFF format. + +Enum +Name(compressed_debug_sections) Type(int) + +; Since -gz= is completely handled in specs, the values aren't used and we +; assign arbitrary constants. +EnumValue +Enum(compressed_debug_sections) String(none) Value(0) + +EnumValue +Enum(compressed_debug_sections) String(zlib) Value(1) + +EnumValue +Enum(compressed_debug_sections) String(zlib-gnu) Value(2) + +gz +Common Driver +Generate compressed debug sections. + +gz= +Common Driver RejectNegative Joined Enum(compressed_debug_sections) +-gz=<format> Generate compressed debug sections in format <format>. h Driver Joined Separate iplugindir= Common Joined Var(plugindir_string) Init(0) --iplugindir=<dir> Set <dir> to be the default plugin directory +-iplugindir=<dir> Set <dir> to be the default plugin directory. + +imultiarch +Common Joined Separate RejectDriver Var(imultiarch) Init(0) +-imultiarch <dir> Set <dir> to be the multiarch include subdirectory. l Driver Joined Separate @@ -2201,22 +2993,21 @@ o Common Driver Joined Separate Var(asm_file_name) MissingArgError(missing filename after %qs) --o <file> Place output into <file> +-o <file> Place output into <file>. p Common Var(profile_flag) -Enable function profiling +Enable function profiling. pass-exit-codes Driver Var(pass_exit_codes) pedantic -Common Var(pedantic) -Issue warnings needed for strict compliance to the standard +Common Alias(Wpedantic) pedantic-errors Common Var(flag_pedantic_errors) -Like -pedantic but issue them as errors +Like -pedantic but issue them as errors. pg Driver @@ -2239,6 +3030,9 @@ print-multi-os-directory Driver Var(print_multi_os_directory) +print-multiarch +Driver Var(print_multiarch) + print-prog-name= Driver JoinedOrMissing Var(print_prog_name) @@ -2253,7 +3047,7 @@ quiet Common Var(quiet_flag) RejectDriver -Do not display functions compiled or elapsed time +Do not display functions compiled or elapsed time. r Driver @@ -2285,15 +3079,15 @@ v Common Driver Var(verbose_flag) -Enable verbose output +Enable verbose output. version Common Var(version_flag) RejectDriver -Display the compiler's version +Display the compiler's version. w Common Var(inhibit_warnings) -Suppress warnings +Suppress warnings. wrapper Driver Separate Var(wrapper_string) @@ -2302,8 +3096,8 @@ Driver Joined Separate shared -Common RejectNegative Negative(pie) -Create a shared library +Driver RejectNegative Negative(static-pie) +Create a shared library. shared-libgcc Driver @@ -2331,14 +3125,38 @@ Driver ; Documented for Go, but always accepted by driver. +static-libasan +Driver + +static-libtsan +Driver + +static-liblsan +Driver + +static-libubsan +Driver + symbolic Driver +no-pie +Driver RejectNegative Negative(shared) +Don't create a dynamically linked position independent executable. + pie -Common RejectNegative Negative(shared) -Create a position independent executable +Driver RejectNegative Negative(no-pie) +Create a dynamically linked position independent executable. + +static-pie +Driver RejectNegative Negative(pie) +Create a static position independent executable. z Driver Joined Separate +fipa-ra +Common Report Var(flag_ipa_ra) Optimization +Use caller save register across calls if possible. + ; This comment is to ensure we retain the blank line above.