1 ; Options for the language- and target-independent parts of the compiler.
3 ; Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009
4 ; Free Software Foundation, Inc.
6 ; This file is part of GCC.
8 ; GCC is free software; you can redistribute it and/or modify it under
9 ; the terms of the GNU General Public License as published by the Free
10 ; Software Foundation; either version 3, or (at your option) any later
13 ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
14 ; WARRANTY; without even the implied warranty of MERCHANTABILITY or
15 ; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
18 ; You should have received a copy of the GNU General Public License
19 ; along with GCC; see the file COPYING3. If not see
20 ; <http://www.gnu.org/licenses/>.
22 ; See the GCC internals manual (options.texi) for a description of this file's format.
24 ; Please try to keep this file in ASCII collating order.
28 Display this information
32 --help=<class> Display descriptions of a specific class of options. <class> is one or more of optimizers, target, warnings, undocumented, params
36 Alias for --help=target
38 ;; The following three entries are to work around the gcc driver
39 ;; program's insatiable desire to turn options starting with a
40 ;; double dash (--) into options starting with a dash f (-f).
52 --param <param>=<value> Set parameter <param> to value. See below for a complete list of parameters
58 Common Joined Separate UInteger
59 -G<number> Put global and static data smaller than <number> bytes into a special section (on some targets)
62 Common JoinedOrMissing Optimization
63 -O<number> Set optimization level to <number>
67 Optimize for space rather than speed
71 This switch is deprecated; use -Wextra instead
74 Common Var(warn_aggregate_return) Warning
75 Warn about returning structures, unions or arrays
78 Common Var(warn_array_bounds) Warning
79 Warn if an array is accessed out of bounds
82 Common Var(warn_attributes) Init(1) Warning
83 Warn about inappropriate attribute usage
86 Common Var(warn_cast_align) Warning
87 Warn about pointer casts which increase alignment
89 Wdeprecated-declarations
90 Common Var(warn_deprecated_decl) Init(1) Warning
91 Warn about uses of __attribute__((deprecated)) declarations
93 Wdisabled-optimization
94 Common Var(warn_disabled_optimization) Warning
95 Warn when an optimization pass is disabled
97 Wdisallowed-function-list=
98 Common RejectNegative Joined Warning
99 Warn on calls to these functions
102 Common Var(warnings_are_errors)
103 Treat all warnings as errors
107 Treat specified warning as error
111 Print extra (possibly unwanted) warnings
114 Common Var(flag_fatal_errors)
115 Exit on the first error occurred
118 Common RejectNegative Joined UInteger
119 -Wframe-larger-than=<number> Warn if a function's stack frame requires more than <number> bytes
122 Common Var(warn_inline) Warning
123 Warn when an inlined function cannot be inlined
126 Common RejectNegative Joined UInteger Warning
129 Common RejectNegative Joined UInteger Warning
130 -Wlarger-than=<number> Warn if an object is larger than <number> bytes
133 Common Warning Var(warn_logical_op)
134 Warn when a logical operator is suspicously always evaluating to true or false
136 Wunsafe-loop-optimizations
137 Common Var(warn_unsafe_loop_optimizations) Warning
138 Warn if the loop cannot be optimized due to nontrivial assumptions.
141 Common Var(warn_missing_noreturn) Warning
142 Warn about functions which might be candidates for __attribute__((noreturn))
145 Common Var(warn_mudflap) Init(1) Warning
146 Warn about constructs not instrumented by -fmudflap
149 Common Var(warn_overflow) Init(1) Warning
150 Warn about overflow in arithmetic expressions
153 Common Var(warn_packed) Warning
154 Warn when the packed attribute has no effect on struct layout
157 Common Var(warn_padded) Warning
158 Warn when padding is required to align structure members
161 Common Var(warn_shadow) Warning
162 Warn when one local variable shadows another
165 Common Var(warn_stack_protect) Warning
166 Warn when not issuing stack smashing protection for some reason
170 Warn about code which might break strict aliasing rules
173 Common Joined UInteger Var(warn_strict_aliasing) Init(-1) Warning
174 Warn about code which might break strict aliasing rules
178 Warn about optimizations that assume that signed overflow is undefined
181 Common Joined UInteger Var(warn_strict_overflow) Init(-1) Warning
182 Warn about optimizations that assume that signed overflow is undefined
185 Common Var(warn_switch) Warning
186 Warn about enumerated switches, with no default, missing a case
189 Common Var(warn_switch_default) Warning
190 Warn about enumerated switches missing a \"default:\" statement
193 Common Var(warn_switch_enum) Warning
194 Warn about all enumerated switches missing a specific case
197 Common Var(warn_system_headers) Warning
198 Do not suppress warnings from system headers
201 Common Var(warn_thread_safety) Warning
202 Warn about potential thread safety issues when the code is annotated with thread safety attributes
204 Wthread-unguarded-var
205 Common Var(warn_thread_unguarded_var) Init(1) Warning
206 Warn about shared variables not properly protected by locks specified in the attributes
208 Wthread-unguarded-func
209 Common Var(warn_thread_unguarded_func) Init(1) Warning
210 Warn about function calls not properly protected by locks specified in the attributes
212 Wthread-mismatched-lock-order
213 Common Var(warn_thread_mismatched_lock_order) Init(1) Warning
214 Warn about lock acquisition order inconsistent with what specified in the attributes
216 Wthread-mismatched-lock-acq-rel
217 Common Var(warn_thread_mismatched_lock_acq_rel) Init(1) Warning
218 Warn about mismatched lock acquisition and release
220 Wthread-reentrant-lock
221 Common Var(warn_thread_reentrant_lock) Init(1) Warning
222 Warn about a lock being acquired recursively
224 Wthread-unsupported-lock-name
225 Common Var(warn_unsupported_lock_name) Init(0) Warning
226 Warn about uses of unsupported lock names in attributes
229 Common Var(warn_type_limits) Init(-1) Warning
230 Warn if a comparison is always true or always false due to the limited range of the data type
233 Common Var(warn_uninitialized) Warning
234 Warn about uninitialized automatic variables
237 Common Var(warn_notreached) Warning
238 Warn about code that will never be executed
241 Common Var(warn_unused) Init(0) Warning
242 Enable all -Wunused- warnings
245 Common Var(warn_unused_function) Init(-1) Warning
246 Warn when a function is unused
249 Common Var(warn_unused_label) Init(-1) Warning
250 Warn when a label is unused
253 Common Var(warn_unused_parameter) Init(-1) Warning
254 Warn when a function parameter is unused
257 Common Var(warn_unused_value) Init(-1) Warning
258 Warn when an expression value is unused
261 Common Var(warn_unused_variable) Init(-1) Warning
262 Warn when a variable is unused
265 Common RejectNegative Var(warn_coverage_mismatch) Warning
266 Warn instead of error in case profiles in -fprofile-use do not match
270 -aux-info <file> Emit declaration information into <file>
283 -d<letters> Enable dumps from specific passes of the compiler
287 -dumpbase <file> Set the file basename to be used for dumps
289 ; The version of the C++ ABI in use. The following values are allowed:
291 ; 0: The version of the ABI believed most conformant with the C++ ABI
292 ; specification. This ABI may change as bugs are discovered and fixed.
293 ; Therefore, 0 will not necessarily indicate the same ABI in different
296 ; 1: The version of the ABI first used in G++ 3.2.
298 ; 2: The version of the ABI first used in G++ 3.4.
300 ; Additional positive integers will be assigned as new versions of
301 ; the ABI become the default version of the ABI.
303 Common Joined UInteger Var(flag_abi_version) Init(2)
306 Common Report Var(align_functions,0) Optimization UInteger
307 Align the start of functions
310 Common RejectNegative Joined UInteger
313 Common Report Var(align_jumps,0) Optimization UInteger
314 Align labels which are only reached by jumping
317 Common RejectNegative Joined UInteger
320 Common Report Var(align_labels,0) Optimization UInteger
324 Common RejectNegative Joined UInteger
327 Common Report Var(align_loops) Optimization UInteger
328 Align the start of loops
331 Common RejectNegative Joined UInteger
333 ; This flag is only tested if alias checking is enabled.
334 ; 0 if pointer arguments may alias each other. True in C.
335 ; 1 if pointer arguments may not alias each other but may alias
337 ; 2 if pointer arguments may not alias each other and may not
338 ; alias global variables.
339 ; 3 if pointer arguments may not alias anything. True in Fortran.
340 ; Set by the front end.
342 Common Report Var(flag_argument_noalias,0) Optimization
343 Specify that arguments may alias each other and globals
346 Common Report Var(flag_argument_noalias,1) VarExists Optimization
347 Assume arguments may alias globals but not each other
349 fargument-noalias-global
350 Common Report Var(flag_argument_noalias,2) VarExists Optimization
351 Assume arguments alias neither each other nor globals
353 fargument-noalias-anything
354 Common Report Var(flag_argument_noalias,3) VarExists Optimization
355 Assume arguments alias no other storage
357 fasynchronous-unwind-tables
358 Common Report Var(flag_asynchronous_unwind_tables) Optimization
359 Generate unwind tables that are exact at each instruction boundary
362 Common Report Var(flag_auto_inc_dec) Init(1)
363 Generate auto-inc/dec instructions
365 ; -fcheck-bounds causes gcc to generate array bounds checks.
366 ; For C, C++ and ObjC: defaults off.
367 ; For Java: defaults to on.
368 ; For Fortran: defaults to off.
370 Common Report Var(flag_bounds_check)
371 Generate code to check bounds before indexing arrays
374 Common Report Var(flag_branch_on_count_reg) Init(1) Optimization
375 Replace add, compare, branch with branch on count register
377 fbranch-probabilities
378 Common Report Var(flag_branch_probabilities) Optimization
379 Use profiling information for branch probabilities
381 fbranch-target-load-optimize
382 Common Report Var(flag_branch_target_load_optimize) Optimization
383 Perform branch target load optimization before prologue / epilogue threading
385 fbranch-target-load-optimize2
386 Common Report Var(flag_branch_target_load_optimize2) Optimization
387 Perform branch target load optimization after prologue / epilogue threading
390 Common Report Var(flag_btr_bb_exclusive) Optimization
391 Restrict target load migration not to re-use registers in any basic block
394 Common Joined RejectNegative
395 -fcall-saved-<register> Mark <register> as being preserved across functions
398 Common Joined RejectNegative
399 -fcall-used-<register> Mark <register> as being corrupted by function calls
401 ; Nonzero for -fcaller-saves: allocate values in regs that need to
402 ; be saved across function calls, if that produces overall better code.
403 ; Optional now, so people can test it.
405 Common Report Var(flag_caller_saves) Optimization
406 Save registers around function calls
409 Common Report Var(flag_check_data_deps)
410 Compare the results of several data dependence analyzers.
413 Common Report Var(flag_no_common,0) Optimization
414 Do not put uninitialized globals in the common section
417 Common Var(flag_conserve_stack) Optimization
418 Do not perform optimizations increasing noticeably stack usage
421 Common Report Var(flag_cprop_registers) Optimization
422 Perform a register copy-propagation optimization pass
425 Common Report Var(flag_crossjumping) Optimization
426 Perform cross-jumping optimization
429 Common Report Var(flag_cse_follow_jumps) Optimization
430 When running CSE, follow jumps to their targets
433 Common Report Var(flag_cse_skip_blocks) Optimization
434 When running CSE, follow conditional jumps
437 Common Report Var(flag_cx_limited_range) Optimization
438 Omit range reduction step when performing complex division
441 Common Report Var(flag_cx_fortran_rules) Optimization
442 Complex multiplication and division follow Fortran rules
445 Common Report Var(flag_data_sections) Optimization
446 Place data items into their own section
450 List all available debugging counters with their limits and counts.
453 Common RejectNegative Joined
454 -fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...] Set the debug counter limit.
457 Common Joined RejectNegative
458 Map one directory name to another in debug information
460 ; Nonzero for -fdefer-pop: don't pop args after each function call
461 ; instead save them up to pop many calls' args with one insns.
463 Common Report Var(flag_defer_pop) Optimization
464 Defer popping functions args from stack until later
467 Common Report Var(flag_delayed_branch) Optimization
468 Attempt to fill delay slots of branch instructions
470 fdelete-null-pointer-checks
471 Common Report Var(flag_delete_null_pointer_checks) Optimization
472 Delete useless null pointer checks
474 fdiagnostics-show-location=
475 Common Joined RejectNegative
476 -fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics
478 fdiagnostics-show-option
480 Amend appropriate diagnostic messages with the command line option that controls them
483 Common Joined RejectNegative
484 -fdump-<type> Dump various compiler internals to a file
487 Common Report Var(flag_dump_noaddr)
488 Suppress output of addresses in debugging dumps
491 Common Report Var(flag_dump_unnumbered) VarExists
492 Suppress output of instruction numbers, line number notes and addresses in debugging dumps
495 Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
496 Enable CFI tables via GAS assembler directives.
499 Common Report Var(flag_early_inlining) Init(1) Optimization
500 Perform early inlining
502 feliminate-dwarf2-dups
503 Common Report Var(flag_eliminate_dwarf2_dups)
504 Perform DWARF2 duplicate elimination
506 feliminate-unused-debug-symbols
507 Common Report Var(flag_debug_only_used_symbols)
508 Perform unused type elimination in debug info
510 feliminate-unused-debug-types
511 Common Report Var(flag_eliminate_unused_debug_types) Init(1)
512 Perform unused type elimination in debug info
514 femit-class-debug-always
515 Common Report Var(flag_emit_class_debug_always) Init(0)
516 Do not suppress C++ class debug information.
519 Common Report Var(flag_exceptions) Optimization
520 Enable exception handling
522 fexpensive-optimizations
523 Common Report Var(flag_expensive_optimizations) Optimization
524 Perform a number of minor, expensive optimizations
530 Common Report Var(flag_finite_math_only) Optimization
531 Assume no NaNs or infinities are generated
534 Common Joined RejectNegative
535 -ffixed-<register> Mark <register> as being unavailable to the compiler
538 Common Report Var(flag_float_store) Optimization
539 Don't allocate floats and doubles in extended-precision registers
543 Does nothing. Preserved for backward compatibility.
546 Common Report Var(flag_forward_propagate) Optimization
547 Perform a forward propagation pass on RTL
549 ; Nonzero means don't put addresses of constant functions in registers.
550 ; Used for compiling the Unix kernel, where strange substitutions are
551 ; done on the assembly output.
553 Common Report Var(flag_no_function_cse,0)
554 Allow function addresses to be held in registers
557 Common Report Var(flag_function_sections)
558 Place each function into its own section
561 Common Report Var(flag_gcse) Optimization
562 Perform global common subexpression elimination
565 Common Report Var(flag_gcse_lm) Init(1) Optimization
566 Perform enhanced load motion during global common subexpression elimination
569 Common Report Var(flag_gcse_sm) Init(0) Optimization
570 Perform store motion after global common subexpression elimination
573 Common Report Var(flag_gcse_las) Init(0) Optimization
574 Perform redundant load after store elimination in global common subexpression
578 Common Report Var(flag_gcse_after_reload) Optimization
579 Perform global common subexpression elimination after register allocation
582 ; This option is not documented yet as its semantics will change.
584 Common Report Var(flag_graphite)
585 Enable in and out of Graphite representation
588 Common Report Var(flag_loop_strip_mine) Optimization
589 Enable Loop Strip Mining transformation
592 Common Report Var(flag_loop_interchange) Optimization
593 Enable Loop Interchange transformation
596 Common Report Var(flag_loop_block) Optimization
597 Enable Loop Blocking transformation
599 ; This option is not documented as it does not perform any useful optimization.
601 Common Report Var(flag_graphite_identity) Optimization
602 Enable Graphite Identity transformation
604 fguess-branch-probability
605 Common Report Var(flag_guess_branch_prob) Optimization
606 Enable guessing of branch probabilities
608 ; Nonzero means ignore `#ident' directives. 0 means handle them.
609 ; Generate position-independent code for executables if possible
610 ; On SVR4 targets, it also controls whether or not to emit a
611 ; string identifying the compiler.
613 Common Report Var(flag_no_ident,0)
614 Process #ident directives
617 Common Report Var(flag_if_conversion) Optimization
618 Perform conversion of conditional jumps to branchless equivalents
621 Common Report Var(flag_if_conversion2) Optimization
622 Perform conversion of conditional jumps to conditional execution
624 ; -finhibit-size-directive inhibits output of .size for ELF.
625 ; This is used only for compiling crtstuff.c,
626 ; and it may be extended to other effects
627 ; needed for crtstuff.c on other systems.
628 finhibit-size-directive
629 Common Report Var(flag_inhibit_size_directive)
630 Do not generate .size directives
633 Common Report Var(flag_indirect_inlining)
634 Perform indirect inlining
636 ; Nonzero means that functions declared `inline' will be treated
637 ; as `static'. Prevents generation of zillions of copies of unused
638 ; static inline functions; instead, `inlines' are written out
639 ; only when actually used. Used in conjunction with -g. Also
640 ; does the right thing with #pragma interface.
642 Common Report Var(flag_no_inline,0) Init(0)
643 Pay attention to the \"inline\" keyword
645 finline-small-functions
646 Common Report Var(flag_inline_small_functions) Optimization
647 Integrate simple functions into their callers when code size is known to not growth
650 Common Report Var(flag_inline_functions) Optimization
651 Integrate simple functions into their callers
653 finline-functions-called-once
654 Common Report Var(flag_inline_functions_called_once) Init(1) Optimization
655 Integrate functions called once into their callers
658 Common RejectNegative Joined UInteger
661 Common RejectNegative Joined UInteger
662 -finline-limit=<number> Limit the size of inlined functions to <number>
664 finstrument-functions
665 Common Report Var(flag_instrument_function_entry_exit)
666 Instrument function entry and exit with profiling calls
668 finstrument-functions-exclude-function-list=
669 Common RejectNegative Joined
670 -finstrument-functions-exclude-function-list=name,... Do not instrument listed functions
672 finstrument-functions-exclude-file-list=
673 Common RejectNegative Joined
674 -finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files
677 Common Report Var(flag_ipa_cp) Optimization
678 Perform Interprocedural constant propagation
681 Common Report Var(flag_ipa_cp_clone) Optimization
682 Perform cloning to make Interprocedural constant propagation stronger
685 Common Report Var(flag_ipa_pure_const) Init(0) Optimization
686 Discover pure and const functions
689 Common Report Var(flag_ipa_pta) Init(0) Optimization
690 Perform interprocedural points-to analysis
693 Common Report Var(flag_ipa_reference) Init(0) Optimization
694 Discover readonly and non addressable static variables
697 Common Report Var(flag_ipa_type_escape) Init(0) Optimization
698 Type based escape and alias analysis
701 Common Report Var(flag_ipa_matrix_reorg) Optimization
702 Perform matrix layout flattening and transposing based
703 on profiling information.
706 Common Report Var(flag_ipa_struct_reorg)
707 Perform structure layout optimizations based
708 on profiling information.
711 Common Joined RejectNegative
712 -fira-algorithm=[CB|priority] Set the used IRA algorithm
715 Common Joined RejectNegative
716 -fira-region=[one|all|mixed] Set regions for IRA
719 Common Report Var(flag_ira_coalesce) Init(0)
720 Do optimistic coalescing.
722 fira-share-save-slots
723 Common Report Var(flag_ira_share_save_slots) Init(1)
724 Share slots for saving different hard registers.
726 fira-share-spill-slots
727 Common Report Var(flag_ira_share_spill_slots) Init(1)
728 Share stack slots for spilled pseudo-registers.
731 Common RejectNegative Joined UInteger
732 -fira-verbose=<number> Control IRA's level of diagnostic messages.
735 Common Report Var(flag_ivopts) Init(1) Optimization
736 Optimize induction variables on trees
739 Common Var(flag_jump_tables) Init(1) Optimization
740 Use jump tables for sufficiently large switch statements
742 fkeep-inline-functions
743 Common Report Var(flag_keep_inline_functions)
744 Generate code for functions even if they are fully inlined
747 Common Report Var(flag_keep_static_consts) Init(1)
748 Emit static const variables even if they are not used
751 Common Report Var(flag_leading_underscore) Init(-1)
752 Give external symbols a leading underscore
756 Does nothing. Preserved for backward compatibility.
759 Common Report Var(flag_errno_math) Init(1) Optimization
760 Set errno after built-in math functions
763 Common Report Var(mem_report)
764 Report on permanent memory allocation
766 ; This will attempt to merge constant section constants, if 1 only
767 ; string constants and constants from constant pool, if 2 also constant
770 Common Report Var(flag_merge_constants,2) Init(1) Optimization
771 Attempt to merge identical constants and constant variables
774 Common Report Var(flag_merge_constants,1) VarExists Optimization
775 Attempt to merge identical constants across compilation units
778 Common Report Var(flag_merge_debug_strings) Init(1)
779 Attempt to merge identical debug strings across compilation units
782 Common RejectNegative Joined UInteger
783 -fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping
786 Common Report Var(flag_modulo_sched) Optimization
787 Perform SMS based modulo scheduling before the first scheduling pass
789 fmodulo-sched-allow-regmoves
790 Common Report Var(flag_modulo_sched_allow_regmoves)
791 Perform SMS based modulo scheduling with register moves allowed
793 fmove-loop-invariants
794 Common Report Var(flag_move_loop_invariants) Init(1) Optimization
795 Move loop invariant computations out of loops
798 Common RejectNegative Report Var(flag_mudflap)
799 Add mudflap bounds-checking instrumentation for single-threaded program
802 Common RejectNegative Report VarExists Var(flag_mudflap,2)
803 Add mudflap bounds-checking instrumentation for multi-threaded program
806 Common RejectNegative Report Var(flag_mudflap_ignore_reads)
807 Ignore read operations when inserting mudflap instrumentation
810 Common Var(flag_dce) Init(1) Optimization
811 Use the RTL dead code elimination pass
814 Common Var(flag_dse) Init(1) Optimization
815 Use the RTL dead store elimination pass
817 freschedule-modulo-scheduled-loops
818 Common Report Var(flag_resched_modulo_sched) Optimization
819 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
822 Common Report Var(flag_non_call_exceptions) Optimization
823 Support synchronous non-call exceptions
826 Common Report Var(flag_omit_frame_pointer) Optimization
827 When possible do not generate stack frames
829 foptimize-register-move
830 Common Report Var(flag_regmove) Optimization
831 Do the full register move optimization pass
833 foptimize-sibling-calls
834 Common Report Var(flag_optimize_sibling_calls) Optimization
835 Optimize sibling and tail recursive calls
838 Common Report Var(pre_ipa_mem_report)
839 Report on memory allocation before interprocedural optimization
842 Common Report Var(post_ipa_mem_report)
843 Report on memory allocation before interprocedural optimization
846 Common Report Var(flag_pack_struct) Optimization
847 Pack structure members together without holes
850 Common RejectNegative Joined UInteger Optimization
851 -fpack-struct=<number> Set initial maximum structure member alignment
854 Common Report Var(flag_pcc_struct_return,1) VarExists
855 Return small aggregates in memory, not registers
858 Common Report Var(flag_peel_loops) Optimization
862 Common Report Var(flag_no_peephole,0) Optimization
863 Enable machine specific peephole optimizations
866 Common Report Var(flag_peephole2) Optimization
867 Enable an RTL peephole pass before sched2
870 Common Report Var(flag_pic,2)
871 Generate position-independent code if possible (large mode)
874 Common Report Var(flag_pie,2)
875 Generate position-independent code for executables if possible (large mode)
878 Common Report Var(flag_pic,1) VarExists
879 Generate position-independent code if possible (small mode)
882 Common Report Var(flag_pie,1) VarExists
883 Generate position-independent code for executables if possible (small mode)
885 fpredictive-commoning
886 Common Report Var(flag_predictive_commoning) Optimization
887 Run predictive commoning optimization.
889 fprefetch-loop-arrays
890 Common Report Var(flag_prefetch_loop_arrays) Optimization
891 Generate prefetch instructions, if available, for arrays in loops
894 Common Report Var(profile_flag)
895 Enable basic program profiling code
898 Common Report Var(profile_arc_flag)
899 Insert arc-based program profiling code
902 Common Joined RejectNegative
903 Set the top-level directory for storing the profile data.
904 The default is 'pwd'.
907 Common Report Var(flag_profile_correction)
908 Enable correction of flow inconsistent profile data input
912 Enable common options for generating profile info for profile feedback directed optimizations
915 Common Joined RejectNegative
916 Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=
919 Common Var(flag_profile_use)
920 Enable common options for performing profile feedback directed optimizations
923 Common Joined RejectNegative
924 Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=
927 Common Report Var(flag_profile_values)
928 Insert code to profile values of expressions
934 Common Joined RejectNegative
935 -frandom-seed=<string> Make compile reproducible using <string>
937 ; This switch causes the command line that was used to create an
938 ; object file to be recorded into the object file. The exact format
939 ; of this recording is target and binary file format dependent.
940 ; It is related to the -fverbose-asm switch, but that switch only
941 ; records information in the assembler output file as comments, so
942 ; they never reach the object file.
944 Common Report Var(flag_record_gcc_switches)
945 Record gcc command line switches in the object file.
948 Common Report Var(flag_pcc_struct_return,0) VarExists Optimization
949 Return small aggregates in registers
952 Common Report Var(flag_regmove) Optimization
953 Enables a register move optimization
956 Common Report Var(flag_rename_registers) Init(2) Optimization
957 Perform a register renaming optimization pass
960 Common Report Var(flag_reorder_blocks) Optimization
961 Reorder basic blocks to improve code placement
963 freorder-blocks-and-partition
964 Common Report Var(flag_reorder_blocks_and_partition) Optimization
965 Reorder basic blocks and partition into hot and cold sections
968 Common Report Var(flag_reorder_functions) Optimization
969 Reorder functions to improve code placement
971 frerun-cse-after-loop
972 Common Report Var(flag_rerun_cse_after_loop) Init(2) Optimization
973 Add a common subexpression elimination pass after loop optimizations
977 Does nothing. Preserved for backward compatibility.
980 Common Report Var(flag_rounding_math) Optimization
981 Disable optimizations that assume default FP rounding behavior
984 Common Report Var(flag_schedule_interblock) Init(1) Optimization
985 Enable scheduling across basic blocks
988 Common Report Var(flag_schedule_speculative) Init(1) Optimization
989 Allow speculative motion of non-loads
992 Common Report Var(flag_schedule_speculative_load) Optimization
993 Allow speculative motion of some loads
995 fsched-spec-load-dangerous
996 Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
997 Allow speculative motion of more loads
1000 Common RejectNegative Joined
1001 -fsched-verbose=<number> Set the verbosity level of the scheduler
1003 fsched2-use-superblocks
1004 Common Report Var(flag_sched2_use_superblocks) Optimization
1005 If scheduling post reload, do superblock scheduling
1008 Common Report Var(flag_sched2_use_traces) Optimization
1009 If scheduling post reload, do trace scheduling
1012 Common Report Var(flag_schedule_insns) Optimization
1013 Reschedule instructions before register allocation
1016 Common Report Var(flag_schedule_insns_after_reload) Optimization
1017 Reschedule instructions after register allocation
1019 ; This flag should be on when a target implements non-trivial
1020 ; scheduling hooks, maybe saving some information for its own sake.
1021 ; On IA64, for example, this is used for correct bundling.
1022 fselective-scheduling
1023 Common Report Var(flag_selective_scheduling) Optimization
1024 Schedule instructions using selective scheduling algorithm
1026 fselective-scheduling2
1027 Common Report Var(flag_selective_scheduling2) Optimization
1028 Run selective scheduling after reload
1030 fsel-sched-pipelining
1031 Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
1032 Perform software pipelining of inner loops during selective scheduling
1034 fsel-sched-pipelining-outer-loops
1035 Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
1036 Perform software pipelining of outer loops during selective scheduling
1038 fsel-sched-reschedule-pipelined
1039 Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
1040 Reschedule pipelined regions without pipelining
1042 ; sched_stalled_insns means that insns can be moved prematurely from the queue
1043 ; of stalled insns into the ready list.
1044 fsched-stalled-insns
1045 Common Report Var(flag_sched_stalled_insns) Optimization UInteger
1046 Allow premature scheduling of queued insns
1048 fsched-stalled-insns=
1049 Common RejectNegative Joined UInteger
1050 -fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled
1052 ; sched_stalled_insns_dep controls how many recently scheduled cycles will
1053 ; be examined for a dependency on a stalled insn that is candidate for
1054 ; premature removal from the queue of stalled insns into the ready list (has
1055 ; an effect only if the flag 'sched_stalled_insns' is set).
1056 fsched-stalled-insns-dep
1057 Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
1058 Set dependence distance checking in premature scheduling of queued insns
1060 fsched-stalled-insns-dep=
1061 Common RejectNegative Joined UInteger
1062 -fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns
1065 Common Report Var(flag_section_anchors) Optimization
1066 Access data in the same section from shared anchor points
1068 frtl-abstract-sequences
1069 Common Report Var(flag_rtl_seqabstr) Optimization
1070 Perform sequence abstraction optimization on RTL
1073 Common Report Var(flag_see) Init(0)
1074 Eliminate redundant sign extensions using LCM.
1077 Common C ObjC C++ ObjC++ Report Var(flag_show_column) Init(0)
1078 Show column numbers in diagnostics, when available. Default off
1081 Common Report Var(flag_signaling_nans) Optimization
1082 Disable optimizations observable by IEEE signaling NaNs
1085 Common Report Var(flag_signed_zeros) Init(1) Optimization
1086 Disable floating point optimizations that ignore the IEEE signedness of zero
1088 fsingle-precision-constant
1089 Common Report Var(flag_single_precision_constant) Optimization
1090 Convert floating point constants to single precision constants
1092 fsplit-ivs-in-unroller
1093 Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
1094 Split lifetimes of induction variables when loops are unrolled
1097 Common Report Var(flag_split_wide_types) Optimization
1098 Split wide types into independent registers
1100 fvariable-expansion-in-unroller
1101 Common Report Var(flag_variable_expansion_in_unroller) Optimization
1102 Apply variable expansion when loops are unrolled
1105 Common Report RejectNegative Joined
1106 -fstack-check=[no|generic|specific] Insert stack checking code into the program
1110 Insert stack checking code into the program. Same as -fstack-check=specific
1115 fstack-limit-register=
1116 Common RejectNegative Joined
1117 -fstack-limit-register=<register> Trap if the stack goes past <register>
1119 fstack-limit-symbol=
1120 Common RejectNegative Joined
1121 -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
1124 Common Report Var(flag_stack_protect, 1)
1125 Use propolice as a stack protection method
1127 fstack-protector-all
1128 Common Report RejectNegative Var(flag_stack_protect, 2) VarExists
1129 Use a stack protection method for every function
1133 Does nothing. Preserved for backward compatibility.
1135 ; Nonzero if we should do (language-dependent) alias analysis.
1136 ; Typically, this analysis will assume that expressions of certain
1137 ; types do not alias expressions of certain other types. Only used
1138 ; if alias analysis (in general) is enabled.
1140 Common Report Var(flag_strict_aliasing) Optimization
1141 Assume strict aliasing rules apply
1144 Common Report Var(flag_strict_overflow)
1145 Treat signed overflow as undefined
1148 Common Report Var(flag_syntax_only)
1149 Check for syntax errors, then stop
1152 Common Report Var(flag_test_coverage)
1153 Create data files needed by \"gcov\"
1156 Common Report Var(flag_thread_jumps) Optimization
1157 Perform jump threading optimizations
1160 Common Report Var(time_report)
1161 Report the time taken by each compiler pass
1164 Common Joined RejectNegative
1165 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model
1168 Common Report Var(flag_toplevel_reorder) Init(2) Optimization
1169 Reorder top level functions, variables, and asms
1172 Common Report Var(flag_tracer)
1173 Perform superblock formation via tail duplication
1175 ; Zero means that floating-point math operations cannot generate a
1176 ; (user-visible) trap. This is the case, for example, in nonstop
1177 ; IEEE 754 arithmetic.
1179 Common Report Var(flag_trapping_math) Init(1) Optimization
1180 Assume floating-point operations can trap
1183 Common Report Var(flag_trapv) Optimization
1184 Trap for signed overflow in addition, subtraction and multiplication
1187 Common Report Var(flag_tree_ccp) Optimization
1188 Enable SSA-CCP optimization on trees
1192 Does nothing. Preserved for backward compatibility.
1195 Common Report Var(flag_tree_ch) Optimization
1196 Enable loop header copying on trees
1199 Common Report Var(flag_tree_copyrename) Optimization
1200 Replace SSA temporaries with better names in copies
1203 Common Report Var(flag_tree_copy_prop) Optimization
1204 Enable copy propagation on trees
1206 ftree-store-copy-prop
1208 Does nothing. Preserved for backward compatibility.
1211 Common Report Var(flag_tree_cselim) Init(2) Optimization
1212 Transform condition stores into unconditional ones
1214 ftree-switch-conversion
1215 Common Report Var(flag_tree_switch_conversion) Optimization
1216 Perform conversions of switch initializations.
1219 Common Report Var(flag_tree_dce) Optimization
1220 Enable SSA dead code elimination optimization on trees
1222 ftree-dominator-opts
1223 Common Report Var(flag_tree_dom) Optimization
1224 Enable dominator optimizations
1227 Common Report Var(flag_tree_dse) Optimization
1228 Enable dead store elimination
1231 Common Report Var(flag_tree_fre) Optimization
1232 Enable Full Redundancy Elimination (FRE) on trees
1234 ftree-loop-distribution
1235 Common Report Var(flag_tree_loop_distribution) Optimization
1236 Enable loop distribution on trees
1239 Common Report Var(flag_tree_loop_im) Init(1) Optimization
1240 Enable loop invariant motion on trees
1243 Common Report Var(flag_tree_loop_linear) Optimization
1244 Enable linear loop transforms on trees
1247 Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
1248 Create canonical induction variables in loops
1251 Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
1252 Enable loop optimizations on tree level
1254 ftree-parallelize-loops=
1255 Common Report Joined UInteger Var(flag_tree_parallelize_loops) Init(1)
1256 Enable automatic parallelization of loops
1259 Common Report Var(flag_tree_pre) Optimization
1260 Enable SSA-PRE optimization on trees
1263 Common Report Var(flag_tree_reassoc) Init(1) Optimization
1264 Enable reassociation on tree level
1268 Does nothing. Preserved for backward compatibility.
1271 Common Report Var(flag_tree_sink) Optimization
1272 Enable SSA code sinking on trees
1275 Common Report Var(flag_tree_sra) Optimization
1276 Perform scalar replacement of aggregates
1279 Common Report Var(flag_tree_ter) Init(1) Optimization
1280 Replace temporary expressions in the SSA->normal pass
1283 Common Report Var(flag_tree_live_range_split) Optimization
1284 Perform live range splitting during the SSA->normal pass
1287 Common Report Var(flag_tree_vrp) Init(0) Optimization
1288 Perform Value Range Propagation on trees
1291 Common Report Var(flag_unit_at_a_time) Init(1) Optimization
1292 Compile whole compilation unit at a time
1295 Common Report Var(flag_unroll_loops) Optimization
1296 Perform loop unrolling when iteration count is known
1299 Common Report Var(flag_unroll_all_loops) Optimization
1300 Perform loop unrolling for all loops
1302 ; Nonzero means that loop optimizer may assume that the induction variables
1303 ; that control loops do not overflow and that the loops with nontrivial
1304 ; exit condition are not infinite
1305 funsafe-loop-optimizations
1306 Common Report Var(flag_unsafe_loop_optimizations) Optimization
1307 Allow loop optimizations to assume that the loops behave in normal way
1310 Common Report Var(flag_associative_math)
1311 Allow optimization for floating-point arithmetic which may change the
1312 result of the operation due to rounding.
1315 Common Report Var(flag_reciprocal_math)
1316 Same as -fassociative-math for expressions which include division.
1318 ; Nonzero means that unsafe floating-point math optimizations are allowed
1319 ; for the sake of speed. IEEE compliance is not guaranteed, and operations
1320 ; are allowed to assume that their arguments and results are "normal"
1321 ; (e.g., nonnegative for SQRT).
1322 funsafe-math-optimizations
1323 Common Report Var(flag_unsafe_math_optimizations) Optimization
1324 Allow math optimizations that may violate IEEE or ISO standards
1327 Common Report Var(flag_unswitch_loops) Optimization
1328 Perform loop unswitching
1331 Common Report Var(flag_unwind_tables) Optimization
1332 Just generate unwind tables for exception handling
1335 Common Report Var(flag_var_tracking) VarExists Optimization
1336 Perform variable tracking
1338 fvar-tracking-uninit
1339 Common Report Var(flag_var_tracking_uninit) Optimization
1340 Perform variable tracking and also tag variables that are uninitialized
1343 Common Report Var(flag_tree_vectorize) Optimization
1344 Enable loop vectorization on trees
1347 Common Report Var(flag_vect_cost_model) Optimization
1348 Enable use of cost model in vectorization
1350 ftree-vect-loop-version
1351 Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization
1352 Enable loop versioning when doing loop vectorization on trees
1354 ftree-vectorizer-verbose=
1355 Common RejectNegative Joined
1356 -ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer
1359 Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
1360 Enable copy propagation of scalar-evolution information.
1362 ; -fverbose-asm causes extra commentary information to be produced in
1363 ; the generated assembly code (to make it more readable). This option
1364 ; is generally only of use to those who actually need to read the
1365 ; generated assembly code (perhaps while debugging the compiler itself).
1366 ; -fno-verbose-asm, the default, causes the extra information
1367 ; to not be added and is useful when comparing two assembler files.
1369 Common Report Var(flag_verbose_asm)
1370 Add extra commentary to assembler output
1373 Common Joined RejectNegative
1374 -fvisibility=[default|internal|hidden|protected] Set the default symbol visibility
1378 Common Report Var(flag_value_profile_transformations) Optimization
1379 Use expression value profiles in optimizations
1382 Common Report Var(flag_web) Init(2) Optimization
1383 Construct webs and split unrelated uses of single variable
1385 ftree-builtin-call-dce
1386 Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
1387 Enable conditional dead code elimination for builtin calls
1390 Common Report Var(flag_whole_program) Init(0) Optimization
1391 Perform whole program optimizations
1394 Common Report Var(flag_wrapv) Optimization
1395 Assume signed arithmetic overflow wraps around
1397 fzero-initialized-in-bss
1398 Common Report Var(flag_zero_initialized_in_bss) Init(1)
1399 Put zero initialized data in the bss section
1402 Common JoinedOrMissing
1403 Generate debug information in default format
1406 Common JoinedOrMissing Negative(gdwarf-2)
1407 Generate debug information in COFF format
1410 Common JoinedOrMissing Negative(gstabs)
1411 Generate debug information in DWARF v2 format
1414 Common JoinedOrMissing
1415 Generate debug information in default extended format
1418 Common JoinedOrMissing Negative(gstabs+)
1419 Generate debug information in STABS format
1422 Common JoinedOrMissing Negative(gvms)
1423 Generate debug information in extended STABS format
1426 Common JoinedOrMissing Negative(gxcoff)
1427 Generate debug information in VMS format
1430 Common JoinedOrMissing Negative(gxcoff+)
1431 Generate debug information in XCOFF format
1434 Common JoinedOrMissing Negative(gcoff)
1435 Generate debug information in extended XCOFF format
1438 Common Joined Separate
1439 -o <file> Place output into <file>
1442 Common Var(profile_flag)
1443 Enable function profiling
1446 Common Var(pedantic)
1447 Issue warnings needed for strict compliance to the standard
1451 Like -pedantic but issue them as errors
1454 Common Var(quiet_flag)
1455 Do not display functions compiled or elapsed time
1458 Common Var(version_flag)
1459 Display the compiler's version
1462 Common Var(inhibit_warnings)
1466 Common RejectNegative Negative(pie)
1467 Create a shared library
1470 Common RejectNegative Negative(shared)
1471 Create a position independent executable
1473 ; This comment is to ensure we retain the blank line above.