public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc(refs/users/marxin/heads/options-Boolean-flag)] Implement Boolean flag for options.
@ 2020-12-16 13:10 Martin Liska
0 siblings, 0 replies; 2+ messages in thread
From: Martin Liska @ 2020-12-16 13:10 UTC (permalink / raw)
To: gcc-cvs
https://gcc.gnu.org/g:39c39c3987323730054153ec6263b5eebc645656
commit 39c39c3987323730054153ec6263b5eebc645656
Author: Martin Liska <mliska@suse.cz>
Date: Wed Dec 16 14:10:32 2020 +0100
Implement Boolean flag for options.
Diff:
---
gcc/c-family/c.opt | 14 +-
gcc/common.opt | 424 ++++++++++++++++++++---------------------
gcc/config/aarch64/aarch64.opt | 2 +-
gcc/opt-functions.awk | 10 +-
gcc/optc-gen.awk | 2 +-
gcc/opth-gen.awk | 8 +
gcc/params.opt | 42 ++--
7 files changed, 259 insertions(+), 243 deletions(-)
diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt
index 21d8cd03709..088520d2987 100644
--- a/gcc/c-family/c.opt
+++ b/gcc/c-family/c.opt
@@ -1817,7 +1817,7 @@ fnonnull-objects
C++ ObjC++ WarnRemoved
fnothrow-opt
-C++ ObjC++ Optimization Var(flag_nothrow_opt)
+C++ ObjC++ Optimization Boolean Var(flag_nothrow_opt)
Treat a throw() exception specification as noexcept to improve code size.
fobjc-abi-version=
@@ -1926,7 +1926,7 @@ C++ ObjC++ Var(flag_pretty_templates) Init(1)
Do not pretty-print template specializations as the template signature followed by the arguments.
fprintf-return-value
-C ObjC C++ ObjC++ LTO Optimization Var(flag_printf_return_value) Init(1)
+C ObjC C++ ObjC++ LTO Optimization Boolean Var(flag_printf_return_value) Init(1)
Treat known sprintf return values as constants.
freplace-objc-classes
@@ -1938,15 +1938,15 @@ C++ ObjC++ WarnRemoved
Removed in GCC 10. This switch has no effect.
frtti
-C++ ObjC++ Optimization Var(flag_rtti) Init(1)
+C++ ObjC++ Optimization Boolean Var(flag_rtti) Init(1)
Generate run time type descriptor information.
fshort-enums
-C ObjC C++ ObjC++ LTO Optimization Var(flag_short_enums)
+C ObjC C++ ObjC++ LTO Optimization Boolean Var(flag_short_enums)
Use the narrowest integer type possible for enumeration types.
fshort-wchar
-C ObjC C++ ObjC++ LTO Optimization Var(flag_short_wchar)
+C ObjC C++ ObjC++ LTO Optimization Boolean Var(flag_short_wchar)
Force the underlying type for \"wchar_t\" to be \"unsigned short\".
fsigned-bitfields
@@ -1985,7 +1985,7 @@ C++ ObjC++ Var(flag_detailed_statistics)
Display statistics accumulated during compilation.
fstrict-enums
-C++ ObjC++ Optimization Var(flag_strict_enums)
+C++ ObjC++ Optimization Boolean Var(flag_strict_enums)
Assume that values of enumeration type are always within the minimum range of that type.
fstrict-prototype
@@ -2028,7 +2028,7 @@ fthis-is-variable
C++ ObjC++ WarnRemoved
fthreadsafe-statics
-C++ ObjC++ Optimization Var(flag_threadsafe_statics) Init(1)
+C++ ObjC++ Optimization Boolean Var(flag_threadsafe_statics) Init(1)
-fno-threadsafe-statics Do not generate thread-safe code for initializing local statics.
funsigned-bitfields
diff --git a/gcc/common.opt b/gcc/common.opt
index fcb86c85450..6ca0194d7f8 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -465,19 +465,19 @@ N
Driver
O
-Common JoinedOrMissing Optimization
+Common JoinedOrMissing Optimization Boolean
-O<number> Set optimization level to <number>.
Os
-Common Optimization
+Common Optimization Boolean
Optimize for space rather than speed.
Ofast
-Common Optimization
+Common Optimization Boolean
Optimize for speed disregarding exact standards compliance.
Og
-Common Optimization
+Common Optimization Boolean
Optimize for debugging experience rather than speed or size.
Q
@@ -630,7 +630,7 @@ Common Var(warn_implicit_fallthrough) RejectNegative Joined UInteger Warning Int
Warn when a switch case falls through.
Winline
-Common Var(warn_inline) Warning Optimization
+Common Var(warn_inline) Warning Optimization Boolean
Warn when an inlined function cannot be inlined.
Winvalid-memory-model
@@ -978,42 +978,42 @@ Common Joined RejectNegative UInteger Var(flag_abi_version) Init(0)
The version of the C++ ABI in use.
faggressive-loop-optimizations
-Common Var(flag_aggressive_loop_optimizations) Optimization Init(1)
+Common Var(flag_aggressive_loop_optimizations) Optimization Boolean Init(1)
Aggressively optimize loops using language constraints.
falign-functions
-Common Var(flag_align_functions) Optimization
+Common Var(flag_align_functions) Optimization Boolean
Align the start of functions.
falign-functions=
Common RejectNegative Joined Var(str_align_functions) Optimization
flimit-function-alignment
-Common Var(flag_limit_function_alignment) Optimization Init(0)
+Common Var(flag_limit_function_alignment) Optimization Boolean Init(0)
falign-jumps
-Common Var(flag_align_jumps) Optimization
+Common Var(flag_align_jumps) Optimization Boolean
Align labels which are only reached by jumping.
falign-jumps=
Common RejectNegative Joined Var(str_align_jumps) Optimization
falign-labels
-Common Var(flag_align_labels) Optimization
+Common Var(flag_align_labels) Optimization Boolean
Align all labels.
falign-labels=
Common RejectNegative Joined Var(str_align_labels) Optimization
falign-loops
-Common Var(flag_align_loops) Optimization
+Common Var(flag_align_loops) Optimization Boolean
Align the start of loops.
falign-loops=
Common RejectNegative Joined Var(str_align_loops) Optimization
fallow-store-data-races
-Common Var(flag_store_data_races) Optimization
+Common Var(flag_store_data_races) Optimization Boolean
Allow the compiler to introduce new data races on stores.
fanalyzer
@@ -1073,7 +1073,7 @@ Common Var(flag_asynchronous_unwind_tables) Optimization
Generate unwind tables that are exact at each instruction boundary.
fauto-inc-dec
-Common Var(flag_auto_inc_dec) Init(1) Optimization
+Common Var(flag_auto_inc_dec) Init(1) Optimization Boolean
Generate auto-inc/dec instructions.
fauto-profile
@@ -1095,11 +1095,11 @@ Common Var(flag_bounds_check)
Generate code to check bounds before indexing arrays.
fbranch-count-reg
-Common Var(flag_branch_on_count_reg) Optimization
+Common Var(flag_branch_on_count_reg) Optimization Boolean
Replace add, compare, branch with branch on count register.
fbranch-probabilities
-Common Var(flag_branch_probabilities) Optimization
+Common Var(flag_branch_probabilities) Optimization Boolean
Use profiling information for branch probabilities.
fbranch-target-load-optimize
@@ -1134,7 +1134,7 @@ Common Joined RejectNegative Var(common_deferred_options) Defer
; be saved across function calls, if that produces overall better code.
; Optional now, so people can test it.
fcaller-saves
-Common Var(flag_caller_saves) Optimization
+Common Var(flag_caller_saves) Optimization Boolean
Save registers around function calls.
fcheck-data-deps
@@ -1154,11 +1154,11 @@ Common Joined RejectNegative UInteger Var(flag_checking)
Perform internal consistency checkings.
fcode-hoisting
-Common Var(flag_code_hoisting) Optimization
+Common Var(flag_code_hoisting) Optimization Boolean
Enable code hoisting.
fcombine-stack-adjustments
-Common Var(flag_combine_stack_adjustments) Optimization
+Common Var(flag_combine_stack_adjustments) Optimization Boolean
Looks for opportunities to reduce stack adjustments and stack references.
fcommon
@@ -1178,23 +1178,23 @@ Common Driver RejectNegative Var(flag_compare_debug)
Run only the second compilation of -fcompare-debug.
fcompare-elim
-Common Var(flag_compare_elim_after_reload) Optimization
+Common Var(flag_compare_elim_after_reload) Optimization Boolean
Perform comparison elimination after register allocation has finished.
fconserve-stack
-Common Var(flag_conserve_stack) Optimization
+Common Var(flag_conserve_stack) Optimization Boolean
Do not perform optimizations increasing noticeably stack usage.
fcprop-registers
-Common Var(flag_cprop_registers) Optimization
+Common Var(flag_cprop_registers) Optimization Boolean
Perform a register copy-propagation optimization pass.
fcrossjumping
-Common Var(flag_crossjumping) Optimization
+Common Var(flag_crossjumping) Optimization Boolean
Perform cross-jumping optimization.
fcse-follow-jumps
-Common Var(flag_cse_follow_jumps) Optimization
+Common Var(flag_cse_follow_jumps) Optimization Boolean
When running CSE, follow jumps to their targets.
fcse-skip-blocks
@@ -1202,11 +1202,11 @@ Common Ignore
Does nothing. Preserved for backward compatibility.
fcx-limited-range
-Common Var(flag_cx_limited_range) Optimization SetByCombined
+Common Var(flag_cx_limited_range) Optimization Boolean SetByCombined
Omit range reduction step when performing complex division.
fcx-fortran-rules
-Common Var(flag_cx_fortran_rules) Optimization
+Common Var(flag_cx_fortran_rules) Optimization Boolean
Complex multiplication and division follow Fortran rules.
fdata-sections
@@ -1236,15 +1236,15 @@ 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 Var(flag_defer_pop) Optimization
+Common Var(flag_defer_pop) Optimization Boolean
Defer popping functions args from stack until later.
fdelayed-branch
-Common Var(flag_delayed_branch) Optimization
+Common Var(flag_delayed_branch) Optimization Boolean
Attempt to fill delay slots of branch instructions.
fdelete-dead-exceptions
-Common Var(flag_delete_dead_exceptions) Init(0) Optimization
+Common Var(flag_delete_dead_exceptions) Init(0) Optimization Boolean
Delete dead instructions that may throw exceptions.
fdelete-null-pointer-checks
@@ -1256,11 +1256,11 @@ Common Var(flag_ltrans_devirtualize)
Stream extra data to support more aggressive devirtualization in LTO local transformation mode.
fdevirtualize-speculatively
-Common Var(flag_devirtualize_speculatively) Optimization
+Common Var(flag_devirtualize_speculatively) Optimization Boolean
Perform speculative devirtualization.
fdevirtualize
-Common Var(flag_devirtualize) Optimization
+Common Var(flag_devirtualize) Optimization Boolean
Try to convert virtual calls to direct ones.
fdiagnostics-show-location=
@@ -1471,7 +1471,7 @@ Common Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
Enable CFI tables via GAS assembler directives.
fearly-inlining
-Common Var(flag_early_inlining) Init(1) Optimization
+Common Var(flag_early_inlining) Init(1) Optimization Boolean
Perform early inlining.
feliminate-dwarf2-dups
@@ -1479,7 +1479,7 @@ Common Ignore
Does nothing. Preserved for backward compatibility.
fipa-sra
-Common Var(flag_ipa_sra) Init(0) Optimization
+Common Var(flag_ipa_sra) Init(0) Optimization Boolean
Perform interprocedural reduction of aggregates.
feliminate-unused-debug-symbols
@@ -1495,11 +1495,11 @@ Common Var(flag_emit_class_debug_always) Init(0)
Do not suppress C++ class debug information.
fexceptions
-Common Var(flag_exceptions) Optimization
+Common Var(flag_exceptions) Optimization Boolean
Enable exception handling.
fexpensive-optimizations
-Common Var(flag_expensive_optimizations) Optimization
+Common Var(flag_expensive_optimizations) Optimization Boolean
Perform a number of minor, expensive optimizations.
fexcess-precision=
@@ -1531,18 +1531,18 @@ EnumValue
Enum(permitted_flt_eval_methods) String(ts-18661-3) Value(PERMITTED_FLT_EVAL_METHODS_TS_18661)
ffast-math
-Common Optimization
+Common Optimization Boolean
ffat-lto-objects
Common Var(flag_fat_lto_objects)
Output lto objects containing both the intermediate language and binary output.
ffinite-math-only
-Common Var(flag_finite_math_only) Optimization SetByCombined
+Common Var(flag_finite_math_only) Optimization Boolean SetByCombined
Assume no NaNs or infinities are generated.
ffinite-loops
-Common Var(flag_finite_loops) Optimization Init(0)
+Common Var(flag_finite_loops) Optimization Boolean Init(0)
Assume that loops with an exit will terminate and not loop indefinitely.
ffixed-
@@ -1550,7 +1550,7 @@ Common Joined RejectNegative Var(common_deferred_options) Defer
-ffixed-<register> Mark <register> as being unavailable to the compiler.
ffloat-store
-Common Var(flag_float_store) Optimization
+Common Var(flag_float_store) Optimization Boolean
Don't allocate floats and doubles in extended-precision registers.
fforce-addr
@@ -1558,7 +1558,7 @@ Common Ignore
Does nothing. Preserved for backward compatibility.
fforward-propagate
-Common Var(flag_forward_propagate) Optimization
+Common Var(flag_forward_propagate) Optimization Boolean
Perform a forward propagation pass on RTL.
ffp-contract=
@@ -1579,14 +1579,14 @@ EnumValue
Enum(fp_contract_mode) String(fast) Value(FP_CONTRACT_FAST)
ffp-int-builtin-inexact
-Common Var(flag_fp_int_builtin_inexact) Init(1) Optimization
+Common Var(flag_fp_int_builtin_inexact) Init(1) Optimization Boolean
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 Var(flag_no_function_cse,0) Optimization
+Common Var(flag_no_function_cse,0) Optimization Boolean
Allow function addresses to be held in registers.
ffunction-sections
@@ -1594,24 +1594,24 @@ Common Var(flag_function_sections)
Place each function into its own section.
fgcse
-Common Var(flag_gcse) Optimization
+Common Var(flag_gcse) Optimization Boolean
Perform global common subexpression elimination.
fgcse-lm
-Common Var(flag_gcse_lm) Init(1) Optimization
+Common Var(flag_gcse_lm) Init(1) Optimization Boolean
Perform enhanced load motion during global common subexpression elimination.
fgcse-sm
-Common Var(flag_gcse_sm) Init(0) Optimization
+Common Var(flag_gcse_sm) Init(0) Optimization Boolean
Perform store motion after global common subexpression elimination.
fgcse-las
-Common Var(flag_gcse_las) Init(0) Optimization
+Common Var(flag_gcse_las) Init(0) Optimization Boolean
Perform redundant load after store elimination in global common subexpression
elimination.
fgcse-after-reload
-Common Var(flag_gcse_after_reload) Optimization
+Common Var(flag_gcse_after_reload) Optimization Boolean
Perform global common subexpression elimination after register allocation has
finished.
@@ -1633,20 +1633,20 @@ Common Enum(dwarf_gnat_encodings) Joined RejectNegative Undocumented Var(gnat_en
; This option is not documented yet as its semantics will change.
fgraphite
-Common Var(flag_graphite) Optimization
+Common Var(flag_graphite) Optimization Boolean
Enable in and out of Graphite representation.
fgraphite-identity
-Common Var(flag_graphite_identity) Optimization
+Common Var(flag_graphite_identity) Optimization Boolean
Enable Graphite Identity transformation.
fhoist-adjacent-loads
-Common Var(flag_hoist_adjacent_loads) Optimization
+Common Var(flag_hoist_adjacent_loads) Optimization Boolean
Enable hoisting adjacent loads to encourage generating conditional move
instructions.
fkeep-gc-roots-live
-Common Undocumented Var(flag_keep_gc_roots_live) Optimization
+Common Undocumented Var(flag_keep_gc_roots_live) Optimization Boolean
; Always keep a pointer to a live memory block
flarge-source-files
@@ -1655,7 +1655,7 @@ Improve GCC's ability to track column numbers in large source files,
at the expense of slower compilation.
floop-parallelize-all
-Common Var(flag_loop_parallelize_all) Optimization
+Common Var(flag_loop_parallelize_all) Optimization Boolean
Mark all loops as parallel.
floop-strip-mine
@@ -1663,7 +1663,7 @@ Common Alias(floop-nest-optimize)
Enable loop nest transforms. Same as -floop-nest-optimize.
floop-interchange
-Common Var(flag_loop_interchange) Optimization
+Common Var(flag_loop_interchange) Optimization Boolean
Enable loop interchange on trees.
floop-block
@@ -1671,7 +1671,7 @@ Common Alias(floop-nest-optimize)
Enable loop nest transforms. Same as -floop-nest-optimize.
floop-unroll-and-jam
-Common Var(flag_unroll_jam) Optimization
+Common Var(flag_unroll_jam) Optimization Boolean
Perform unroll-and-jam on loops.
fgnu-tm
@@ -1687,7 +1687,7 @@ Common Ignore
Does nothing. Preserved for backward compatibility.
floop-nest-optimize
-Common Var(flag_loop_nest_optimize) Optimization
+Common Var(flag_loop_nest_optimize) Optimization Boolean
Enable the loop nest optimizer.
fstrict-volatile-bitfields
@@ -1695,11 +1695,11 @@ Common Var(flag_strict_volatile_bitfields) Init(-1) Optimization
Force bitfield accesses to match their type width.
fstore-merging
-Common Var(flag_store_merging) Optimization
+Common Var(flag_store_merging) Optimization Boolean
Merge adjacent stores.
fguess-branch-probability
-Common Var(flag_guess_branch_prob) Optimization
+Common Var(flag_guess_branch_prob) Optimization Boolean
Enable guessing of branch probabilities.
; Nonzero means ignore `#ident' directives. 0 means handle them.
@@ -1711,11 +1711,11 @@ Common Var(flag_no_ident,0)
Process #ident directives.
fif-conversion
-Common Var(flag_if_conversion) Optimization
+Common Var(flag_if_conversion) Optimization Boolean
Perform conversion of conditional jumps to branchless equivalents.
fif-conversion2
-Common Var(flag_if_conversion2) Optimization
+Common Var(flag_if_conversion2) Optimization Boolean
Perform conversion of conditional jumps to conditional execution.
fstack-reuse=
@@ -1751,25 +1751,25 @@ Common Var(flag_inhibit_size_directive)
Do not generate .size directives.
findirect-inlining
-Common Var(flag_indirect_inlining) Optimization
+Common Var(flag_indirect_inlining) Optimization Boolean
Perform indirect inlining.
; General flag to enable inlining. Specifying -fno-inline will disable
; all inlining apart from always-inline functions.
finline
-Common Var(flag_no_inline,0) Init(0) Optimization
+Common Var(flag_no_inline,0) Init(0) Optimization Boolean
Enable inlining of function declared \"inline\", disabling disables all inlining.
finline-small-functions
-Common Var(flag_inline_small_functions) Optimization
+Common Var(flag_inline_small_functions) Optimization Boolean
Integrate functions into their callers when code size is known not to grow.
finline-functions
-Common Var(flag_inline_functions) Optimization
+Common Var(flag_inline_functions) Optimization Boolean
Integrate functions not declared \"inline\" into their callers when profitable.
finline-functions-called-once
-Common Var(flag_inline_functions_called_once) Optimization
+Common Var(flag_inline_functions_called_once) Optimization Boolean
Integrate functions only required by their single caller.
finline-limit-
@@ -1780,7 +1780,7 @@ Common RejectNegative Joined UInteger
-finline-limit=<number> Limit the size of inlined functions to <number>.
finline-atomics
-Common Var(flag_inline_atomics) Init(1) Optimization
+Common Var(flag_inline_atomics) Init(1) Optimization Boolean
Inline __atomic operations when a lock free instruction sequence is available.
fcf-protection
@@ -1822,11 +1822,11 @@ Common RejectNegative Joined
-finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files.
fipa-cp
-Common Var(flag_ipa_cp) Optimization
+Common Var(flag_ipa_cp) Optimization Boolean
Perform interprocedural constant propagation.
fipa-cp-clone
-Common Var(flag_ipa_cp_clone) Optimization
+Common Var(flag_ipa_cp_clone) Optimization Boolean
Perform cloning to make Interprocedural constant propagation stronger.
fipa-cp-alignment
@@ -1834,47 +1834,47 @@ Common Ignore
Does nothing. Preserved for backward compatibility.
fipa-bit-cp
-Common Var(flag_ipa_bit_cp) Optimization
+Common Var(flag_ipa_bit_cp) Optimization Boolean
Perform interprocedural bitwise constant propagation.
fipa-modref
-Common Var(flag_ipa_modref) Optimization
+Common Var(flag_ipa_modref) Optimization Boolean
Perform interprocedural modref analysis.
fipa-profile
-Common Var(flag_ipa_profile) Init(0) Optimization
+Common Var(flag_ipa_profile) Init(0) Optimization Boolean
Perform interprocedural profile propagation.
fipa-pta
-Common Var(flag_ipa_pta) Init(0) Optimization
+Common Var(flag_ipa_pta) Init(0) Optimization Boolean
Perform interprocedural points-to analysis.
fipa-pure-const
-Common Var(flag_ipa_pure_const) Init(0) Optimization
+Common Var(flag_ipa_pure_const) Init(0) Optimization Boolean
Discover pure and const functions.
fipa-icf
-Common Var(flag_ipa_icf) Optimization
+Common Var(flag_ipa_icf) Optimization Boolean
Perform Identical Code Folding for functions and read-only variables.
fipa-icf-functions
-Common Var(flag_ipa_icf_functions) Optimization
+Common Var(flag_ipa_icf_functions) Optimization Boolean
Perform Identical Code Folding for functions.
fipa-icf-variables
-Common Var(flag_ipa_icf_variables) Optimization
+Common Var(flag_ipa_icf_variables) Optimization Boolean
Perform Identical Code Folding for variables.
fipa-reference
-Common Var(flag_ipa_reference) Init(0) Optimization
+Common Var(flag_ipa_reference) Init(0) Optimization Boolean
Discover read-only and non addressable static variables.
fipa-reference-addressable
-Common Var(flag_ipa_reference_addressable) Init(0) Optimization
+Common Var(flag_ipa_reference_addressable) Init(0) Optimization Boolean
Discover read-only, write-only and non-addressable static variables.
fipa-stack-alignment
-Common Var(flag_ipa_stack_alignment) Init(1) Optimization
+Common Var(flag_ipa_stack_alignment) Init(1) Optimization Boolean
Reduce stack alignment on call sites if possible.
fipa-matrix-reorg
@@ -1886,7 +1886,7 @@ Common Ignore
Does nothing. Preserved for backward compatibility.
fipa-vrp
-Common Var(flag_ipa_vrp) Optimization
+Common Var(flag_ipa_vrp) Optimization Boolean
Perform IPA Value Range Propagation.
fira-algorithm=
@@ -1919,21 +1919,21 @@ EnumValue
Enum(ira_region) String(mixed) Value(IRA_REGION_MIXED)
fira-hoist-pressure
-Common Var(flag_ira_hoist_pressure) Init(1) Optimization
+Common Var(flag_ira_hoist_pressure) Init(1) Optimization Boolean
Use IRA based register pressure calculation
in RTL hoist optimizations.
fira-loop-pressure
-Common Var(flag_ira_loop_pressure) Optimization
+Common Var(flag_ira_loop_pressure) Optimization Boolean
Use IRA based register pressure calculation
in RTL loop optimizations.
fira-share-save-slots
-Common Var(flag_ira_share_save_slots) Init(1) Optimization
+Common Var(flag_ira_share_save_slots) Init(1) Optimization Boolean
Share slots for saving different hard registers.
fira-share-spill-slots
-Common Var(flag_ira_share_spill_slots) Init(1) Optimization
+Common Var(flag_ira_share_spill_slots) Init(1) Optimization Boolean
Share stack slots for spilled pseudo-registers.
fira-verbose=
@@ -1941,15 +1941,15 @@ Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
-fira-verbose=<number> Control IRA's level of diagnostic messages.
fivopts
-Common Var(flag_ivopts) Init(1) Optimization
+Common Var(flag_ivopts) Init(1) Optimization Boolean
Optimize induction variables on trees.
fjump-tables
-Common Var(flag_jump_tables) Init(1) Optimization
+Common Var(flag_jump_tables) Init(1) Optimization Boolean
Use jump tables for sufficiently large switch statements.
fbit-tests
-Common Var(flag_bit_tests) Init(1) Optimization
+Common Var(flag_bit_tests) Init(1) Optimization Boolean
Use bit tests for sufficiently large switch statements.
fkeep-inline-functions
@@ -1973,7 +1973,7 @@ Common Ignore
Does nothing. Preserved for backward compatibility.
flra-remat
-Common Var(flag_lra_remat) Optimization
+Common Var(flag_lra_remat) Optimization Boolean
Do CFG-sensitive rematerialization in LRA.
flto
@@ -2024,7 +2024,7 @@ Common Var(flag_lto_report_wpa) Init(0)
Report various link-time optimization statistics for WPA only.
fmath-errno
-Common Var(flag_errno_math) Init(1) Optimization SetByCombined
+Common Var(flag_errno_math) Init(1) Optimization Boolean SetByCombined
Set errno after built-in math functions.
fmax-errors=
@@ -2059,31 +2059,31 @@ Common RejectNegative Joined UInteger
-fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping.
fmodulo-sched
-Common Var(flag_modulo_sched) Optimization
+Common Var(flag_modulo_sched) Optimization Boolean
Perform SMS based modulo scheduling before the first scheduling pass.
fmodulo-sched-allow-regmoves
-Common Var(flag_modulo_sched_allow_regmoves) Optimization
+Common Var(flag_modulo_sched_allow_regmoves) Optimization Boolean
Perform SMS based modulo scheduling with register moves allowed.
fmove-loop-invariants
-Common Var(flag_move_loop_invariants) Optimization
+Common Var(flag_move_loop_invariants) Optimization Boolean
Move loop invariant computations out of loops.
fdce
-Common Var(flag_dce) Init(1) Optimization
+Common Var(flag_dce) Init(1) Optimization Boolean
Use the RTL dead code elimination pass.
fdse
-Common Var(flag_dse) Init(0) Optimization
+Common Var(flag_dse) Init(0) Optimization Boolean
Use the RTL dead store elimination pass.
freschedule-modulo-scheduled-loops
-Common Var(flag_resched_modulo_sched) Optimization
+Common Var(flag_resched_modulo_sched) Optimization Boolean
Enable/Disable the traditional scheduling in loops that already passed modulo scheduling.
fnon-call-exceptions
-Common Var(flag_non_call_exceptions) Optimization
+Common Var(flag_non_call_exceptions) Optimization Boolean
Support synchronous non-call exceptions.
foffload=
@@ -2104,11 +2104,11 @@ EnumValue
Enum(offload_abi) String(lp64) Value(OFFLOAD_ABI_LP64)
fomit-frame-pointer
-Common Var(flag_omit_frame_pointer) Optimization
+Common Var(flag_omit_frame_pointer) Optimization Boolean
When possible do not generate stack frames.
fopt-info
-Common Var(flag_opt_info) Optimization
+Common Var(flag_opt_info) Optimization Boolean
Enable all optimization info dumps on stderr.
fopt-info-
@@ -2116,7 +2116,7 @@ Common Joined RejectNegative Var(common_deferred_options) Defer
-fopt-info[-<type>=filename] Dump compiler optimization details.
fsave-optimization-record
-Common Var(flag_save_optimization_record) Optimization
+Common Var(flag_save_optimization_record) Optimization Boolean
Write a SRCFILE.opt-record.json file detailing what optimizations were performed.
foptimize-register-move
@@ -2124,11 +2124,11 @@ Common Ignore
Does nothing. Preserved for backward compatibility.
foptimize-sibling-calls
-Common Var(flag_optimize_sibling_calls) Optimization
+Common Var(flag_optimize_sibling_calls) Optimization Boolean
Optimize sibling and tail recursive calls.
fpartial-inlining
-Common Var(flag_partial_inlining) Optimization
+Common Var(flag_partial_inlining) Optimization Boolean
Perform partial inlining.
fpre-ipa-mem-report
@@ -2140,11 +2140,11 @@ Common Var(post_ipa_mem_report)
Report on memory allocation before interprocedural optimization.
fpack-struct
-Common Var(flag_pack_struct) Optimization
+Common Var(flag_pack_struct) Optimization Boolean
Pack structure members together without holes.
fpack-struct=
-Common RejectNegative Joined UInteger Optimization
+Common RejectNegative Joined UInteger Optimization Boolean
-fpack-struct=<number> Set initial maximum structure member alignment.
fpcc-struct-return
@@ -2152,15 +2152,15 @@ Common Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
Return small aggregates in memory, not registers.
fpeel-loops
-Common Var(flag_peel_loops) Optimization
+Common Var(flag_peel_loops) Optimization Boolean
Perform loop peeling.
fpeephole
-Common Var(flag_no_peephole,0) Optimization
+Common Var(flag_no_peephole,0) Optimization Boolean
Enable machine specific peephole optimizations.
fpeephole2
-Common Var(flag_peephole2) Optimization
+Common Var(flag_peephole2) Optimization Boolean
Enable an RTL peephole pass before sched2.
fPIC
@@ -2180,7 +2180,7 @@ Common Var(flag_pie,1) Negative(fPIC) Init(-1)
Generate position-independent code for executables if possible (small mode).
fplt
-Common Var(flag_plt) Init(1) Optimization
+Common Var(flag_plt) Init(1) Optimization Boolean
Use PLT for PIC calls (-fno-plt: load the address from GOT at call site).
fplugin=
@@ -2192,7 +2192,7 @@ Common Joined RejectNegative Var(common_deferred_options) Defer
-fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>.
fpredictive-commoning
-Common Var(flag_predictive_commoning) Optimization
+Common Var(flag_predictive_commoning) Optimization Boolean
Run predictive commoning optimization.
fprefetch-loop-arrays
@@ -2285,7 +2285,7 @@ Common Joined RejectNegative Var(profile_info_section)
Register the profile information in the specified section instead of using a constructor/destructor.
fprofile-partial-training
-Common Var(flag_profile_partial_training) Optimization
+Common Var(flag_profile_partial_training) Optimization Boolean
Do not assume that functions never executed during the train run are cold.
fprofile-use
@@ -2305,11 +2305,11 @@ Common Var(profile_report)
Report on consistency of profile.
fprofile-reorder-functions
-Common Var(flag_profile_reorder_functions) Optimization
+Common Var(flag_profile_reorder_functions) Optimization Boolean
Enable function reordering that improves code placement.
fpatchable-function-entry=
-Common Joined Optimization
+Common Joined Optimization Boolean
Insert NOP instructions at each function entry.
frandom-seed
@@ -2330,7 +2330,7 @@ Common Var(flag_record_gcc_switches)
Record gcc command line switches in the object file.
freg-struct-return
-Common Var(flag_pcc_struct_return,0) Optimization
+Common Var(flag_pcc_struct_return,0) Optimization Boolean
Return small aggregates in registers.
fregmove
@@ -2346,7 +2346,7 @@ flifetime-dse=
Common Joined RejectNegative UInteger Var(flag_lifetime_dse) Optimization IntegerRange(0, 2)
flive-patching
-Common RejectNegative Alias(flive-patching=,inline-clone) Optimization
+Common RejectNegative Alias(flive-patching=,inline-clone) Optimization Boolean
flive-patching=
Common Joined RejectNegative Enum(live_patching_level) Var(flag_live_patching) Init(LIVE_PATCHING_NONE) Optimization
@@ -2364,11 +2364,11 @@ EnumValue
Enum(live_patching_level) String(inline-clone) Value(LIVE_PATCHING_INLINE_CLONE)
fallocation-dce
-Common Var(flag_allocation_dce) Init(1) Optimization
+Common Var(flag_allocation_dce) Init(1) Optimization Boolean
Tell DCE to remove unused C++ allocations.
flive-range-shrinkage
-Common Var(flag_live_range_shrinkage) Init(0) Optimization
+Common Var(flag_live_range_shrinkage) Init(0) Optimization Boolean
Relief of register pressure through live range shrinkage.
frename-registers
@@ -2380,7 +2380,7 @@ Common Var(flag_schedule_fusion) Init(2) Optimization
Perform a target dependent instruction fusion optimization pass.
freorder-blocks
-Common Var(flag_reorder_blocks) Optimization
+Common Var(flag_reorder_blocks) Optimization Boolean
Reorder basic blocks to improve code placement.
freorder-blocks-algorithm=
@@ -2397,15 +2397,15 @@ EnumValue
Enum(reorder_blocks_algorithm) String(stc) Value(REORDER_BLOCKS_ALGORITHM_STC)
freorder-blocks-and-partition
-Common Var(flag_reorder_blocks_and_partition) Optimization
+Common Var(flag_reorder_blocks_and_partition) Optimization Boolean
Reorder basic blocks and partition into hot and cold sections.
freorder-functions
-Common Var(flag_reorder_functions) Optimization
+Common Var(flag_reorder_functions) Optimization Boolean
Reorder functions to improve code placement.
frerun-cse-after-loop
-Common Var(flag_rerun_cse_after_loop) Optimization
+Common Var(flag_rerun_cse_after_loop) Optimization Boolean
Add a common subexpression elimination pass after loop optimizations.
frerun-loop-opt
@@ -2417,23 +2417,23 @@ Common Var(flag_rounding_math) Optimization SetByCombined
Disable optimizations that assume default FP rounding behavior.
fsched-interblock
-Common Var(flag_schedule_interblock) Init(1) Optimization
+Common Var(flag_schedule_interblock) Init(1) Optimization Boolean
Enable scheduling across basic blocks.
fsched-pressure
-Common Var(flag_sched_pressure) Init(0) Optimization
+Common Var(flag_sched_pressure) Init(0) Optimization Boolean
Enable register pressure sensitive insn scheduling.
fsched-spec
-Common Var(flag_schedule_speculative) Init(1) Optimization
+Common Var(flag_schedule_speculative) Init(1) Optimization Boolean
Allow speculative motion of non-loads.
fsched-spec-load
-Common Var(flag_schedule_speculative_load) Optimization
+Common Var(flag_schedule_speculative_load) Optimization Boolean
Allow speculative motion of some loads.
fsched-spec-load-dangerous
-Common Var(flag_schedule_speculative_load_dangerous) Optimization
+Common Var(flag_schedule_speculative_load_dangerous) Optimization Boolean
Allow speculative motion of more loads.
fsched-verbose=
@@ -2441,7 +2441,7 @@ Common RejectNegative Joined UInteger Var(sched_verbose_param) Init(1)
-fsched-verbose=<number> Set the verbosity level of the scheduler.
fsched2-use-superblocks
-Common Var(flag_sched2_use_superblocks) Optimization
+Common Var(flag_sched2_use_superblocks) Optimization Boolean
If scheduling post reload, do superblock scheduling.
fsched2-use-traces
@@ -2449,22 +2449,22 @@ Common Ignore
Does nothing. Preserved for backward compatibility.
fschedule-insns
-Common Var(flag_schedule_insns) Optimization
+Common Var(flag_schedule_insns) Optimization Boolean
Reschedule instructions before register allocation.
fschedule-insns2
-Common Var(flag_schedule_insns_after_reload) Optimization
+Common Var(flag_schedule_insns_after_reload) Optimization Boolean
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.
fselective-scheduling
-Common Var(flag_selective_scheduling) Optimization
+Common Var(flag_selective_scheduling) Optimization Boolean
Schedule instructions using selective scheduling algorithm.
fselective-scheduling2
-Common Var(flag_selective_scheduling2) Optimization
+Common Var(flag_selective_scheduling2) Optimization Boolean
Run selective scheduling after reload.
fself-test=
@@ -2472,15 +2472,15 @@ Common Undocumented Joined Var(flag_self_test)
Run self-tests, using the given path to locate test files.
fsel-sched-pipelining
-Common Var(flag_sel_sched_pipelining) Init(0) Optimization
+Common Var(flag_sel_sched_pipelining) Init(0) Optimization Boolean
Perform software pipelining of inner loops during selective scheduling.
fsel-sched-pipelining-outer-loops
-Common Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
+Common Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization Boolean
Perform software pipelining of outer loops during selective scheduling.
fsel-sched-reschedule-pipelined
-Common Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
+Common Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization Boolean
Reschedule pipelined regions without pipelining.
fsemantic-interposition
@@ -2490,11 +2490,11 @@ Allow interposing function (or variables) by ones with different semantics (or i
; sched_stalled_insns means that insns can be moved prematurely from the queue
; of stalled insns into the ready list.
fsched-stalled-insns
-Common Var(flag_sched_stalled_insns) Optimization UInteger
+Common Var(flag_sched_stalled_insns) Optimization Boolean UInteger
Allow premature scheduling of queued insns.
fsched-stalled-insns=
-Common RejectNegative Joined UInteger Optimization
+Common RejectNegative Joined UInteger Optimization Boolean
-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
@@ -2502,39 +2502,39 @@ Common RejectNegative Joined UInteger Optimization
; premature removal from the queue of stalled insns into the ready list (has
; an effect only if the flag 'sched_stalled_insns' is set).
fsched-stalled-insns-dep
-Common Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
+Common Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization Boolean UInteger
Set dependence distance checking in premature scheduling of queued insns.
fsched-stalled-insns-dep=
-Common RejectNegative Joined UInteger Optimization
+Common RejectNegative Joined UInteger Optimization Boolean
-fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns.
fsched-group-heuristic
-Common Var(flag_sched_group_heuristic) Init(1) Optimization
+Common Var(flag_sched_group_heuristic) Init(1) Optimization Boolean
Enable the group heuristic in the scheduler.
fsched-critical-path-heuristic
-Common Var(flag_sched_critical_path_heuristic) Init(1) Optimization
+Common Var(flag_sched_critical_path_heuristic) Init(1) Optimization Boolean
Enable the critical path heuristic in the scheduler.
fsched-spec-insn-heuristic
-Common Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
+Common Var(flag_sched_spec_insn_heuristic) Init(1) Optimization Boolean
Enable the speculative instruction heuristic in the scheduler.
fsched-rank-heuristic
-Common Var(flag_sched_rank_heuristic) Init(1) Optimization
+Common Var(flag_sched_rank_heuristic) Init(1) Optimization Boolean
Enable the rank heuristic in the scheduler.
fsched-last-insn-heuristic
-Common Var(flag_sched_last_insn_heuristic) Init(1) Optimization
+Common Var(flag_sched_last_insn_heuristic) Init(1) Optimization Boolean
Enable the last instruction heuristic in the scheduler.
fsched-dep-count-heuristic
-Common Var(flag_sched_dep_count_heuristic) Init(1) Optimization
+Common Var(flag_sched_dep_count_heuristic) Init(1) Optimization Boolean
Enable the dependent count heuristic in the scheduler.
fsection-anchors
-Common Var(flag_section_anchors) Optimization
+Common Var(flag_section_anchors) Optimization Boolean
Access data in the same section from shared anchor points.
fsee
@@ -2546,7 +2546,7 @@ Common Ignore
Does nothing. Preserved for backward compatibility.
free
-Common Var(flag_ree) Init(0) Optimization
+Common Var(flag_ree) Init(0) Optimization Boolean
Turn on Redundant Extensions Elimination pass.
fshow-column
@@ -2554,28 +2554,28 @@ Common Var(flag_show_column) Init(1)
Show column numbers in diagnostics, when available. Default on.
fshrink-wrap
-Common Var(flag_shrink_wrap) Optimization
+Common Var(flag_shrink_wrap) Optimization Boolean
Emit function prologues only before parts of the function that need it,
rather than at the top of the function.
fshrink-wrap-separate
-Common Var(flag_shrink_wrap_separate) Init(1) Optimization
+Common Var(flag_shrink_wrap_separate) Init(1) Optimization Boolean
Shrink-wrap parts of the prologue and epilogue separately.
fsignaling-nans
-Common Var(flag_signaling_nans) Optimization SetByCombined
+Common Var(flag_signaling_nans) Optimization Boolean SetByCombined
Disable optimizations observable by IEEE signaling NaNs.
fsigned-zeros
-Common Var(flag_signed_zeros) Init(1) Optimization SetByCombined
+Common Var(flag_signed_zeros) Init(1) Optimization Boolean SetByCombined
Disable floating point optimizations that ignore the IEEE signedness of zero.
fsingle-precision-constant
-Common Var(flag_single_precision_constant) Optimization
+Common Var(flag_single_precision_constant) Optimization Boolean
Convert floating point constants to single precision constants.
fsplit-ivs-in-unroller
-Common Var(flag_split_ivs_in_unroller) Init(1) Optimization
+Common Var(flag_split_ivs_in_unroller) Init(1) Optimization Boolean
Split lifetimes of induction variables when loops are unrolled.
fsplit-stack
@@ -2583,31 +2583,31 @@ Common Var(flag_split_stack) Init(-1)
Generate discontiguous stack frames.
fsplit-wide-types
-Common Var(flag_split_wide_types) Optimization
+Common Var(flag_split_wide_types) Optimization Boolean
Split wide types into independent registers.
fsplit-wide-types-early
-Common Var(flag_split_wide_types_early) Optimization
+Common Var(flag_split_wide_types_early) Optimization Boolean
Split wide types into independent registers earlier.
fssa-backprop
-Common Var(flag_ssa_backprop) Init(1) Optimization
+Common Var(flag_ssa_backprop) Init(1) Optimization Boolean
Enable backward propagation of use properties at the SSA level.
fssa-phiopt
-Common Var(flag_ssa_phiopt) Optimization
+Common Var(flag_ssa_phiopt) Optimization Boolean
Optimize conditional patterns using SSA PHI nodes.
fstdarg-opt
-Common Var(flag_stdarg_opt) Init(1) Optimization
+Common Var(flag_stdarg_opt) Init(1) Optimization Boolean
Optimize amount of stdarg registers saved to stack at start of function.
fvariable-expansion-in-unroller
-Common Var(flag_variable_expansion_in_unroller) Optimization
+Common Var(flag_variable_expansion_in_unroller) Optimization Boolean
Apply variable expansion when loops are unrolled.
fstack-check=
-Common RejectNegative Joined Optimization
+Common RejectNegative Joined Optimization Boolean
-fstack-check=[no|generic|specific] Insert stack checking code into the program.
fstack-check
@@ -2615,7 +2615,7 @@ Common Alias(fstack-check=, specific, no)
Insert stack checking code into the program. Same as -fstack-check=specific.
fstack-clash-protection
-Common Var(flag_stack_clash_protection) Optimization
+Common Var(flag_stack_clash_protection) Optimization Boolean
Insert code to probe each page of stack space as it is allocated to protect
from stack-clash style attacks.
@@ -2659,7 +2659,7 @@ Does nothing. Preserved for backward compatibility.
; types do not alias expressions of certain other types. Only used
; if alias analysis (in general) is enabled.
fstrict-aliasing
-Common Var(flag_strict_aliasing) Optimization
+Common Var(flag_strict_aliasing) Optimization Boolean
Assume strict aliasing rules apply.
fstrict-overflow
@@ -2679,7 +2679,7 @@ Common Var(flag_test_coverage)
Create data files needed by \"gcov\".
fthread-jumps
-Common Var(flag_thread_jumps) Optimization
+Common Var(flag_thread_jumps) Optimization Boolean
Perform jump threading optimizations.
ftime-report
@@ -2714,7 +2714,7 @@ Common Var(flag_toplevel_reorder) Init(2) Optimization
Reorder top level functions, variables, and asms.
ftracer
-Common Var(flag_tracer) Optimization
+Common Var(flag_tracer) Optimization Boolean
Perform superblock formation via tail duplication.
ftrampolines
@@ -2726,19 +2726,19 @@ generate them instead of using descriptors.
; (user-visible) trap. This is the case, for example, in nonstop
; IEEE 754 arithmetic.
ftrapping-math
-Common Var(flag_trapping_math) Init(1) Optimization SetByCombined
+Common Var(flag_trapping_math) Init(1) Optimization Boolean SetByCombined
Assume floating-point operations can trap.
ftrapv
-Common Var(flag_trapv) Optimization
+Common Var(flag_trapv) Optimization Boolean
Trap for signed overflow in addition, subtraction and multiplication.
ftree-ccp
-Common Var(flag_tree_ccp) Optimization
+Common Var(flag_tree_ccp) Optimization Boolean
Enable SSA-CCP optimization on trees.
ftree-bit-ccp
-Common Var(flag_tree_bit_ccp) Optimization
+Common Var(flag_tree_bit_ccp) Optimization Boolean
Enable SSA-BIT-CCP optimization on trees.
ftree-store-ccp
@@ -2746,7 +2746,7 @@ Common Ignore
Does nothing. Preserved for backward compatibility.
ftree-ch
-Common Var(flag_tree_ch) Optimization
+Common Var(flag_tree_ch) Optimization Boolean
Enable loop header copying on trees.
ftree-coalesce-inlined-vars
@@ -2754,7 +2754,7 @@ Common Ignore RejectNegative
Does nothing. Preserved for backward compatibility.
ftree-coalesce-vars
-Common Var(flag_tree_coalesce_vars) Optimization
+Common Var(flag_tree_coalesce_vars) Optimization Boolean
Enable SSA coalescing of user variables.
ftree-copyrename
@@ -2762,7 +2762,7 @@ Common Ignore
Does nothing. Preserved for backward compatibility.
ftree-copy-prop
-Common Var(flag_tree_copy_prop) Optimization
+Common Var(flag_tree_copy_prop) Optimization Boolean
Enable copy propagation on trees.
ftree-store-copy-prop
@@ -2774,60 +2774,60 @@ Common Var(flag_tree_cselim) Init(2) Optimization
Transform condition stores into unconditional ones.
ftree-switch-conversion
-Common Var(flag_tree_switch_conversion) Optimization
+Common Var(flag_tree_switch_conversion) Optimization Boolean
Perform conversions of switch initializations.
ftree-dce
-Common Var(flag_tree_dce) Optimization
+Common Var(flag_tree_dce) Optimization Boolean
Enable SSA dead code elimination optimization on trees.
ftree-dominator-opts
-Common Var(flag_tree_dom) Optimization
+Common Var(flag_tree_dom) Optimization Boolean
Enable dominator optimizations.
ftree-tail-merge
-Common Var(flag_tree_tail_merge) Optimization
+Common Var(flag_tree_tail_merge) Optimization Boolean
Enable tail merging on trees.
ftree-dse
-Common Var(flag_tree_dse) Optimization
+Common Var(flag_tree_dse) Optimization Boolean
Enable dead store elimination.
ftree-forwprop
-Common Var(flag_tree_forwprop) Init(1) Optimization
+Common Var(flag_tree_forwprop) Init(1) Optimization Boolean
Enable forward propagation on trees.
ftree-fre
-Common Var(flag_tree_fre) Optimization
+Common Var(flag_tree_fre) Optimization Boolean
Enable Full Redundancy Elimination (FRE) on trees.
foptimize-strlen
-Common Var(flag_optimize_strlen) Optimization
+Common Var(flag_optimize_strlen) Optimization Boolean
Enable string length optimizations on trees.
fisolate-erroneous-paths-dereference
-Common Var(flag_isolate_erroneous_paths_dereference) Optimization
+Common Var(flag_isolate_erroneous_paths_dereference) Optimization Boolean
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 Var(flag_isolate_erroneous_paths_attribute) Optimization
+Common Var(flag_isolate_erroneous_paths_attribute) Optimization Boolean
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 Var(flag_tree_loop_distribution) Optimization
+Common Var(flag_tree_loop_distribution) Optimization Boolean
Enable loop distribution on trees.
ftree-loop-distribute-patterns
-Common Var(flag_tree_loop_distribute_patterns) Optimization
+Common Var(flag_tree_loop_distribute_patterns) Optimization Boolean
Enable loop distribution for patterns transformed into a library call.
ftree-loop-im
-Common Var(flag_tree_loop_im) Init(1) Optimization
+Common Var(flag_tree_loop_im) Init(1) Optimization Boolean
Enable loop invariant motion on trees.
ftree-loop-linear
@@ -2835,11 +2835,11 @@ Common Alias(floop-nest-optimize)
Enable loop nest transforms. Same as -floop-nest-optimize.
ftree-loop-ivcanon
-Common Var(flag_tree_loop_ivcanon) Init(1) Optimization
+Common Var(flag_tree_loop_ivcanon) Init(1) Optimization Boolean
Create canonical induction variables in loops.
ftree-loop-optimize
-Common Var(flag_tree_loop_optimize) Init(1) Optimization
+Common Var(flag_tree_loop_optimize) Init(1) Optimization Boolean
Enable loop optimizations on tree level.
ftree-parallelize-loops=
@@ -2847,23 +2847,23 @@ Common Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1) O
-ftree-parallelize-loops=<number> Enable automatic parallelization of loops.
ftree-phiprop
-Common Var(flag_tree_phiprop) Init(1) Optimization
+Common Var(flag_tree_phiprop) Init(1) Optimization Boolean
Enable hoisting loads from conditional pointers.
ftree-pre
-Common Var(flag_tree_pre) Optimization
+Common Var(flag_tree_pre) Optimization Boolean
Enable SSA-PRE optimization on trees.
ftree-partial-pre
-Common Var(flag_tree_partial_pre) Optimization
+Common Var(flag_tree_partial_pre) Optimization Boolean
In SSA-PRE optimization on trees, enable partial-partial redundancy elimination.
ftree-pta
-Common Var(flag_tree_pta) Optimization
+Common Var(flag_tree_pta) Optimization Boolean
Perform function-local points-to analysis on trees.
ftree-reassoc
-Common Var(flag_tree_reassoc) Init(1) Optimization
+Common Var(flag_tree_reassoc) Init(1) Optimization Boolean
Enable reassociation on tree level.
ftree-salias
@@ -2871,35 +2871,35 @@ Common Ignore
Does nothing. Preserved for backward compatibility.
ftree-sink
-Common Var(flag_tree_sink) Optimization
+Common Var(flag_tree_sink) Optimization Boolean
Enable SSA code sinking on trees.
ftree-slsr
-Common Var(flag_tree_slsr) Optimization
+Common Var(flag_tree_slsr) Optimization Boolean
Perform straight-line strength reduction.
ftree-sra
-Common Var(flag_tree_sra) Optimization
+Common Var(flag_tree_sra) Optimization Boolean
Perform scalar replacement of aggregates.
ftree-ter
-Common Var(flag_tree_ter) Optimization
+Common Var(flag_tree_ter) Optimization Boolean
Replace temporary expressions in the SSA->normal pass.
ftree-lrs
-Common Var(flag_tree_live_range_split) Optimization
+Common Var(flag_tree_live_range_split) Optimization Boolean
Perform live range splitting during the SSA->normal pass.
ftree-vrp
-Common Var(flag_tree_vrp) Init(0) Optimization
+Common Var(flag_tree_vrp) Init(0) Optimization Boolean
Perform Value Range Propagation on trees.
fsplit-paths
-Common Var(flag_split_paths) Init(0) Optimization
+Common Var(flag_split_paths) Init(0) Optimization Boolean
Split paths leading to loop backedges.
funconstrained-commons
-Common Var(flag_unconstrained_commons) Optimization
+Common Var(flag_unconstrained_commons) Optimization Boolean
Assume common declarations may be overridden with ones with a larger
trailing array.
@@ -2908,15 +2908,15 @@ Common Var(flag_unit_at_a_time) Init(1)
Compile whole compilation unit at a time.
funroll-loops
-Common Var(flag_unroll_loops) Optimization
+Common Var(flag_unroll_loops) Optimization Boolean
Perform loop unrolling when iteration count is known.
funroll-all-loops
-Common Var(flag_unroll_all_loops) Optimization
+Common Var(flag_unroll_all_loops) Optimization Boolean
Perform loop unrolling for all loops.
funroll-completely-grow-size
-Undocumented Var(flag_cunroll_grow_size) Optimization
+Undocumented Var(flag_cunroll_grow_size) Optimization Boolean
; Internal undocumented flag, allow size growth during complete unrolling
; Nonzero means that loop optimizer may assume that the induction variables
@@ -2932,7 +2932,7 @@ Allow optimization for floating-point arithmetic which may change the
result of the operation due to rounding.
freciprocal-math
-Common Var(flag_reciprocal_math) SetByCombined Optimization
+Common Var(flag_reciprocal_math) SetByCombined Optimization Boolean
Same as -fassociative-math for expressions which include division.
; Nonzero means that unsafe floating-point math optimizations are allowed
@@ -2940,23 +2940,23 @@ Same as -fassociative-math for expressions which include division.
; are allowed to assume that their arguments and results are "normal"
; (e.g., nonnegative for SQRT).
funsafe-math-optimizations
-Common Var(flag_unsafe_math_optimizations) Optimization SetByCombined
+Common Var(flag_unsafe_math_optimizations) Optimization Boolean SetByCombined
Allow math optimizations that may violate IEEE or ISO standards.
funswitch-loops
-Common Var(flag_unswitch_loops) Optimization
+Common Var(flag_unswitch_loops) Optimization Boolean
Perform loop unswitching.
fsplit-loops
-Common Var(flag_split_loops) Optimization
+Common Var(flag_split_loops) Optimization Boolean
Perform loop splitting.
fversion-loops-for-strides
-Common Var(flag_version_loops_for_strides) Optimization
+Common Var(flag_version_loops_for_strides) Optimization Boolean
Version loops based on whether indices have a stride of one.
funwind-tables
-Common Var(flag_unwind_tables) Optimization
+Common Var(flag_unwind_tables) Optimization Boolean
Just generate unwind tables for exception handling.
fuse-ld=bfd
@@ -3007,7 +3007,7 @@ Perform variable tracking and also tag variables that are uninitialized.
; Alias to enable both -ftree-loop-vectorize and -ftree-slp-vectorize.
ftree-vectorize
-Common Optimization
+Common Optimization Boolean
Enable vectorization on trees.
ftree-vectorizer-verbose=
@@ -3015,11 +3015,11 @@ Common Joined RejectNegative Ignore
Does nothing. Preserved for backward compatibility.
ftree-loop-vectorize
-Common Var(flag_tree_loop_vectorize) Optimization EnabledBy(ftree-vectorize)
+Common Var(flag_tree_loop_vectorize) Optimization Boolean EnabledBy(ftree-vectorize)
Enable loop vectorization on trees.
ftree-slp-vectorize
-Common Var(flag_tree_slp_vectorize) Optimization EnabledBy(ftree-vectorize)
+Common Var(flag_tree_slp_vectorize) Optimization Boolean EnabledBy(ftree-vectorize)
Enable basic block vectorization (SLP) on trees.
fvect-cost-model=
@@ -3054,7 +3054,7 @@ Common Ignore
Does nothing. Preserved for backward compatibility.
ftree-scev-cprop
-Common Var(flag_tree_scev_cprop) Init(1) Optimization
+Common Var(flag_tree_scev_cprop) Init(1) Optimization Boolean
Enable copy propagation of scalar-evolution information.
; -fverbose-asm causes extra commentary information to be produced in
@@ -3111,7 +3111,7 @@ Common Var(flag_vtv_debug)
Output vtable verification pointer sets information.
fvpt
-Common Var(flag_value_profile_transformations) Optimization
+Common Var(flag_value_profile_transformations) Optimization Boolean
Use expression value profiles in optimizations.
fweb
@@ -3119,7 +3119,7 @@ Common Var(flag_web) Init(2) Optimization
Construct webs and split unrelated uses of single variable.
ftree-builtin-call-dce
-Common Var(flag_tree_builtin_call_dce) Init(0) Optimization
+Common Var(flag_tree_builtin_call_dce) Init(0) Optimization Boolean
Enable conditional dead code elimination for builtin calls.
fwhole-program
@@ -3127,11 +3127,11 @@ Common Var(flag_whole_program) Init(0)
Perform whole program optimizations.
fwrapv-pointer
-Common Var(flag_wrapv_pointer) Optimization
+Common Var(flag_wrapv_pointer) Optimization Boolean
Assume pointer overflow wraps around.
fwrapv
-Common Var(flag_wrapv) Optimization
+Common Var(flag_wrapv) Optimization Boolean
Assume signed arithmetic overflow wraps around.
fzero-initialized-in-bss
@@ -3491,7 +3491,7 @@ z
Driver Joined Separate
fipa-ra
-Common Var(flag_ipa_ra) Optimization
+Common Var(flag_ipa_ra) Optimization Boolean
Use caller save register across calls if possible.
; This comment is to ensure we retain the blank line above.
diff --git a/gcc/config/aarch64/aarch64.opt b/gcc/config/aarch64/aarch64.opt
index ded13a5be8a..7c51e4a4514 100644
--- a/gcc/config/aarch64/aarch64.opt
+++ b/gcc/config/aarch64/aarch64.opt
@@ -264,7 +264,7 @@ Target Var(aarch64_flag_outline_atomics) Init(2) Save
Generate local calls to out-of-line atomic operations.
-param=aarch64-sve-compare-costs=
-Target Joined UInteger Var(aarch64_sve_compare_costs) Init(1) IntegerRange(0, 1) Param
+Target Joined UInteger Var(aarch64_sve_compare_costs) Init(1) Boolean Param
When vectorizing for SVE, consider using unpacked vectors for smaller elements and use the cost model to pick the cheapest approach. Also use the cost model to choose between SVE and Advanced SIMD vectorization.
-param=aarch64-float-recp-precision=
diff --git a/gcc/opt-functions.awk b/gcc/opt-functions.awk
index 0c489e0e3be..d09b903df74 100644
--- a/gcc/opt-functions.awk
+++ b/gcc/opt-functions.awk
@@ -224,6 +224,8 @@ function static_var(name, flags)
# Return the type of variable that should be associated with the given flags.
function var_type(flags)
{
+# if (flag_set_p("Boolean", flags))
+# return "bool "
if (flag_set_p("Defer", flags))
return "void *"
else if (flag_set_p("Enum.*", flags)) {
@@ -245,6 +247,8 @@ function var_type(flags)
# type instead of int to save space.
function var_type_struct(flags)
{
+ if (flag_set_p("Boolean", flags))
+ return "bool "
if (flag_set_p("UInteger", flags)) {
if (host_wide_int[var_name(flags)] == "yes")
return "HOST_WIDE_INT ";
@@ -356,9 +360,11 @@ function search_var_name(name, opt_numbers, opts, flags, n_opts)
return ""
}
-function integer_range_info(range_option, init, option)
+function integer_range_info(range_option, init, option, flags)
{
if (range_option != "") {
+ if (flag_set_p("Boolean", flags))
+ print "#error IntegerRange cannot be combined with Boolean keyword"
ival = init + 0;
start = nth_arg(0, range_option) + 0;
end = nth_arg(1, range_option) + 0;
@@ -366,6 +372,8 @@ function integer_range_info(range_option, init, option)
print "#error initial value " init " of '" option "' must be in range [" start "," end "]"
return start ", " end
}
+ else if (flag_set_p("Boolean", flags))
+ return "0, 1"
else
return "-1, -1"
}
diff --git a/gcc/optc-gen.awk b/gcc/optc-gen.awk
index 0c9fa16cb00..e2c9716d8a5 100644
--- a/gcc/optc-gen.awk
+++ b/gcc/optc-gen.awk
@@ -418,7 +418,7 @@ for (i = 0; i < n_opts; i++) {
cl_flags, cl_bit_fields)
printf(" %s, %s, %s }%s\n", var_ref(opts[i], flags[i]),
var_set(flags[i]), integer_range_info(opt_args("IntegerRange", flags[i]),
- opt_args("Init", flags[i]), opts[i]), comma)
+ opt_args("Init", flags[i]), opts[i], flags[i]), comma)
# Bump up the informational option index.
++optindex
diff --git a/gcc/opth-gen.awk b/gcc/opth-gen.awk
index a456b51e893..445a0f90c2e 100644
--- a/gcc/opth-gen.awk
+++ b/gcc/opth-gen.awk
@@ -136,6 +136,7 @@ n_opt_char = 4;
n_opt_short = 0;
n_opt_int = 0;
n_opt_enum = 0;
+n_opt_bool = 0;
n_opt_other = 0;
n_opt_explicit = 4;
var_opt_char[0] = "unsigned char x_optimize";
@@ -167,6 +168,9 @@ for (i = 0; i < n_opts; i++) {
else if (otype ~ ("^enum +[_" alnum "]+ *$"))
var_opt_enum[n_opt_enum++] = otype "x_" name;
+ else if (otype ~ "bool")
+ var_opt_bool[n_opt_bool++] = "unsigned x_" name ": 1";
+
else
var_opt_other[n_opt_other++] = otype "x_" name;
}
@@ -192,6 +196,10 @@ for (i = 0; i < n_opt_char; i++) {
print " " var_opt_char[i] ";";
}
+for (i = 0; i < n_opt_bool; i++) {
+ print " " var_opt_bool[i] ";";
+}
+
print " /* " n_opt_explicit " members */";
print " unsigned HOST_WIDE_INT explicit_mask[" int ((n_opt_explicit + 63) / 64) "];";
diff --git a/gcc/params.opt b/gcc/params.opt
index 54951f23fc1..43ca9998e43 100644
--- a/gcc/params.opt
+++ b/gcc/params.opt
@@ -31,19 +31,19 @@ Common Joined UInteger Var(param_align_threshold) Init(100) IntegerRange(1, 6553
Select fraction of the maximal frequency of executions of basic block in function given basic block get alignment.
-param=asan-globals=
-Common Joined UInteger Var(param_asan_globals) Init(1) IntegerRange(0, 1) Param
+Common Joined UInteger Var(param_asan_globals) Init(1) Boolean Param
Enable asan globals protection.
-param=asan-instrument-allocas=
-Common Joined UInteger Var(param_asan_protect_allocas) Init(1) IntegerRange(0, 1) Param Optimization
+Common Joined UInteger Var(param_asan_protect_allocas) Init(1) Boolean Param Optimization
Enable asan allocas/VLAs protection.
-param=asan-instrument-reads=
-Common Joined UInteger Var(param_asan_instrument_reads) Init(1) IntegerRange(0, 1) Param Optimization
+Common Joined UInteger Var(param_asan_instrument_reads) Init(1) Param Optimization
Enable asan load operations protection.
-param=asan-instrument-writes=
-Common Joined UInteger Var(param_asan_instrument_writes) Init(1) IntegerRange(0, 1) Param Optimization
+Common Joined UInteger Var(param_asan_instrument_writes) Init(1) Boolean Param Optimization
Enable asan store operations protection.
-param=asan-instrumentation-with-call-threshold=
@@ -51,39 +51,39 @@ Common Joined UInteger Var(param_asan_instrumentation_with_call_threshold) Init(
Use callbacks instead of inline code if number of accesses in function becomes greater or equal to this number.
-param=asan-memintrin=
-Common Joined UInteger Var(param_asan_memintrin) Init(1) IntegerRange(0, 1) Param Optimization
+Common Joined UInteger Var(param_asan_memintrin) Init(1) Boolean Param Optimization
Enable asan builtin functions protection.
-param=asan-stack=
-Common Joined UInteger Var(param_asan_stack) Init(1) IntegerRange(0, 1) Param Optimization
+Common Joined UInteger Var(param_asan_stack) Init(1) Boolean Param Optimization
Enable asan stack protection.
-param=asan-use-after-return=
-Common Joined UInteger Var(param_asan_use_after_return) Init(1) IntegerRange(0, 1) Param Optimization
+Common Joined UInteger Var(param_asan_use_after_return) Init(1) Boolean Param Optimization
Enable asan detection of use-after-return bugs.
-param=hwasan-instrument-stack=
-Common Joined UInteger Var(param_hwasan_instrument_stack) Init(1) IntegerRange(0, 1) Param Optimization
+Common Joined UInteger Var(param_hwasan_instrument_stack) Init(1) Boolean Param Optimization
Enable hwasan instrumentation of statically sized stack-allocated variables.
-param=hwasan-random-frame-tag=
-Common Joined UInteger Var(param_hwasan_random_frame_tag) Init(1) IntegerRange(0, 1) Param Optimization
+Common Joined UInteger Var(param_hwasan_random_frame_tag) Init(1) Boolean Param Optimization
Use random base tag for each frame, as opposed to base always zero.
-param=hwasan-instrument-allocas=
-Common Joined UInteger Var(param_hwasan_instrument_allocas) Init(1) IntegerRange(0, 1) Param Optimization
+Common Joined UInteger Var(param_hwasan_instrument_allocas) Init(1) Boolean Param Optimization
Enable hwasan instrumentation of allocas/VLAs.
-param=hwasan-instrument-reads=
-Common Joined UInteger Var(param_hwasan_instrument_reads) Init(1) IntegerRange(0, 1) Param Optimization
+Common Joined UInteger Var(param_hwasan_instrument_reads) Init(1) Boolean Param Optimization
Enable hwasan instrumentation of load operations.
-param=hwasan-instrument-writes=
-Common Joined UInteger Var(param_hwasan_instrument_writes) Init(1) IntegerRange(0, 1) Param Optimization
+Common Joined UInteger Var(param_hwasan_instrument_writes) Init(1) Boolean Param Optimization
Enable hwasan instrumentation of store operations.
-param=hwasan-instrument-mem-intrinsics=
-Common Joined UInteger Var(param_hwasan_instrument_mem_intrinsics) Init(1) IntegerRange(0, 1) Param Optimization
+Common Joined UInteger Var(param_hwasan_instrument_mem_intrinsics) Init(1) Boolean Param Optimization
Enable hwasan instrumentation of builtin functions.
-param=avg-loop-niter=
@@ -198,7 +198,7 @@ Common Joined UInteger Var(param_gimple_fe_computed_hot_bb_threshold) Param
The number of executions of a basic block which is considered hot. The parameter is used only in GIMPLE FE.
-param=graphite-allow-codegen-errors=
-Common Joined UInteger Var(param_graphite_allow_codegen_errors) IntegerRange(0, 1) Param
+Common Joined UInteger Var(param_graphite_allow_codegen_errors) Boolean Param
Whether codegen errors should be ICEs when -fchecking.
-param=graphite-max-arrays-per-scop=
@@ -808,7 +808,7 @@ Common Joined UInteger Var(param_predictable_branch_outcome) Init(2) IntegerRang
Maximal estimated outcome of branch considered predictable.
-param=prefetch-dynamic-strides=
-Common Joined UInteger Var(param_prefetch_dynamic_strides) Init(1) IntegerRange(0, 1) Param Optimization
+Common Joined UInteger Var(param_prefetch_dynamic_strides) Init(1) Boolean Param Optimization
Whether software prefetch hints should be issued for non-constant strides.
-param=prefetch-latency=
@@ -824,7 +824,7 @@ Common Joined UInteger Var(param_prefetch_minimum_stride) Init(-1) Param Optimiz
The minimum constant stride beyond which we should use prefetch hints for.
-param=profile-func-internal-id=
-Common Joined UInteger Var(param_profile_func_internal_id) IntegerRange(0, 1) Param
+Common Joined UInteger Var(param_profile_func_internal_id) Boolean Param
Use internal function id in profile lookup.
-param=rpo-vn-max-loop-depth=
@@ -928,7 +928,7 @@ Common Joined UInteger Var(param_stack_clash_protection_probe_interval) Init(12)
Interval in which to probe the stack expressed as a power of two in bytes.
-param=store-merging-allow-unaligned=
-Common Joined UInteger Var(param_store_merging_allow_unaligned) Init(1) IntegerRange(0, 1) Param Optimization
+Common Joined UInteger Var(param_store_merging_allow_unaligned) Init(1) Boolean Param Optimization
Allow the store merging pass to introduce unaligned stores if it is legal to do so.
-param=store-merging-max-size=
@@ -996,11 +996,11 @@ Common Joined UInteger Var(param_tree_reassoc_width) Param Optimization
Set the maximum number of instructions executed in parallel in reassociated tree. If 0, use the target dependent heuristic.
-param=tsan-distinguish-volatile=
-Common Joined UInteger Var(param_tsan_distinguish_volatile) IntegerRange(0, 1) Param
+Common Joined UInteger Var(param_tsan_distinguish_volatile) Boolean Param
Emit special instrumentation for accesses to volatiles.
-param=tsan-instrument-func-entry-exit=
-Common Joined UInteger Var(param_tsan_instrument_func_entry_exit) Init(1) IntegerRange(0, 1) Param
+Common Joined UInteger Var(param_tsan_instrument_func_entry_exit) Init(1) Boolean Param
Emit instrumentation calls to __tsan_func_entry() and __tsan_func_exit().
-param=uninit-control-dep-attempts=
@@ -1040,11 +1040,11 @@ Common Joined UInteger Var(param_use_after_scope_direct_emission_threshold) Init
Use direct poisoning/unpoisoning instructions for variables smaller or equal to this number.
-param=use-canonical-types=
-Common Joined UInteger Var(param_use_canonical_types) Init(1) IntegerRange(0, 1) Param
+Common Joined UInteger Var(param_use_canonical_types) Init(1) Boolean Param
Whether to use canonical types.
-param=vect-epilogues-nomask=
-Common Joined UInteger Var(param_vect_epilogues_nomask) Init(1) IntegerRange(0, 1) Param Optimization
+Common Joined UInteger Var(param_vect_epilogues_nomask) Init(1) Boolean Param Optimization
Enable loop epilogue vectorization using smaller vector size.
-param=vect-max-peeling-for-alignment=
^ permalink raw reply [flat|nested] 2+ messages in thread
* [gcc(refs/users/marxin/heads/options-Boolean-flag)] Implement Boolean flag for options.
@ 2021-02-02 13:33 Martin Liska
0 siblings, 0 replies; 2+ messages in thread
From: Martin Liska @ 2021-02-02 13:33 UTC (permalink / raw)
To: gcc-cvs
https://gcc.gnu.org/g:68d3801855f6e9219cc2bce37f37fdf14ee00b9e
commit 68d3801855f6e9219cc2bce37f37fdf14ee00b9e
Author: Martin Liska <mliska@suse.cz>
Date: Wed Dec 16 14:10:32 2020 +0100
Implement Boolean flag for options.
Diff:
---
gcc/c-family/c.opt | 14 +-
gcc/common.opt | 424 ++++++++++++++++++++---------------------
gcc/config/aarch64/aarch64.opt | 2 +-
gcc/opt-functions.awk | 10 +-
gcc/optc-gen.awk | 2 +-
gcc/opth-gen.awk | 8 +
gcc/params.opt | 42 ++--
7 files changed, 259 insertions(+), 243 deletions(-)
diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt
index b209d46d32b..bd2618452fe 100644
--- a/gcc/c-family/c.opt
+++ b/gcc/c-family/c.opt
@@ -1817,7 +1817,7 @@ fnonnull-objects
C++ ObjC++ WarnRemoved
fnothrow-opt
-C++ ObjC++ Optimization Var(flag_nothrow_opt)
+C++ ObjC++ Optimization Boolean Var(flag_nothrow_opt)
Treat a throw() exception specification as noexcept to improve code size.
fobjc-abi-version=
@@ -1926,7 +1926,7 @@ C++ ObjC++ Var(flag_pretty_templates) Init(1)
Do not pretty-print template specializations as the template signature followed by the arguments.
fprintf-return-value
-C ObjC C++ ObjC++ LTO Optimization Var(flag_printf_return_value) Init(1)
+C ObjC C++ ObjC++ LTO Optimization Boolean Var(flag_printf_return_value) Init(1)
Treat known sprintf return values as constants.
freplace-objc-classes
@@ -1938,15 +1938,15 @@ C++ ObjC++ WarnRemoved
Removed in GCC 10. This switch has no effect.
frtti
-C++ ObjC++ Optimization Var(flag_rtti) Init(1)
+C++ ObjC++ Optimization Boolean Var(flag_rtti) Init(1)
Generate run time type descriptor information.
fshort-enums
-C ObjC C++ ObjC++ LTO Optimization Var(flag_short_enums)
+C ObjC C++ ObjC++ LTO Optimization Boolean Var(flag_short_enums)
Use the narrowest integer type possible for enumeration types.
fshort-wchar
-C ObjC C++ ObjC++ LTO Optimization Var(flag_short_wchar)
+C ObjC C++ ObjC++ LTO Optimization Boolean Var(flag_short_wchar)
Force the underlying type for \"wchar_t\" to be \"unsigned short\".
fsigned-bitfields
@@ -1985,7 +1985,7 @@ C++ ObjC++ Var(flag_detailed_statistics)
Display statistics accumulated during compilation.
fstrict-enums
-C++ ObjC++ Optimization Var(flag_strict_enums)
+C++ ObjC++ Optimization Boolean Var(flag_strict_enums)
Assume that values of enumeration type are always within the minimum range of that type.
fstrict-prototype
@@ -2028,7 +2028,7 @@ fthis-is-variable
C++ ObjC++ WarnRemoved
fthreadsafe-statics
-C++ ObjC++ Optimization Var(flag_threadsafe_statics) Init(1)
+C++ ObjC++ Optimization Boolean Var(flag_threadsafe_statics) Init(1)
-fno-threadsafe-statics Do not generate thread-safe code for initializing local statics.
funsigned-bitfields
diff --git a/gcc/common.opt b/gcc/common.opt
index a8a2b67a99d..4591e835c6c 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -465,19 +465,19 @@ N
Driver
O
-Common JoinedOrMissing Optimization
+Common JoinedOrMissing Optimization Boolean
-O<number> Set optimization level to <number>.
Os
-Common Optimization
+Common Optimization Boolean
Optimize for space rather than speed.
Ofast
-Common Optimization
+Common Optimization Boolean
Optimize for speed disregarding exact standards compliance.
Og
-Common Optimization
+Common Optimization Boolean
Optimize for debugging experience rather than speed or size.
Q
@@ -630,7 +630,7 @@ Common Var(warn_implicit_fallthrough) RejectNegative Joined UInteger Warning Int
Warn when a switch case falls through.
Winline
-Common Var(warn_inline) Warning Optimization
+Common Var(warn_inline) Warning Optimization Boolean
Warn when an inlined function cannot be inlined.
Winvalid-memory-model
@@ -978,42 +978,42 @@ Common Joined RejectNegative UInteger Var(flag_abi_version) Init(0)
The version of the C++ ABI in use.
faggressive-loop-optimizations
-Common Var(flag_aggressive_loop_optimizations) Optimization Init(1)
+Common Var(flag_aggressive_loop_optimizations) Optimization Boolean Init(1)
Aggressively optimize loops using language constraints.
falign-functions
-Common Var(flag_align_functions) Optimization
+Common Var(flag_align_functions) Optimization Boolean
Align the start of functions.
falign-functions=
Common RejectNegative Joined Var(str_align_functions) Optimization
flimit-function-alignment
-Common Var(flag_limit_function_alignment) Optimization Init(0)
+Common Var(flag_limit_function_alignment) Optimization Boolean Init(0)
falign-jumps
-Common Var(flag_align_jumps) Optimization
+Common Var(flag_align_jumps) Optimization Boolean
Align labels which are only reached by jumping.
falign-jumps=
Common RejectNegative Joined Var(str_align_jumps) Optimization
falign-labels
-Common Var(flag_align_labels) Optimization
+Common Var(flag_align_labels) Optimization Boolean
Align all labels.
falign-labels=
Common RejectNegative Joined Var(str_align_labels) Optimization
falign-loops
-Common Var(flag_align_loops) Optimization
+Common Var(flag_align_loops) Optimization Boolean
Align the start of loops.
falign-loops=
Common RejectNegative Joined Var(str_align_loops) Optimization
fallow-store-data-races
-Common Var(flag_store_data_races) Optimization
+Common Var(flag_store_data_races) Optimization Boolean
Allow the compiler to introduce new data races on stores.
fanalyzer
@@ -1073,7 +1073,7 @@ Common Var(flag_asynchronous_unwind_tables) Optimization
Generate unwind tables that are exact at each instruction boundary.
fauto-inc-dec
-Common Var(flag_auto_inc_dec) Init(1) Optimization
+Common Var(flag_auto_inc_dec) Init(1) Optimization Boolean
Generate auto-inc/dec instructions.
fauto-profile
@@ -1095,11 +1095,11 @@ Common Var(flag_bounds_check)
Generate code to check bounds before indexing arrays.
fbranch-count-reg
-Common Var(flag_branch_on_count_reg) Optimization
+Common Var(flag_branch_on_count_reg) Optimization Boolean
Replace add, compare, branch with branch on count register.
fbranch-probabilities
-Common Var(flag_branch_probabilities) Optimization
+Common Var(flag_branch_probabilities) Optimization Boolean
Use profiling information for branch probabilities.
fbranch-target-load-optimize
@@ -1134,7 +1134,7 @@ Common Joined RejectNegative Var(common_deferred_options) Defer
; be saved across function calls, if that produces overall better code.
; Optional now, so people can test it.
fcaller-saves
-Common Var(flag_caller_saves) Optimization
+Common Var(flag_caller_saves) Optimization Boolean
Save registers around function calls.
fcheck-data-deps
@@ -1154,11 +1154,11 @@ Common Joined RejectNegative UInteger Var(flag_checking)
Perform internal consistency checkings.
fcode-hoisting
-Common Var(flag_code_hoisting) Optimization
+Common Var(flag_code_hoisting) Optimization Boolean
Enable code hoisting.
fcombine-stack-adjustments
-Common Var(flag_combine_stack_adjustments) Optimization
+Common Var(flag_combine_stack_adjustments) Optimization Boolean
Looks for opportunities to reduce stack adjustments and stack references.
fcommon
@@ -1178,23 +1178,23 @@ Common Driver RejectNegative Var(flag_compare_debug)
Run only the second compilation of -fcompare-debug.
fcompare-elim
-Common Var(flag_compare_elim_after_reload) Optimization
+Common Var(flag_compare_elim_after_reload) Optimization Boolean
Perform comparison elimination after register allocation has finished.
fconserve-stack
-Common Var(flag_conserve_stack) Optimization
+Common Var(flag_conserve_stack) Optimization Boolean
Do not perform optimizations increasing noticeably stack usage.
fcprop-registers
-Common Var(flag_cprop_registers) Optimization
+Common Var(flag_cprop_registers) Optimization Boolean
Perform a register copy-propagation optimization pass.
fcrossjumping
-Common Var(flag_crossjumping) Optimization
+Common Var(flag_crossjumping) Optimization Boolean
Perform cross-jumping optimization.
fcse-follow-jumps
-Common Var(flag_cse_follow_jumps) Optimization
+Common Var(flag_cse_follow_jumps) Optimization Boolean
When running CSE, follow jumps to their targets.
fcse-skip-blocks
@@ -1202,11 +1202,11 @@ Common Ignore
Does nothing. Preserved for backward compatibility.
fcx-limited-range
-Common Var(flag_cx_limited_range) Optimization SetByCombined
+Common Var(flag_cx_limited_range) Optimization Boolean SetByCombined
Omit range reduction step when performing complex division.
fcx-fortran-rules
-Common Var(flag_cx_fortran_rules) Optimization
+Common Var(flag_cx_fortran_rules) Optimization Boolean
Complex multiplication and division follow Fortran rules.
fdata-sections
@@ -1236,15 +1236,15 @@ 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 Var(flag_defer_pop) Optimization
+Common Var(flag_defer_pop) Optimization Boolean
Defer popping functions args from stack until later.
fdelayed-branch
-Common Var(flag_delayed_branch) Optimization
+Common Var(flag_delayed_branch) Optimization Boolean
Attempt to fill delay slots of branch instructions.
fdelete-dead-exceptions
-Common Var(flag_delete_dead_exceptions) Init(0) Optimization
+Common Var(flag_delete_dead_exceptions) Init(0) Optimization Boolean
Delete dead instructions that may throw exceptions.
fdelete-null-pointer-checks
@@ -1256,11 +1256,11 @@ Common Var(flag_ltrans_devirtualize)
Stream extra data to support more aggressive devirtualization in LTO local transformation mode.
fdevirtualize-speculatively
-Common Var(flag_devirtualize_speculatively) Optimization
+Common Var(flag_devirtualize_speculatively) Optimization Boolean
Perform speculative devirtualization.
fdevirtualize
-Common Var(flag_devirtualize) Optimization
+Common Var(flag_devirtualize) Optimization Boolean
Try to convert virtual calls to direct ones.
fdiagnostics-show-location=
@@ -1471,7 +1471,7 @@ Common Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
Enable CFI tables via GAS assembler directives.
fearly-inlining
-Common Var(flag_early_inlining) Init(1) Optimization
+Common Var(flag_early_inlining) Init(1) Optimization Boolean
Perform early inlining.
feliminate-dwarf2-dups
@@ -1479,7 +1479,7 @@ Common Ignore
Does nothing. Preserved for backward compatibility.
fipa-sra
-Common Var(flag_ipa_sra) Init(0) Optimization
+Common Var(flag_ipa_sra) Init(0) Optimization Boolean
Perform interprocedural reduction of aggregates.
feliminate-unused-debug-symbols
@@ -1495,11 +1495,11 @@ Common Var(flag_emit_class_debug_always) Init(0)
Do not suppress C++ class debug information.
fexceptions
-Common Var(flag_exceptions) Optimization
+Common Var(flag_exceptions) Optimization Boolean
Enable exception handling.
fexpensive-optimizations
-Common Var(flag_expensive_optimizations) Optimization
+Common Var(flag_expensive_optimizations) Optimization Boolean
Perform a number of minor, expensive optimizations.
fexcess-precision=
@@ -1531,18 +1531,18 @@ EnumValue
Enum(permitted_flt_eval_methods) String(ts-18661-3) Value(PERMITTED_FLT_EVAL_METHODS_TS_18661)
ffast-math
-Common Optimization
+Common Optimization Boolean
ffat-lto-objects
Common Var(flag_fat_lto_objects)
Output lto objects containing both the intermediate language and binary output.
ffinite-math-only
-Common Var(flag_finite_math_only) Optimization SetByCombined
+Common Var(flag_finite_math_only) Optimization Boolean SetByCombined
Assume no NaNs or infinities are generated.
ffinite-loops
-Common Var(flag_finite_loops) Optimization Init(0)
+Common Var(flag_finite_loops) Optimization Boolean Init(0)
Assume that loops with an exit will terminate and not loop indefinitely.
ffixed-
@@ -1550,7 +1550,7 @@ Common Joined RejectNegative Var(common_deferred_options) Defer
-ffixed-<register> Mark <register> as being unavailable to the compiler.
ffloat-store
-Common Var(flag_float_store) Optimization
+Common Var(flag_float_store) Optimization Boolean
Don't allocate floats and doubles in extended-precision registers.
fforce-addr
@@ -1558,7 +1558,7 @@ Common Ignore
Does nothing. Preserved for backward compatibility.
fforward-propagate
-Common Var(flag_forward_propagate) Optimization
+Common Var(flag_forward_propagate) Optimization Boolean
Perform a forward propagation pass on RTL.
ffp-contract=
@@ -1579,14 +1579,14 @@ EnumValue
Enum(fp_contract_mode) String(fast) Value(FP_CONTRACT_FAST)
ffp-int-builtin-inexact
-Common Var(flag_fp_int_builtin_inexact) Init(1) Optimization
+Common Var(flag_fp_int_builtin_inexact) Init(1) Optimization Boolean
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 Var(flag_no_function_cse,0) Optimization
+Common Var(flag_no_function_cse,0) Optimization Boolean
Allow function addresses to be held in registers.
ffunction-sections
@@ -1594,24 +1594,24 @@ Common Var(flag_function_sections)
Place each function into its own section.
fgcse
-Common Var(flag_gcse) Optimization
+Common Var(flag_gcse) Optimization Boolean
Perform global common subexpression elimination.
fgcse-lm
-Common Var(flag_gcse_lm) Init(1) Optimization
+Common Var(flag_gcse_lm) Init(1) Optimization Boolean
Perform enhanced load motion during global common subexpression elimination.
fgcse-sm
-Common Var(flag_gcse_sm) Init(0) Optimization
+Common Var(flag_gcse_sm) Init(0) Optimization Boolean
Perform store motion after global common subexpression elimination.
fgcse-las
-Common Var(flag_gcse_las) Init(0) Optimization
+Common Var(flag_gcse_las) Init(0) Optimization Boolean
Perform redundant load after store elimination in global common subexpression
elimination.
fgcse-after-reload
-Common Var(flag_gcse_after_reload) Optimization
+Common Var(flag_gcse_after_reload) Optimization Boolean
Perform global common subexpression elimination after register allocation has
finished.
@@ -1633,20 +1633,20 @@ Common Enum(dwarf_gnat_encodings) Joined RejectNegative Undocumented Var(gnat_en
; This option is not documented yet as its semantics will change.
fgraphite
-Common Var(flag_graphite) Optimization
+Common Var(flag_graphite) Optimization Boolean
Enable in and out of Graphite representation.
fgraphite-identity
-Common Var(flag_graphite_identity) Optimization
+Common Var(flag_graphite_identity) Optimization Boolean
Enable Graphite Identity transformation.
fhoist-adjacent-loads
-Common Var(flag_hoist_adjacent_loads) Optimization
+Common Var(flag_hoist_adjacent_loads) Optimization Boolean
Enable hoisting adjacent loads to encourage generating conditional move
instructions.
fkeep-gc-roots-live
-Common Undocumented Var(flag_keep_gc_roots_live) Optimization
+Common Undocumented Var(flag_keep_gc_roots_live) Optimization Boolean
; Always keep a pointer to a live memory block
flarge-source-files
@@ -1655,7 +1655,7 @@ Improve GCC's ability to track column numbers in large source files,
at the expense of slower compilation.
floop-parallelize-all
-Common Var(flag_loop_parallelize_all) Optimization
+Common Var(flag_loop_parallelize_all) Optimization Boolean
Mark all loops as parallel.
floop-strip-mine
@@ -1663,7 +1663,7 @@ Common Alias(floop-nest-optimize)
Enable loop nest transforms. Same as -floop-nest-optimize.
floop-interchange
-Common Var(flag_loop_interchange) Optimization
+Common Var(flag_loop_interchange) Optimization Boolean
Enable loop interchange on trees.
floop-block
@@ -1671,7 +1671,7 @@ Common Alias(floop-nest-optimize)
Enable loop nest transforms. Same as -floop-nest-optimize.
floop-unroll-and-jam
-Common Var(flag_unroll_jam) Optimization
+Common Var(flag_unroll_jam) Optimization Boolean
Perform unroll-and-jam on loops.
fgnu-tm
@@ -1687,7 +1687,7 @@ Common Ignore
Does nothing. Preserved for backward compatibility.
floop-nest-optimize
-Common Var(flag_loop_nest_optimize) Optimization
+Common Var(flag_loop_nest_optimize) Optimization Boolean
Enable the loop nest optimizer.
fstrict-volatile-bitfields
@@ -1695,11 +1695,11 @@ Common Var(flag_strict_volatile_bitfields) Init(-1) Optimization
Force bitfield accesses to match their type width.
fstore-merging
-Common Var(flag_store_merging) Optimization
+Common Var(flag_store_merging) Optimization Boolean
Merge adjacent stores.
fguess-branch-probability
-Common Var(flag_guess_branch_prob) Optimization
+Common Var(flag_guess_branch_prob) Optimization Boolean
Enable guessing of branch probabilities.
; Nonzero means ignore `#ident' directives. 0 means handle them.
@@ -1711,11 +1711,11 @@ Common Var(flag_no_ident,0)
Process #ident directives.
fif-conversion
-Common Var(flag_if_conversion) Optimization
+Common Var(flag_if_conversion) Optimization Boolean
Perform conversion of conditional jumps to branchless equivalents.
fif-conversion2
-Common Var(flag_if_conversion2) Optimization
+Common Var(flag_if_conversion2) Optimization Boolean
Perform conversion of conditional jumps to conditional execution.
fstack-reuse=
@@ -1751,25 +1751,25 @@ Common Var(flag_inhibit_size_directive)
Do not generate .size directives.
findirect-inlining
-Common Var(flag_indirect_inlining) Optimization
+Common Var(flag_indirect_inlining) Optimization Boolean
Perform indirect inlining.
; General flag to enable inlining. Specifying -fno-inline will disable
; all inlining apart from always-inline functions.
finline
-Common Var(flag_no_inline,0) Init(0) Optimization
+Common Var(flag_no_inline,0) Init(0) Optimization Boolean
Enable inlining of function declared \"inline\", disabling disables all inlining.
finline-small-functions
-Common Var(flag_inline_small_functions) Optimization
+Common Var(flag_inline_small_functions) Optimization Boolean
Integrate functions into their callers when code size is known not to grow.
finline-functions
-Common Var(flag_inline_functions) Optimization
+Common Var(flag_inline_functions) Optimization Boolean
Integrate functions not declared \"inline\" into their callers when profitable.
finline-functions-called-once
-Common Var(flag_inline_functions_called_once) Optimization
+Common Var(flag_inline_functions_called_once) Optimization Boolean
Integrate functions only required by their single caller.
finline-limit-
@@ -1780,7 +1780,7 @@ Common RejectNegative Joined UInteger
-finline-limit=<number> Limit the size of inlined functions to <number>.
finline-atomics
-Common Var(flag_inline_atomics) Init(1) Optimization
+Common Var(flag_inline_atomics) Init(1) Optimization Boolean
Inline __atomic operations when a lock free instruction sequence is available.
fcf-protection
@@ -1822,11 +1822,11 @@ Common RejectNegative Joined
-finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files.
fipa-cp
-Common Var(flag_ipa_cp) Optimization
+Common Var(flag_ipa_cp) Optimization Boolean
Perform interprocedural constant propagation.
fipa-cp-clone
-Common Var(flag_ipa_cp_clone) Optimization
+Common Var(flag_ipa_cp_clone) Optimization Boolean
Perform cloning to make Interprocedural constant propagation stronger.
fipa-cp-alignment
@@ -1834,47 +1834,47 @@ Common Ignore
Does nothing. Preserved for backward compatibility.
fipa-bit-cp
-Common Var(flag_ipa_bit_cp) Optimization
+Common Var(flag_ipa_bit_cp) Optimization Boolean
Perform interprocedural bitwise constant propagation.
fipa-modref
-Common Var(flag_ipa_modref) Optimization
+Common Var(flag_ipa_modref) Optimization Boolean
Perform interprocedural modref analysis.
fipa-profile
-Common Var(flag_ipa_profile) Init(0) Optimization
+Common Var(flag_ipa_profile) Init(0) Optimization Boolean
Perform interprocedural profile propagation.
fipa-pta
-Common Var(flag_ipa_pta) Init(0) Optimization
+Common Var(flag_ipa_pta) Init(0) Optimization Boolean
Perform interprocedural points-to analysis.
fipa-pure-const
-Common Var(flag_ipa_pure_const) Init(0) Optimization
+Common Var(flag_ipa_pure_const) Init(0) Optimization Boolean
Discover pure and const functions.
fipa-icf
-Common Var(flag_ipa_icf) Optimization
+Common Var(flag_ipa_icf) Optimization Boolean
Perform Identical Code Folding for functions and read-only variables.
fipa-icf-functions
-Common Var(flag_ipa_icf_functions) Optimization
+Common Var(flag_ipa_icf_functions) Optimization Boolean
Perform Identical Code Folding for functions.
fipa-icf-variables
-Common Var(flag_ipa_icf_variables) Optimization
+Common Var(flag_ipa_icf_variables) Optimization Boolean
Perform Identical Code Folding for variables.
fipa-reference
-Common Var(flag_ipa_reference) Init(0) Optimization
+Common Var(flag_ipa_reference) Init(0) Optimization Boolean
Discover read-only and non addressable static variables.
fipa-reference-addressable
-Common Var(flag_ipa_reference_addressable) Init(0) Optimization
+Common Var(flag_ipa_reference_addressable) Init(0) Optimization Boolean
Discover read-only, write-only and non-addressable static variables.
fipa-stack-alignment
-Common Var(flag_ipa_stack_alignment) Init(1) Optimization
+Common Var(flag_ipa_stack_alignment) Init(1) Optimization Boolean
Reduce stack alignment on call sites if possible.
fipa-matrix-reorg
@@ -1886,7 +1886,7 @@ Common Ignore
Does nothing. Preserved for backward compatibility.
fipa-vrp
-Common Var(flag_ipa_vrp) Optimization
+Common Var(flag_ipa_vrp) Optimization Boolean
Perform IPA Value Range Propagation.
fira-algorithm=
@@ -1919,21 +1919,21 @@ EnumValue
Enum(ira_region) String(mixed) Value(IRA_REGION_MIXED)
fira-hoist-pressure
-Common Var(flag_ira_hoist_pressure) Init(1) Optimization
+Common Var(flag_ira_hoist_pressure) Init(1) Optimization Boolean
Use IRA based register pressure calculation
in RTL hoist optimizations.
fira-loop-pressure
-Common Var(flag_ira_loop_pressure) Optimization
+Common Var(flag_ira_loop_pressure) Optimization Boolean
Use IRA based register pressure calculation
in RTL loop optimizations.
fira-share-save-slots
-Common Var(flag_ira_share_save_slots) Init(1) Optimization
+Common Var(flag_ira_share_save_slots) Init(1) Optimization Boolean
Share slots for saving different hard registers.
fira-share-spill-slots
-Common Var(flag_ira_share_spill_slots) Init(1) Optimization
+Common Var(flag_ira_share_spill_slots) Init(1) Optimization Boolean
Share stack slots for spilled pseudo-registers.
fira-verbose=
@@ -1941,15 +1941,15 @@ Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
-fira-verbose=<number> Control IRA's level of diagnostic messages.
fivopts
-Common Var(flag_ivopts) Init(1) Optimization
+Common Var(flag_ivopts) Init(1) Optimization Boolean
Optimize induction variables on trees.
fjump-tables
-Common Var(flag_jump_tables) Init(1) Optimization
+Common Var(flag_jump_tables) Init(1) Optimization Boolean
Use jump tables for sufficiently large switch statements.
fbit-tests
-Common Var(flag_bit_tests) Init(1) Optimization
+Common Var(flag_bit_tests) Init(1) Optimization Boolean
Use bit tests for sufficiently large switch statements.
fkeep-inline-functions
@@ -1973,7 +1973,7 @@ Common Ignore
Does nothing. Preserved for backward compatibility.
flra-remat
-Common Var(flag_lra_remat) Optimization
+Common Var(flag_lra_remat) Optimization Boolean
Do CFG-sensitive rematerialization in LRA.
flto
@@ -2024,7 +2024,7 @@ Common Var(flag_lto_report_wpa) Init(0)
Report various link-time optimization statistics for WPA only.
fmath-errno
-Common Var(flag_errno_math) Init(1) Optimization SetByCombined
+Common Var(flag_errno_math) Init(1) Optimization Boolean SetByCombined
Set errno after built-in math functions.
fmax-errors=
@@ -2059,31 +2059,31 @@ Common RejectNegative Joined UInteger
-fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping.
fmodulo-sched
-Common Var(flag_modulo_sched) Optimization
+Common Var(flag_modulo_sched) Optimization Boolean
Perform SMS based modulo scheduling before the first scheduling pass.
fmodulo-sched-allow-regmoves
-Common Var(flag_modulo_sched_allow_regmoves) Optimization
+Common Var(flag_modulo_sched_allow_regmoves) Optimization Boolean
Perform SMS based modulo scheduling with register moves allowed.
fmove-loop-invariants
-Common Var(flag_move_loop_invariants) Optimization
+Common Var(flag_move_loop_invariants) Optimization Boolean
Move loop invariant computations out of loops.
fdce
-Common Var(flag_dce) Init(1) Optimization
+Common Var(flag_dce) Init(1) Optimization Boolean
Use the RTL dead code elimination pass.
fdse
-Common Var(flag_dse) Init(0) Optimization
+Common Var(flag_dse) Init(0) Optimization Boolean
Use the RTL dead store elimination pass.
freschedule-modulo-scheduled-loops
-Common Var(flag_resched_modulo_sched) Optimization
+Common Var(flag_resched_modulo_sched) Optimization Boolean
Enable/Disable the traditional scheduling in loops that already passed modulo scheduling.
fnon-call-exceptions
-Common Var(flag_non_call_exceptions) Optimization
+Common Var(flag_non_call_exceptions) Optimization Boolean
Support synchronous non-call exceptions.
foffload=
@@ -2104,11 +2104,11 @@ EnumValue
Enum(offload_abi) String(lp64) Value(OFFLOAD_ABI_LP64)
fomit-frame-pointer
-Common Var(flag_omit_frame_pointer) Optimization
+Common Var(flag_omit_frame_pointer) Optimization Boolean
When possible do not generate stack frames.
fopt-info
-Common Var(flag_opt_info) Optimization
+Common Var(flag_opt_info) Optimization Boolean
Enable all optimization info dumps on stderr.
fopt-info-
@@ -2116,7 +2116,7 @@ Common Joined RejectNegative Var(common_deferred_options) Defer
-fopt-info[-<type>=filename] Dump compiler optimization details.
fsave-optimization-record
-Common Var(flag_save_optimization_record) Optimization
+Common Var(flag_save_optimization_record) Optimization Boolean
Write a SRCFILE.opt-record.json file detailing what optimizations were performed.
foptimize-register-move
@@ -2124,11 +2124,11 @@ Common Ignore
Does nothing. Preserved for backward compatibility.
foptimize-sibling-calls
-Common Var(flag_optimize_sibling_calls) Optimization
+Common Var(flag_optimize_sibling_calls) Optimization Boolean
Optimize sibling and tail recursive calls.
fpartial-inlining
-Common Var(flag_partial_inlining) Optimization
+Common Var(flag_partial_inlining) Optimization Boolean
Perform partial inlining.
fpre-ipa-mem-report
@@ -2140,11 +2140,11 @@ Common Var(post_ipa_mem_report)
Report on memory allocation before interprocedural optimization.
fpack-struct
-Common Var(flag_pack_struct) Optimization
+Common Var(flag_pack_struct) Optimization Boolean
Pack structure members together without holes.
fpack-struct=
-Common RejectNegative Joined UInteger Optimization
+Common RejectNegative Joined UInteger Optimization Boolean
-fpack-struct=<number> Set initial maximum structure member alignment.
fpcc-struct-return
@@ -2152,15 +2152,15 @@ Common Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
Return small aggregates in memory, not registers.
fpeel-loops
-Common Var(flag_peel_loops) Optimization
+Common Var(flag_peel_loops) Optimization Boolean
Perform loop peeling.
fpeephole
-Common Var(flag_no_peephole,0) Optimization
+Common Var(flag_no_peephole,0) Optimization Boolean
Enable machine specific peephole optimizations.
fpeephole2
-Common Var(flag_peephole2) Optimization
+Common Var(flag_peephole2) Optimization Boolean
Enable an RTL peephole pass before sched2.
fPIC
@@ -2180,7 +2180,7 @@ Common Var(flag_pie,1) Negative(fPIC) Init(-1)
Generate position-independent code for executables if possible (small mode).
fplt
-Common Var(flag_plt) Init(1) Optimization
+Common Var(flag_plt) Init(1) Optimization Boolean
Use PLT for PIC calls (-fno-plt: load the address from GOT at call site).
fplugin=
@@ -2192,7 +2192,7 @@ Common Joined RejectNegative Var(common_deferred_options) Defer
-fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>.
fpredictive-commoning
-Common Var(flag_predictive_commoning) Optimization
+Common Var(flag_predictive_commoning) Optimization Boolean
Run predictive commoning optimization.
fprefetch-loop-arrays
@@ -2285,7 +2285,7 @@ Common Joined RejectNegative Var(profile_info_section)
Register the profile information in the specified section instead of using a constructor/destructor.
fprofile-partial-training
-Common Var(flag_profile_partial_training) Optimization
+Common Var(flag_profile_partial_training) Optimization Boolean
Do not assume that functions never executed during the train run are cold.
fprofile-use
@@ -2305,11 +2305,11 @@ Common Var(profile_report)
Report on consistency of profile.
fprofile-reorder-functions
-Common Var(flag_profile_reorder_functions) Optimization
+Common Var(flag_profile_reorder_functions) Optimization Boolean
Enable function reordering that improves code placement.
fpatchable-function-entry=
-Common Joined Optimization
+Common Joined Optimization Boolean
Insert NOP instructions at each function entry.
frandom-seed
@@ -2330,7 +2330,7 @@ Common Var(flag_record_gcc_switches)
Record gcc command line switches in the object file.
freg-struct-return
-Common Var(flag_pcc_struct_return,0) Optimization
+Common Var(flag_pcc_struct_return,0) Optimization Boolean
Return small aggregates in registers.
fregmove
@@ -2346,7 +2346,7 @@ flifetime-dse=
Common Joined RejectNegative UInteger Var(flag_lifetime_dse) Optimization IntegerRange(0, 2)
flive-patching
-Common RejectNegative Alias(flive-patching=,inline-clone) Optimization
+Common RejectNegative Alias(flive-patching=,inline-clone) Optimization Boolean
flive-patching=
Common Joined RejectNegative Enum(live_patching_level) Var(flag_live_patching) Init(LIVE_PATCHING_NONE) Optimization
@@ -2364,11 +2364,11 @@ EnumValue
Enum(live_patching_level) String(inline-clone) Value(LIVE_PATCHING_INLINE_CLONE)
fallocation-dce
-Common Var(flag_allocation_dce) Init(1) Optimization
+Common Var(flag_allocation_dce) Init(1) Optimization Boolean
Tell DCE to remove unused C++ allocations.
flive-range-shrinkage
-Common Var(flag_live_range_shrinkage) Init(0) Optimization
+Common Var(flag_live_range_shrinkage) Init(0) Optimization Boolean
Relief of register pressure through live range shrinkage.
frename-registers
@@ -2380,7 +2380,7 @@ Common Var(flag_schedule_fusion) Init(2) Optimization
Perform a target dependent instruction fusion optimization pass.
freorder-blocks
-Common Var(flag_reorder_blocks) Optimization
+Common Var(flag_reorder_blocks) Optimization Boolean
Reorder basic blocks to improve code placement.
freorder-blocks-algorithm=
@@ -2397,15 +2397,15 @@ EnumValue
Enum(reorder_blocks_algorithm) String(stc) Value(REORDER_BLOCKS_ALGORITHM_STC)
freorder-blocks-and-partition
-Common Var(flag_reorder_blocks_and_partition) Optimization
+Common Var(flag_reorder_blocks_and_partition) Optimization Boolean
Reorder basic blocks and partition into hot and cold sections.
freorder-functions
-Common Var(flag_reorder_functions) Optimization
+Common Var(flag_reorder_functions) Optimization Boolean
Reorder functions to improve code placement.
frerun-cse-after-loop
-Common Var(flag_rerun_cse_after_loop) Optimization
+Common Var(flag_rerun_cse_after_loop) Optimization Boolean
Add a common subexpression elimination pass after loop optimizations.
frerun-loop-opt
@@ -2417,23 +2417,23 @@ Common Var(flag_rounding_math) Optimization SetByCombined
Disable optimizations that assume default FP rounding behavior.
fsched-interblock
-Common Var(flag_schedule_interblock) Init(1) Optimization
+Common Var(flag_schedule_interblock) Init(1) Optimization Boolean
Enable scheduling across basic blocks.
fsched-pressure
-Common Var(flag_sched_pressure) Init(0) Optimization
+Common Var(flag_sched_pressure) Init(0) Optimization Boolean
Enable register pressure sensitive insn scheduling.
fsched-spec
-Common Var(flag_schedule_speculative) Init(1) Optimization
+Common Var(flag_schedule_speculative) Init(1) Optimization Boolean
Allow speculative motion of non-loads.
fsched-spec-load
-Common Var(flag_schedule_speculative_load) Optimization
+Common Var(flag_schedule_speculative_load) Optimization Boolean
Allow speculative motion of some loads.
fsched-spec-load-dangerous
-Common Var(flag_schedule_speculative_load_dangerous) Optimization
+Common Var(flag_schedule_speculative_load_dangerous) Optimization Boolean
Allow speculative motion of more loads.
fsched-verbose=
@@ -2441,7 +2441,7 @@ Common RejectNegative Joined UInteger Var(sched_verbose_param) Init(1)
-fsched-verbose=<number> Set the verbosity level of the scheduler.
fsched2-use-superblocks
-Common Var(flag_sched2_use_superblocks) Optimization
+Common Var(flag_sched2_use_superblocks) Optimization Boolean
If scheduling post reload, do superblock scheduling.
fsched2-use-traces
@@ -2449,22 +2449,22 @@ Common Ignore
Does nothing. Preserved for backward compatibility.
fschedule-insns
-Common Var(flag_schedule_insns) Optimization
+Common Var(flag_schedule_insns) Optimization Boolean
Reschedule instructions before register allocation.
fschedule-insns2
-Common Var(flag_schedule_insns_after_reload) Optimization
+Common Var(flag_schedule_insns_after_reload) Optimization Boolean
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.
fselective-scheduling
-Common Var(flag_selective_scheduling) Optimization
+Common Var(flag_selective_scheduling) Optimization Boolean
Schedule instructions using selective scheduling algorithm.
fselective-scheduling2
-Common Var(flag_selective_scheduling2) Optimization
+Common Var(flag_selective_scheduling2) Optimization Boolean
Run selective scheduling after reload.
fself-test=
@@ -2472,15 +2472,15 @@ Common Undocumented Joined Var(flag_self_test)
Run self-tests, using the given path to locate test files.
fsel-sched-pipelining
-Common Var(flag_sel_sched_pipelining) Init(0) Optimization
+Common Var(flag_sel_sched_pipelining) Init(0) Optimization Boolean
Perform software pipelining of inner loops during selective scheduling.
fsel-sched-pipelining-outer-loops
-Common Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
+Common Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization Boolean
Perform software pipelining of outer loops during selective scheduling.
fsel-sched-reschedule-pipelined
-Common Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
+Common Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization Boolean
Reschedule pipelined regions without pipelining.
fsemantic-interposition
@@ -2490,11 +2490,11 @@ Allow interposing function (or variables) by ones with different semantics (or i
; sched_stalled_insns means that insns can be moved prematurely from the queue
; of stalled insns into the ready list.
fsched-stalled-insns
-Common Var(flag_sched_stalled_insns) Optimization UInteger
+Common Var(flag_sched_stalled_insns) Optimization Boolean UInteger
Allow premature scheduling of queued insns.
fsched-stalled-insns=
-Common RejectNegative Joined UInteger Optimization
+Common RejectNegative Joined UInteger Optimization Boolean
-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
@@ -2502,39 +2502,39 @@ Common RejectNegative Joined UInteger Optimization
; premature removal from the queue of stalled insns into the ready list (has
; an effect only if the flag 'sched_stalled_insns' is set).
fsched-stalled-insns-dep
-Common Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
+Common Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization Boolean UInteger
Set dependence distance checking in premature scheduling of queued insns.
fsched-stalled-insns-dep=
-Common RejectNegative Joined UInteger Optimization
+Common RejectNegative Joined UInteger Optimization Boolean
-fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns.
fsched-group-heuristic
-Common Var(flag_sched_group_heuristic) Init(1) Optimization
+Common Var(flag_sched_group_heuristic) Init(1) Optimization Boolean
Enable the group heuristic in the scheduler.
fsched-critical-path-heuristic
-Common Var(flag_sched_critical_path_heuristic) Init(1) Optimization
+Common Var(flag_sched_critical_path_heuristic) Init(1) Optimization Boolean
Enable the critical path heuristic in the scheduler.
fsched-spec-insn-heuristic
-Common Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
+Common Var(flag_sched_spec_insn_heuristic) Init(1) Optimization Boolean
Enable the speculative instruction heuristic in the scheduler.
fsched-rank-heuristic
-Common Var(flag_sched_rank_heuristic) Init(1) Optimization
+Common Var(flag_sched_rank_heuristic) Init(1) Optimization Boolean
Enable the rank heuristic in the scheduler.
fsched-last-insn-heuristic
-Common Var(flag_sched_last_insn_heuristic) Init(1) Optimization
+Common Var(flag_sched_last_insn_heuristic) Init(1) Optimization Boolean
Enable the last instruction heuristic in the scheduler.
fsched-dep-count-heuristic
-Common Var(flag_sched_dep_count_heuristic) Init(1) Optimization
+Common Var(flag_sched_dep_count_heuristic) Init(1) Optimization Boolean
Enable the dependent count heuristic in the scheduler.
fsection-anchors
-Common Var(flag_section_anchors) Optimization
+Common Var(flag_section_anchors) Optimization Boolean
Access data in the same section from shared anchor points.
fsee
@@ -2546,7 +2546,7 @@ Common Ignore
Does nothing. Preserved for backward compatibility.
free
-Common Var(flag_ree) Init(0) Optimization
+Common Var(flag_ree) Init(0) Optimization Boolean
Turn on Redundant Extensions Elimination pass.
fshow-column
@@ -2554,28 +2554,28 @@ Common Var(flag_show_column) Init(1)
Show column numbers in diagnostics, when available. Default on.
fshrink-wrap
-Common Var(flag_shrink_wrap) Optimization
+Common Var(flag_shrink_wrap) Optimization Boolean
Emit function prologues only before parts of the function that need it,
rather than at the top of the function.
fshrink-wrap-separate
-Common Var(flag_shrink_wrap_separate) Init(1) Optimization
+Common Var(flag_shrink_wrap_separate) Init(1) Optimization Boolean
Shrink-wrap parts of the prologue and epilogue separately.
fsignaling-nans
-Common Var(flag_signaling_nans) Optimization SetByCombined
+Common Var(flag_signaling_nans) Optimization Boolean SetByCombined
Disable optimizations observable by IEEE signaling NaNs.
fsigned-zeros
-Common Var(flag_signed_zeros) Init(1) Optimization SetByCombined
+Common Var(flag_signed_zeros) Init(1) Optimization Boolean SetByCombined
Disable floating point optimizations that ignore the IEEE signedness of zero.
fsingle-precision-constant
-Common Var(flag_single_precision_constant) Optimization
+Common Var(flag_single_precision_constant) Optimization Boolean
Convert floating point constants to single precision constants.
fsplit-ivs-in-unroller
-Common Var(flag_split_ivs_in_unroller) Init(1) Optimization
+Common Var(flag_split_ivs_in_unroller) Init(1) Optimization Boolean
Split lifetimes of induction variables when loops are unrolled.
fsplit-stack
@@ -2583,31 +2583,31 @@ Common Var(flag_split_stack) Init(-1)
Generate discontiguous stack frames.
fsplit-wide-types
-Common Var(flag_split_wide_types) Optimization
+Common Var(flag_split_wide_types) Optimization Boolean
Split wide types into independent registers.
fsplit-wide-types-early
-Common Var(flag_split_wide_types_early) Optimization
+Common Var(flag_split_wide_types_early) Optimization Boolean
Split wide types into independent registers earlier.
fssa-backprop
-Common Var(flag_ssa_backprop) Init(1) Optimization
+Common Var(flag_ssa_backprop) Init(1) Optimization Boolean
Enable backward propagation of use properties at the SSA level.
fssa-phiopt
-Common Var(flag_ssa_phiopt) Optimization
+Common Var(flag_ssa_phiopt) Optimization Boolean
Optimize conditional patterns using SSA PHI nodes.
fstdarg-opt
-Common Var(flag_stdarg_opt) Init(1) Optimization
+Common Var(flag_stdarg_opt) Init(1) Optimization Boolean
Optimize amount of stdarg registers saved to stack at start of function.
fvariable-expansion-in-unroller
-Common Var(flag_variable_expansion_in_unroller) Optimization
+Common Var(flag_variable_expansion_in_unroller) Optimization Boolean
Apply variable expansion when loops are unrolled.
fstack-check=
-Common RejectNegative Joined Optimization
+Common RejectNegative Joined Optimization Boolean
-fstack-check=[no|generic|specific] Insert stack checking code into the program.
fstack-check
@@ -2615,7 +2615,7 @@ Common Alias(fstack-check=, specific, no)
Insert stack checking code into the program. Same as -fstack-check=specific.
fstack-clash-protection
-Common Var(flag_stack_clash_protection) Optimization
+Common Var(flag_stack_clash_protection) Optimization Boolean
Insert code to probe each page of stack space as it is allocated to protect
from stack-clash style attacks.
@@ -2659,7 +2659,7 @@ Does nothing. Preserved for backward compatibility.
; types do not alias expressions of certain other types. Only used
; if alias analysis (in general) is enabled.
fstrict-aliasing
-Common Var(flag_strict_aliasing) Optimization
+Common Var(flag_strict_aliasing) Optimization Boolean
Assume strict aliasing rules apply.
fstrict-overflow
@@ -2679,7 +2679,7 @@ Common Var(flag_test_coverage)
Create data files needed by \"gcov\".
fthread-jumps
-Common Var(flag_thread_jumps) Optimization
+Common Var(flag_thread_jumps) Optimization Boolean
Perform jump threading optimizations.
ftime-report
@@ -2714,7 +2714,7 @@ Common Var(flag_toplevel_reorder) Init(2) Optimization
Reorder top level functions, variables, and asms.
ftracer
-Common Var(flag_tracer) Optimization
+Common Var(flag_tracer) Optimization Boolean
Perform superblock formation via tail duplication.
ftrampolines
@@ -2726,19 +2726,19 @@ generate them instead of using descriptors.
; (user-visible) trap. This is the case, for example, in nonstop
; IEEE 754 arithmetic.
ftrapping-math
-Common Var(flag_trapping_math) Init(1) Optimization SetByCombined
+Common Var(flag_trapping_math) Init(1) Optimization Boolean SetByCombined
Assume floating-point operations can trap.
ftrapv
-Common Var(flag_trapv) Optimization
+Common Var(flag_trapv) Optimization Boolean
Trap for signed overflow in addition, subtraction and multiplication.
ftree-ccp
-Common Var(flag_tree_ccp) Optimization
+Common Var(flag_tree_ccp) Optimization Boolean
Enable SSA-CCP optimization on trees.
ftree-bit-ccp
-Common Var(flag_tree_bit_ccp) Optimization
+Common Var(flag_tree_bit_ccp) Optimization Boolean
Enable SSA-BIT-CCP optimization on trees.
ftree-store-ccp
@@ -2746,7 +2746,7 @@ Common Ignore
Does nothing. Preserved for backward compatibility.
ftree-ch
-Common Var(flag_tree_ch) Optimization
+Common Var(flag_tree_ch) Optimization Boolean
Enable loop header copying on trees.
ftree-coalesce-inlined-vars
@@ -2754,7 +2754,7 @@ Common Ignore RejectNegative
Does nothing. Preserved for backward compatibility.
ftree-coalesce-vars
-Common Var(flag_tree_coalesce_vars) Optimization
+Common Var(flag_tree_coalesce_vars) Optimization Boolean
Enable SSA coalescing of user variables.
ftree-copyrename
@@ -2762,7 +2762,7 @@ Common Ignore
Does nothing. Preserved for backward compatibility.
ftree-copy-prop
-Common Var(flag_tree_copy_prop) Optimization
+Common Var(flag_tree_copy_prop) Optimization Boolean
Enable copy propagation on trees.
ftree-store-copy-prop
@@ -2774,60 +2774,60 @@ Common Var(flag_tree_cselim) Init(2) Optimization
Transform condition stores into unconditional ones.
ftree-switch-conversion
-Common Var(flag_tree_switch_conversion) Optimization
+Common Var(flag_tree_switch_conversion) Optimization Boolean
Perform conversions of switch initializations.
ftree-dce
-Common Var(flag_tree_dce) Optimization
+Common Var(flag_tree_dce) Optimization Boolean
Enable SSA dead code elimination optimization on trees.
ftree-dominator-opts
-Common Var(flag_tree_dom) Optimization
+Common Var(flag_tree_dom) Optimization Boolean
Enable dominator optimizations.
ftree-tail-merge
-Common Var(flag_tree_tail_merge) Optimization
+Common Var(flag_tree_tail_merge) Optimization Boolean
Enable tail merging on trees.
ftree-dse
-Common Var(flag_tree_dse) Optimization
+Common Var(flag_tree_dse) Optimization Boolean
Enable dead store elimination.
ftree-forwprop
-Common Var(flag_tree_forwprop) Init(1) Optimization
+Common Var(flag_tree_forwprop) Init(1) Optimization Boolean
Enable forward propagation on trees.
ftree-fre
-Common Var(flag_tree_fre) Optimization
+Common Var(flag_tree_fre) Optimization Boolean
Enable Full Redundancy Elimination (FRE) on trees.
foptimize-strlen
-Common Var(flag_optimize_strlen) Optimization
+Common Var(flag_optimize_strlen) Optimization Boolean
Enable string length optimizations on trees.
fisolate-erroneous-paths-dereference
-Common Var(flag_isolate_erroneous_paths_dereference) Optimization
+Common Var(flag_isolate_erroneous_paths_dereference) Optimization Boolean
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 Var(flag_isolate_erroneous_paths_attribute) Optimization
+Common Var(flag_isolate_erroneous_paths_attribute) Optimization Boolean
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 Var(flag_tree_loop_distribution) Optimization
+Common Var(flag_tree_loop_distribution) Optimization Boolean
Enable loop distribution on trees.
ftree-loop-distribute-patterns
-Common Var(flag_tree_loop_distribute_patterns) Optimization
+Common Var(flag_tree_loop_distribute_patterns) Optimization Boolean
Enable loop distribution for patterns transformed into a library call.
ftree-loop-im
-Common Var(flag_tree_loop_im) Init(1) Optimization
+Common Var(flag_tree_loop_im) Init(1) Optimization Boolean
Enable loop invariant motion on trees.
ftree-loop-linear
@@ -2835,11 +2835,11 @@ Common Alias(floop-nest-optimize)
Enable loop nest transforms. Same as -floop-nest-optimize.
ftree-loop-ivcanon
-Common Var(flag_tree_loop_ivcanon) Init(1) Optimization
+Common Var(flag_tree_loop_ivcanon) Init(1) Optimization Boolean
Create canonical induction variables in loops.
ftree-loop-optimize
-Common Var(flag_tree_loop_optimize) Init(1) Optimization
+Common Var(flag_tree_loop_optimize) Init(1) Optimization Boolean
Enable loop optimizations on tree level.
ftree-parallelize-loops=
@@ -2847,23 +2847,23 @@ Common Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1) O
-ftree-parallelize-loops=<number> Enable automatic parallelization of loops.
ftree-phiprop
-Common Var(flag_tree_phiprop) Init(1) Optimization
+Common Var(flag_tree_phiprop) Init(1) Optimization Boolean
Enable hoisting loads from conditional pointers.
ftree-pre
-Common Var(flag_tree_pre) Optimization
+Common Var(flag_tree_pre) Optimization Boolean
Enable SSA-PRE optimization on trees.
ftree-partial-pre
-Common Var(flag_tree_partial_pre) Optimization
+Common Var(flag_tree_partial_pre) Optimization Boolean
In SSA-PRE optimization on trees, enable partial-partial redundancy elimination.
ftree-pta
-Common Var(flag_tree_pta) Optimization
+Common Var(flag_tree_pta) Optimization Boolean
Perform function-local points-to analysis on trees.
ftree-reassoc
-Common Var(flag_tree_reassoc) Init(1) Optimization
+Common Var(flag_tree_reassoc) Init(1) Optimization Boolean
Enable reassociation on tree level.
ftree-salias
@@ -2871,35 +2871,35 @@ Common Ignore
Does nothing. Preserved for backward compatibility.
ftree-sink
-Common Var(flag_tree_sink) Optimization
+Common Var(flag_tree_sink) Optimization Boolean
Enable SSA code sinking on trees.
ftree-slsr
-Common Var(flag_tree_slsr) Optimization
+Common Var(flag_tree_slsr) Optimization Boolean
Perform straight-line strength reduction.
ftree-sra
-Common Var(flag_tree_sra) Optimization
+Common Var(flag_tree_sra) Optimization Boolean
Perform scalar replacement of aggregates.
ftree-ter
-Common Var(flag_tree_ter) Optimization
+Common Var(flag_tree_ter) Optimization Boolean
Replace temporary expressions in the SSA->normal pass.
ftree-lrs
-Common Var(flag_tree_live_range_split) Optimization
+Common Var(flag_tree_live_range_split) Optimization Boolean
Perform live range splitting during the SSA->normal pass.
ftree-vrp
-Common Var(flag_tree_vrp) Init(0) Optimization
+Common Var(flag_tree_vrp) Init(0) Optimization Boolean
Perform Value Range Propagation on trees.
fsplit-paths
-Common Var(flag_split_paths) Init(0) Optimization
+Common Var(flag_split_paths) Init(0) Optimization Boolean
Split paths leading to loop backedges.
funconstrained-commons
-Common Var(flag_unconstrained_commons) Optimization
+Common Var(flag_unconstrained_commons) Optimization Boolean
Assume common declarations may be overridden with ones with a larger
trailing array.
@@ -2908,15 +2908,15 @@ Common Var(flag_unit_at_a_time) Init(1)
Compile whole compilation unit at a time.
funroll-loops
-Common Var(flag_unroll_loops) Optimization
+Common Var(flag_unroll_loops) Optimization Boolean
Perform loop unrolling when iteration count is known.
funroll-all-loops
-Common Var(flag_unroll_all_loops) Optimization
+Common Var(flag_unroll_all_loops) Optimization Boolean
Perform loop unrolling for all loops.
funroll-completely-grow-size
-Undocumented Var(flag_cunroll_grow_size) Optimization
+Undocumented Var(flag_cunroll_grow_size) Optimization Boolean
; Internal undocumented flag, allow size growth during complete unrolling
; Nonzero means that loop optimizer may assume that the induction variables
@@ -2932,7 +2932,7 @@ Allow optimization for floating-point arithmetic which may change the
result of the operation due to rounding.
freciprocal-math
-Common Var(flag_reciprocal_math) SetByCombined Optimization
+Common Var(flag_reciprocal_math) SetByCombined Optimization Boolean
Same as -fassociative-math for expressions which include division.
; Nonzero means that unsafe floating-point math optimizations are allowed
@@ -2940,23 +2940,23 @@ Same as -fassociative-math for expressions which include division.
; are allowed to assume that their arguments and results are "normal"
; (e.g., nonnegative for SQRT).
funsafe-math-optimizations
-Common Var(flag_unsafe_math_optimizations) Optimization SetByCombined
+Common Var(flag_unsafe_math_optimizations) Optimization Boolean SetByCombined
Allow math optimizations that may violate IEEE or ISO standards.
funswitch-loops
-Common Var(flag_unswitch_loops) Optimization
+Common Var(flag_unswitch_loops) Optimization Boolean
Perform loop unswitching.
fsplit-loops
-Common Var(flag_split_loops) Optimization
+Common Var(flag_split_loops) Optimization Boolean
Perform loop splitting.
fversion-loops-for-strides
-Common Var(flag_version_loops_for_strides) Optimization
+Common Var(flag_version_loops_for_strides) Optimization Boolean
Version loops based on whether indices have a stride of one.
funwind-tables
-Common Var(flag_unwind_tables) Optimization
+Common Var(flag_unwind_tables) Optimization Boolean
Just generate unwind tables for exception handling.
fuse-ld=bfd
@@ -3007,7 +3007,7 @@ Perform variable tracking and also tag variables that are uninitialized.
; Alias to enable both -ftree-loop-vectorize and -ftree-slp-vectorize.
ftree-vectorize
-Common Optimization
+Common Optimization Boolean
Enable vectorization on trees.
ftree-vectorizer-verbose=
@@ -3015,11 +3015,11 @@ Common Joined RejectNegative Ignore
Does nothing. Preserved for backward compatibility.
ftree-loop-vectorize
-Common Var(flag_tree_loop_vectorize) Optimization EnabledBy(ftree-vectorize)
+Common Var(flag_tree_loop_vectorize) Optimization Boolean EnabledBy(ftree-vectorize)
Enable loop vectorization on trees.
ftree-slp-vectorize
-Common Var(flag_tree_slp_vectorize) Optimization EnabledBy(ftree-vectorize)
+Common Var(flag_tree_slp_vectorize) Optimization Boolean EnabledBy(ftree-vectorize)
Enable basic block vectorization (SLP) on trees.
fvect-cost-model=
@@ -3054,7 +3054,7 @@ Common Ignore
Does nothing. Preserved for backward compatibility.
ftree-scev-cprop
-Common Var(flag_tree_scev_cprop) Init(1) Optimization
+Common Var(flag_tree_scev_cprop) Init(1) Optimization Boolean
Enable copy propagation of scalar-evolution information.
; -fverbose-asm causes extra commentary information to be produced in
@@ -3111,7 +3111,7 @@ Common Var(flag_vtv_debug)
Output vtable verification pointer sets information.
fvpt
-Common Var(flag_value_profile_transformations) Optimization
+Common Var(flag_value_profile_transformations) Optimization Boolean
Use expression value profiles in optimizations.
fweb
@@ -3119,7 +3119,7 @@ Common Var(flag_web) Init(2) Optimization
Construct webs and split unrelated uses of single variable.
ftree-builtin-call-dce
-Common Var(flag_tree_builtin_call_dce) Init(0) Optimization
+Common Var(flag_tree_builtin_call_dce) Init(0) Optimization Boolean
Enable conditional dead code elimination for builtin calls.
fwhole-program
@@ -3127,11 +3127,11 @@ Common Var(flag_whole_program) Init(0)
Perform whole program optimizations.
fwrapv-pointer
-Common Var(flag_wrapv_pointer) Optimization
+Common Var(flag_wrapv_pointer) Optimization Boolean
Assume pointer overflow wraps around.
fwrapv
-Common Var(flag_wrapv) Optimization
+Common Var(flag_wrapv) Optimization Boolean
Assume signed arithmetic overflow wraps around.
fzero-initialized-in-bss
@@ -3491,7 +3491,7 @@ z
Driver Joined Separate
fipa-ra
-Common Var(flag_ipa_ra) Optimization
+Common Var(flag_ipa_ra) Optimization Boolean
Use caller save register across calls if possible.
; This comment is to ensure we retain the blank line above.
diff --git a/gcc/config/aarch64/aarch64.opt b/gcc/config/aarch64/aarch64.opt
index 91e5c6151a7..57f5cd1bdfe 100644
--- a/gcc/config/aarch64/aarch64.opt
+++ b/gcc/config/aarch64/aarch64.opt
@@ -264,7 +264,7 @@ Target Var(aarch64_flag_outline_atomics) Init(2) Save
Generate local calls to out-of-line atomic operations.
-param=aarch64-sve-compare-costs=
-Target Joined UInteger Var(aarch64_sve_compare_costs) Init(1) IntegerRange(0, 1) Param
+Target Joined UInteger Var(aarch64_sve_compare_costs) Init(1) Boolean Param
When vectorizing for SVE, consider using unpacked vectors for smaller elements and use the cost model to pick the cheapest approach. Also use the cost model to choose between SVE and Advanced SIMD vectorization.
-param=aarch64-float-recp-precision=
diff --git a/gcc/opt-functions.awk b/gcc/opt-functions.awk
index be9255064d7..791f1a5005b 100644
--- a/gcc/opt-functions.awk
+++ b/gcc/opt-functions.awk
@@ -224,6 +224,8 @@ function static_var(name, flags)
# Return the type of variable that should be associated with the given flags.
function var_type(flags)
{
+# if (flag_set_p("Boolean", flags))
+# return "bool "
if (flag_set_p("Defer", flags))
return "void *"
else if (flag_set_p("Enum.*", flags)) {
@@ -245,6 +247,8 @@ function var_type(flags)
# type instead of int to save space.
function var_type_struct(flags)
{
+ if (flag_set_p("Boolean", flags))
+ return "bool "
if (flag_set_p("UInteger", flags)) {
if (host_wide_int[var_name(flags)] == "yes")
return "HOST_WIDE_INT ";
@@ -356,9 +360,11 @@ function search_var_name(name, opt_numbers, opts, flags, n_opts)
return ""
}
-function integer_range_info(range_option, init, option)
+function integer_range_info(range_option, init, option, flags)
{
if (range_option != "") {
+ if (flag_set_p("Boolean", flags))
+ print "#error IntegerRange cannot be combined with Boolean keyword"
ival = init + 0;
start = nth_arg(0, range_option) + 0;
end = nth_arg(1, range_option) + 0;
@@ -366,6 +372,8 @@ function integer_range_info(range_option, init, option)
print "#error initial value " init " of '" option "' must be in range [" start "," end "]"
return start ", " end
}
+ else if (flag_set_p("Boolean", flags))
+ return "0, 1"
else
return "-1, -1"
}
diff --git a/gcc/optc-gen.awk b/gcc/optc-gen.awk
index 880ac776d8a..8c0724148f0 100644
--- a/gcc/optc-gen.awk
+++ b/gcc/optc-gen.awk
@@ -418,7 +418,7 @@ for (i = 0; i < n_opts; i++) {
cl_flags, cl_bit_fields)
printf(" %s, %s, %s }%s\n", var_ref(opts[i], flags[i]),
var_set(flags[i]), integer_range_info(opt_args("IntegerRange", flags[i]),
- opt_args("Init", flags[i]), opts[i]), comma)
+ opt_args("Init", flags[i]), opts[i], flags[i]), comma)
# Bump up the informational option index.
++optindex
diff --git a/gcc/opth-gen.awk b/gcc/opth-gen.awk
index 0491525da94..06fb2f4ea25 100644
--- a/gcc/opth-gen.awk
+++ b/gcc/opth-gen.awk
@@ -136,6 +136,7 @@ n_opt_char = 4;
n_opt_short = 0;
n_opt_int = 0;
n_opt_enum = 0;
+n_opt_bool = 0;
n_opt_other = 0;
n_opt_explicit = 4;
var_opt_char[0] = "unsigned char x_optimize";
@@ -167,6 +168,9 @@ for (i = 0; i < n_opts; i++) {
else if (otype ~ ("^enum +[_" alnum "]+ *$"))
var_opt_enum[n_opt_enum++] = otype "x_" name;
+ else if (otype ~ "bool")
+ var_opt_bool[n_opt_bool++] = "unsigned x_" name ": 1";
+
else
var_opt_other[n_opt_other++] = otype "x_" name;
}
@@ -192,6 +196,10 @@ for (i = 0; i < n_opt_char; i++) {
print " " var_opt_char[i] ";";
}
+for (i = 0; i < n_opt_bool; i++) {
+ print " " var_opt_bool[i] ";";
+}
+
print " /* " n_opt_explicit " members */";
print " unsigned HOST_WIDE_INT explicit_mask[" int ((n_opt_explicit + 63) / 64) "];";
diff --git a/gcc/params.opt b/gcc/params.opt
index dff8a331f82..5f46edeecfb 100644
--- a/gcc/params.opt
+++ b/gcc/params.opt
@@ -31,19 +31,19 @@ Common Joined UInteger Var(param_align_threshold) Init(100) IntegerRange(1, 6553
Select fraction of the maximal frequency of executions of basic block in function given basic block get alignment.
-param=asan-globals=
-Common Joined UInteger Var(param_asan_globals) Init(1) IntegerRange(0, 1) Param
+Common Joined UInteger Var(param_asan_globals) Init(1) Boolean Param
Enable asan globals protection.
-param=asan-instrument-allocas=
-Common Joined UInteger Var(param_asan_protect_allocas) Init(1) IntegerRange(0, 1) Param Optimization
+Common Joined UInteger Var(param_asan_protect_allocas) Init(1) Boolean Param Optimization
Enable asan allocas/VLAs protection.
-param=asan-instrument-reads=
-Common Joined UInteger Var(param_asan_instrument_reads) Init(1) IntegerRange(0, 1) Param Optimization
+Common Joined UInteger Var(param_asan_instrument_reads) Init(1) Param Optimization
Enable asan load operations protection.
-param=asan-instrument-writes=
-Common Joined UInteger Var(param_asan_instrument_writes) Init(1) IntegerRange(0, 1) Param Optimization
+Common Joined UInteger Var(param_asan_instrument_writes) Init(1) Boolean Param Optimization
Enable asan store operations protection.
-param=asan-instrumentation-with-call-threshold=
@@ -51,39 +51,39 @@ Common Joined UInteger Var(param_asan_instrumentation_with_call_threshold) Init(
Use callbacks instead of inline code if number of accesses in function becomes greater or equal to this number.
-param=asan-memintrin=
-Common Joined UInteger Var(param_asan_memintrin) Init(1) IntegerRange(0, 1) Param Optimization
+Common Joined UInteger Var(param_asan_memintrin) Init(1) Boolean Param Optimization
Enable asan builtin functions protection.
-param=asan-stack=
-Common Joined UInteger Var(param_asan_stack) Init(1) IntegerRange(0, 1) Param Optimization
+Common Joined UInteger Var(param_asan_stack) Init(1) Boolean Param Optimization
Enable asan stack protection.
-param=asan-use-after-return=
-Common Joined UInteger Var(param_asan_use_after_return) Init(1) IntegerRange(0, 1) Param Optimization
+Common Joined UInteger Var(param_asan_use_after_return) Init(1) Boolean Param Optimization
Enable asan detection of use-after-return bugs.
-param=hwasan-instrument-stack=
-Common Joined UInteger Var(param_hwasan_instrument_stack) Init(1) IntegerRange(0, 1) Param Optimization
+Common Joined UInteger Var(param_hwasan_instrument_stack) Init(1) Boolean Param Optimization
Enable hwasan instrumentation of statically sized stack-allocated variables.
-param=hwasan-random-frame-tag=
-Common Joined UInteger Var(param_hwasan_random_frame_tag) Init(1) IntegerRange(0, 1) Param Optimization
+Common Joined UInteger Var(param_hwasan_random_frame_tag) Init(1) Boolean Param Optimization
Use random base tag for each frame, as opposed to base always zero.
-param=hwasan-instrument-allocas=
-Common Joined UInteger Var(param_hwasan_instrument_allocas) Init(1) IntegerRange(0, 1) Param Optimization
+Common Joined UInteger Var(param_hwasan_instrument_allocas) Init(1) Boolean Param Optimization
Enable hwasan instrumentation of allocas/VLAs.
-param=hwasan-instrument-reads=
-Common Joined UInteger Var(param_hwasan_instrument_reads) Init(1) IntegerRange(0, 1) Param Optimization
+Common Joined UInteger Var(param_hwasan_instrument_reads) Init(1) Boolean Param Optimization
Enable hwasan instrumentation of load operations.
-param=hwasan-instrument-writes=
-Common Joined UInteger Var(param_hwasan_instrument_writes) Init(1) IntegerRange(0, 1) Param Optimization
+Common Joined UInteger Var(param_hwasan_instrument_writes) Init(1) Boolean Param Optimization
Enable hwasan instrumentation of store operations.
-param=hwasan-instrument-mem-intrinsics=
-Common Joined UInteger Var(param_hwasan_instrument_mem_intrinsics) Init(1) IntegerRange(0, 1) Param Optimization
+Common Joined UInteger Var(param_hwasan_instrument_mem_intrinsics) Init(1) Boolean Param Optimization
Enable hwasan instrumentation of builtin functions.
-param=avg-loop-niter=
@@ -198,7 +198,7 @@ Common Joined UInteger Var(param_gimple_fe_computed_hot_bb_threshold) Param
The number of executions of a basic block which is considered hot. The parameter is used only in GIMPLE FE.
-param=graphite-allow-codegen-errors=
-Common Joined UInteger Var(param_graphite_allow_codegen_errors) IntegerRange(0, 1) Param
+Common Joined UInteger Var(param_graphite_allow_codegen_errors) Boolean Param
Whether codegen errors should be ICEs when -fchecking.
-param=graphite-max-arrays-per-scop=
@@ -808,7 +808,7 @@ Common Joined UInteger Var(param_predictable_branch_outcome) Init(2) IntegerRang
Maximal estimated outcome of branch considered predictable.
-param=prefetch-dynamic-strides=
-Common Joined UInteger Var(param_prefetch_dynamic_strides) Init(1) IntegerRange(0, 1) Param Optimization
+Common Joined UInteger Var(param_prefetch_dynamic_strides) Init(1) Boolean Param Optimization
Whether software prefetch hints should be issued for non-constant strides.
-param=prefetch-latency=
@@ -824,7 +824,7 @@ Common Joined UInteger Var(param_prefetch_minimum_stride) Init(-1) Param Optimiz
The minimum constant stride beyond which we should use prefetch hints for.
-param=profile-func-internal-id=
-Common Joined UInteger Var(param_profile_func_internal_id) IntegerRange(0, 1) Param
+Common Joined UInteger Var(param_profile_func_internal_id) Boolean Param
Use internal function id in profile lookup.
-param=rpo-vn-max-loop-depth=
@@ -928,7 +928,7 @@ Common Joined UInteger Var(param_stack_clash_protection_probe_interval) Init(12)
Interval in which to probe the stack expressed as a power of two in bytes.
-param=store-merging-allow-unaligned=
-Common Joined UInteger Var(param_store_merging_allow_unaligned) Init(1) IntegerRange(0, 1) Param Optimization
+Common Joined UInteger Var(param_store_merging_allow_unaligned) Init(1) Boolean Param Optimization
Allow the store merging pass to introduce unaligned stores if it is legal to do so.
-param=store-merging-max-size=
@@ -996,11 +996,11 @@ Common Joined UInteger Var(param_tree_reassoc_width) Param Optimization
Set the maximum number of instructions executed in parallel in reassociated tree. If 0, use the target dependent heuristic.
-param=tsan-distinguish-volatile=
-Common Joined UInteger Var(param_tsan_distinguish_volatile) IntegerRange(0, 1) Param
+Common Joined UInteger Var(param_tsan_distinguish_volatile) Boolean Param
Emit special instrumentation for accesses to volatiles.
-param=tsan-instrument-func-entry-exit=
-Common Joined UInteger Var(param_tsan_instrument_func_entry_exit) Init(1) IntegerRange(0, 1) Param
+Common Joined UInteger Var(param_tsan_instrument_func_entry_exit) Init(1) Boolean Param
Emit instrumentation calls to __tsan_func_entry() and __tsan_func_exit().
-param=uninit-control-dep-attempts=
@@ -1040,11 +1040,11 @@ Common Joined UInteger Var(param_use_after_scope_direct_emission_threshold) Init
Use direct poisoning/unpoisoning instructions for variables smaller or equal to this number.
-param=use-canonical-types=
-Common Joined UInteger Var(param_use_canonical_types) Init(1) IntegerRange(0, 1) Param
+Common Joined UInteger Var(param_use_canonical_types) Init(1) Boolean Param
Whether to use canonical types.
-param=vect-epilogues-nomask=
-Common Joined UInteger Var(param_vect_epilogues_nomask) Init(1) IntegerRange(0, 1) Param Optimization
+Common Joined UInteger Var(param_vect_epilogues_nomask) Init(1) Boolean Param Optimization
Enable loop epilogue vectorization using smaller vector size.
-param=vect-max-peeling-for-alignment=
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-02-02 13:33 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-16 13:10 [gcc(refs/users/marxin/heads/options-Boolean-flag)] Implement Boolean flag for options Martin Liska
2021-02-02 13:33 Martin Liska
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).