1 ; Options for the language- and target-independent parts of the compiler.
3 ; Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
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 four 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).
55 --param <param>=<value> Set parameter <param> to value. See below for a complete list of parameters
61 Common Joined Separate UInteger
62 -G<number> Put global and static data smaller than <number> bytes into a special section (on some targets)
65 Common JoinedOrMissing Optimization
66 -O<number> Set optimization level to <number>
70 Optimize for space rather than speed
73 Common RejectNegative Var(extra_warnings) Warning
74 This switch is deprecated; use -Wextra instead
77 Common Var(warn_aggregate_return) Warning
78 Warn about returning structures, unions or arrays
81 Common Var(warn_array_bounds) Warning
82 Warn if an array is accessed out of bounds
85 Common Var(warn_attributes) Init(1) Warning
86 Warn about inappropriate attribute usage
89 Common Var(warn_cast_align) Warning
90 Warn about pointer casts which increase alignment
92 Wdeprecated-declarations
93 Common Var(warn_deprecated_decl) Init(1) Warning
94 Warn about uses of __attribute__((deprecated)) declarations
96 Wdisabled-optimization
97 Common Var(warn_disabled_optimization) Warning
98 Warn when an optimization pass is disabled
101 Common Var(warnings_are_errors)
102 Treat all warnings as errors
106 Treat specified warning as error
109 Common Var(extra_warnings) Warning
110 Print extra (possibly unwanted) warnings
113 Common Var(flag_fatal_errors)
114 Exit on the first error occurred
117 Common RejectNegative Joined UInteger
118 -Wframe-larger-than=<number> Warn if a function's stack frame requires more than <number> bytes
121 Common Var(warn_inline) Warning
122 Warn when an inlined function cannot be inlined
125 Common RejectNegative Joined UInteger Warning Undocumented
128 Common RejectNegative Joined UInteger Warning
129 -Wlarger-than=<number> Warn if an object is larger than <number> bytes
131 Wunsafe-loop-optimizations
132 Common Var(warn_unsafe_loop_optimizations) Warning
133 Warn if the loop cannot be optimized due to nontrivial assumptions.
136 Common Var(warn_missing_noreturn) Warning
137 Warn about functions which might be candidates for __attribute__((noreturn))
140 Common Var(warn_mudflap) Init(1) Warning
141 Warn about constructs not instrumented by -fmudflap
144 Common Var(warn_overflow) Init(1) Warning
145 Warn about overflow in arithmetic expressions
148 Common Var(warn_packed) Warning
149 Warn when the packed attribute has no effect on struct layout
152 Common Var(warn_padded) Warning
153 Warn when padding is required to align structure members
156 Common Var(warn_shadow) Warning
157 Warn when one local variable shadows another
160 Common Var(warn_stack_protect) Warning
161 Warn when not issuing stack smashing protection for some reason
165 Warn about code which might break strict aliasing rules
168 Common Joined UInteger Var(warn_strict_aliasing) Init(-1) Warning
169 Warn about code which might break strict aliasing rules
173 Warn about optimizations that assume that signed overflow is undefined
176 Common Joined UInteger Var(warn_strict_overflow) Init(-1) Warning
177 Warn about optimizations that assume that signed overflow is undefined
180 Common Var(warn_switch) Warning
181 Warn about enumerated switches, with no default, missing a case
184 Common Var(warn_switch_default) Warning
185 Warn about enumerated switches missing a \"default:\" statement
188 Common Var(warn_switch_enum) Warning
189 Warn about all enumerated switches missing a specific case
192 Common Var(warn_system_headers) Warning
193 Do not suppress warnings from system headers
196 Common Var(warn_type_limits) Init(-1) Warning
197 Warn if a comparison is always true or always false due to the limited range of the data type
200 Common Var(warn_uninitialized) Init(-1) Warning
201 Warn about uninitialized automatic variables
205 Does nothing. Preserved for backward compatibility.
208 Common Var(warn_unused) Init(0) Warning
209 Enable all -Wunused- warnings
212 Common Var(warn_unused_function) Init(-1) Warning
213 Warn when a function is unused
216 Common Var(warn_unused_label) Init(-1) Warning
217 Warn when a label is unused
220 Common Var(warn_unused_parameter) Init(-1) Warning
221 Warn when a function parameter is unused
224 Common Var(warn_unused_value) Init(-1) Warning
225 Warn when an expression value is unused
228 Common Var(warn_unused_variable) Init(-1) Warning
229 Warn when a variable is unused
232 Common RejectNegative Var(warn_coverage_mismatch) Warning
233 Warn instead of error in case profiles in -fprofile-use do not match
237 -aux-info <file> Emit declaration information into <file>
250 -d<letters> Enable dumps from specific passes of the compiler
254 -dumpbase <file> Set the file basename to be used for dumps
258 -dumpdir <dir> Set the directory name to be used for dumps
260 ; The version of the C++ ABI in use. The following values are allowed:
262 ; 0: The version of the ABI believed most conformant with the C++ ABI
263 ; specification. This ABI may change as bugs are discovered and fixed.
264 ; Therefore, 0 will not necessarily indicate the same ABI in different
267 ; 1: The version of the ABI first used in G++ 3.2.
269 ; 2: The version of the ABI first used in G++ 3.4 (and current default).
271 ; 3: The version of the ABI that fixes the missing underscore
272 ; in template non-type arguments of pointer type.
274 ; 4: The version of the ABI that introduces unambiguous mangling of
277 ; Additional positive integers will be assigned as new versions of
278 ; the ABI become the default version of the ABI.
280 Common Joined UInteger Var(flag_abi_version) Init(2)
283 Common Report Var(align_functions,0) Optimization UInteger
284 Align the start of functions
287 Common RejectNegative Joined UInteger
290 Common Report Var(align_jumps,0) Optimization UInteger
291 Align labels which are only reached by jumping
294 Common RejectNegative Joined UInteger
297 Common Report Var(align_labels,0) Optimization UInteger
301 Common RejectNegative Joined UInteger
304 Common Report Var(align_loops) Optimization UInteger
305 Align the start of loops
308 Common RejectNegative Joined UInteger
312 Does nothing. Preserved for backward compatibility.
316 Does nothing. Preserved for backward compatibility.
318 fargument-noalias-global
320 Does nothing. Preserved for backward compatibility.
322 fargument-noalias-anything
324 Does nothing. Preserved for backward compatibility.
326 fasynchronous-unwind-tables
327 Common Report Var(flag_asynchronous_unwind_tables) Optimization
328 Generate unwind tables that are exact at each instruction boundary
331 Common Report Var(flag_auto_inc_dec) Init(1)
332 Generate auto-inc/dec instructions
334 ; -fcheck-bounds causes gcc to generate array bounds checks.
335 ; For C, C++ and ObjC: defaults off.
336 ; For Java: defaults to on.
337 ; For Fortran: defaults to off.
339 Common Report Var(flag_bounds_check)
340 Generate code to check bounds before indexing arrays
343 Common Report Var(flag_branch_on_count_reg) Init(1) Optimization
344 Replace add, compare, branch with branch on count register
346 fbranch-probabilities
347 Common Report Var(flag_branch_probabilities) Optimization
348 Use profiling information for branch probabilities
350 fbranch-target-load-optimize
351 Common Report Var(flag_branch_target_load_optimize) Optimization
352 Perform branch target load optimization before prologue / epilogue threading
354 fbranch-target-load-optimize2
355 Common Report Var(flag_branch_target_load_optimize2) Optimization
356 Perform branch target load optimization after prologue / epilogue threading
359 Common Report Var(flag_btr_bb_exclusive) Optimization
360 Restrict target load migration not to re-use registers in any basic block
363 Common Joined RejectNegative
364 -fcall-saved-<register> Mark <register> as being preserved across functions
367 Common Joined RejectNegative
368 -fcall-used-<register> Mark <register> as being corrupted by function calls
370 ; Nonzero for -fcaller-saves: allocate values in regs that need to
371 ; be saved across function calls, if that produces overall better code.
372 ; Optional now, so people can test it.
374 Common Report Var(flag_caller_saves) Optimization
375 Save registers around function calls
378 Common Report Var(flag_check_data_deps)
379 Compare the results of several data dependence analyzers.
382 Common Report Var(flag_no_common,0) Optimization
383 Do not put uninitialized globals in the common section
386 Common JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
387 -fcompare-debug[=<opts>] Compile with and without e.g. -gtoggle, and compare the final-insns dump
389 fcompare-debug-second
390 Common RejectNegative Var(flag_compare_debug)
391 Run only the second compilation of -fcompare-debug
394 Common Var(flag_conserve_stack) Optimization
395 Do not perform optimizations increasing noticeably stack usage
398 Common Report Var(flag_cprop_registers) Optimization
399 Perform a register copy-propagation optimization pass
402 Common Report Var(flag_crossjumping) Optimization
403 Perform cross-jumping optimization
406 Common Report Var(flag_cse_follow_jumps) Optimization
407 When running CSE, follow jumps to their targets
411 Does nothing. Preserved for backward compatibility.
414 Common Report Var(flag_cx_limited_range) Optimization
415 Omit range reduction step when performing complex division
418 Common Report Var(flag_cx_fortran_rules) Optimization
419 Complex multiplication and division follow Fortran rules
422 Common Report Var(flag_data_sections) Optimization
423 Place data items into their own section
427 List all available debugging counters with their limits and counts.
430 Common RejectNegative Joined
431 -fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...] Set the debug counter limit.
434 Common Joined RejectNegative
435 Map one directory name to another in debug information
437 ; Nonzero for -fdefer-pop: don't pop args after each function call
438 ; instead save them up to pop many calls' args with one insns.
440 Common Report Var(flag_defer_pop) Optimization
441 Defer popping functions args from stack until later
444 Common Report Var(flag_delayed_branch) Optimization
445 Attempt to fill delay slots of branch instructions
447 fdelete-null-pointer-checks
448 Common Report Var(flag_delete_null_pointer_checks) Init(1) Optimization
449 Delete useless null pointer checks
451 fdiagnostics-show-location=
452 Common Joined RejectNegative
453 -fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics
455 fdiagnostics-show-option
457 Amend appropriate diagnostic messages with the command line option that controls them
460 Common Joined RejectNegative
461 -fdump-<type> Dump various compiler internals to a file
464 Common RejectNegative Joined Var(flag_dump_final_insns)
465 -fdump-final-insns=filename Dump to filename the insns at the end of translation
468 Common Report Var(flag_dump_noaddr)
469 Suppress output of addresses in debugging dumps
472 Common Report Var(flag_dump_unnumbered) VarExists
473 Suppress output of instruction numbers, line number notes and addresses in debugging dumps
475 fdump-unnumbered-links
476 Common Report Var(flag_dump_unnumbered_links) VarExists
477 Suppress output of previous and next insn numbers in debugging dumps
480 Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
481 Enable CFI tables via GAS assembler directives.
484 Common Report Var(flag_early_inlining) Init(1) Optimization
485 Perform early inlining
487 feliminate-dwarf2-dups
488 Common Report Var(flag_eliminate_dwarf2_dups)
489 Perform DWARF2 duplicate elimination
492 Common Report Var(flag_ipa_sra) Init(0) Optimization
493 Perform interprocedural reduction of aggregates
495 feliminate-unused-debug-symbols
496 Common Report Var(flag_debug_only_used_symbols)
497 Perform unused type elimination in debug info
499 feliminate-unused-debug-types
500 Common Report Var(flag_eliminate_unused_debug_types) Init(1)
501 Perform unused type elimination in debug info
503 femit-class-debug-always
504 Common Report Var(flag_emit_class_debug_always) Init(0)
505 Do not suppress C++ class debug information.
508 Common Report Var(flag_enable_icf_debug)
509 Generate debug information to support Identical Code Folding (ICF)
512 Common Report Var(flag_exceptions) Optimization
513 Enable exception handling
515 fexpensive-optimizations
516 Common Report Var(flag_expensive_optimizations) Optimization
517 Perform a number of minor, expensive optimizations
520 Common Joined RejectNegative
521 -fexcess-precision=[fast|standard] Specify handling of excess floating-point precision
527 Common Report Var(flag_finite_math_only) Optimization
528 Assume no NaNs or infinities are generated
531 Common Joined RejectNegative
532 -ffixed-<register> Mark <register> as being unavailable to the compiler
535 Common Report Var(flag_float_store) Optimization
536 Don't allocate floats and doubles in extended-precision registers
540 Does nothing. Preserved for backward compatibility.
543 Common Report Var(flag_forward_propagate) Optimization
544 Perform a forward propagation pass on RTL
546 ; Nonzero means don't put addresses of constant functions in registers.
547 ; Used for compiling the Unix kernel, where strange substitutions are
548 ; done on the assembly output.
550 Common Report Var(flag_no_function_cse,0)
551 Allow function addresses to be held in registers
554 Common Report Var(flag_function_sections)
555 Place each function into its own section
558 Common Report Var(flag_gcse) Optimization
559 Perform global common subexpression elimination
562 Common Report Var(flag_gcse_lm) Init(1) Optimization
563 Perform enhanced load motion during global common subexpression elimination
566 Common Report Var(flag_gcse_sm) Init(0) Optimization
567 Perform store motion after global common subexpression elimination
570 Common Report Var(flag_gcse_las) Init(0) Optimization
571 Perform redundant load after store elimination in global common subexpression
575 Common Report Var(flag_gcse_after_reload) Optimization
576 Perform global common subexpression elimination after register allocation
579 ; This option is not documented yet as its semantics will change.
581 Common Report Var(flag_graphite)
582 Enable in and out of Graphite representation
585 Common Report Var(flag_graphite_identity) Optimization
586 Enable Graphite Identity transformation
588 floop-parallelize-all
589 Common Report Var(flag_loop_parallelize_all) Optimization
590 Mark all loops as parallel
593 Common Report Var(flag_loop_strip_mine) Optimization
594 Enable Loop Strip Mining transformation
597 Common Report Var(flag_loop_interchange) Optimization
598 Enable Loop Interchange transformation
601 Common Report Var(flag_loop_block) Optimization
602 Enable Loop Blocking 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.
723 Common Report Var(flag_ira_loop_pressure)
724 Use IRA based register pressure calculation
725 in RTL loop optimizations.
727 fira-share-save-slots
728 Common Report Var(flag_ira_share_save_slots) Init(1)
729 Share slots for saving different hard registers.
731 fira-share-spill-slots
732 Common Report Var(flag_ira_share_spill_slots) Init(1)
733 Share stack slots for spilled pseudo-registers.
736 Common RejectNegative Joined UInteger
737 -fira-verbose=<number> Control IRA's level of diagnostic messages.
740 Common Report Var(flag_ivopts) Init(1) Optimization
741 Optimize induction variables on trees
744 Common Var(flag_jump_tables) Init(1) Optimization
745 Use jump tables for sufficiently large switch statements
747 fkeep-inline-functions
748 Common Report Var(flag_keep_inline_functions)
749 Generate code for functions even if they are fully inlined
752 Common Report Var(flag_keep_static_consts) Init(1)
753 Emit static const variables even if they are not used
756 Common Report Var(flag_leading_underscore) Init(-1)
757 Give external symbols a leading underscore
761 Does nothing. Preserved for backward compatibility.
765 Enable link-time optimization.
767 ; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
768 flto-compression-level=
769 Common Joined UInteger Var(flag_lto_compression_level) Init(-1)
770 -flto-compression-level=<number> Use zlib compression level <number> for IL
773 Common Report Var(flag_lto_report) Init(0) Optimization
774 Report various link-time optimization statistics
777 Common Report Var(flag_errno_math) Init(1) Optimization
778 Set errno after built-in math functions
781 Common Report Var(mem_report)
782 Report on permanent memory allocation
784 ; This will attempt to merge constant section constants, if 1 only
785 ; string constants and constants from constant pool, if 2 also constant
788 Common Report Var(flag_merge_constants,2) Init(1) Optimization
789 Attempt to merge identical constants and constant variables
792 Common Report Var(flag_merge_constants,1) VarExists Optimization
793 Attempt to merge identical constants across compilation units
796 Common Report Var(flag_merge_debug_strings) Init(1)
797 Attempt to merge identical debug strings across compilation units
800 Common RejectNegative Joined UInteger
801 -fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping
804 Common Report Var(flag_modulo_sched) Optimization
805 Perform SMS based modulo scheduling before the first scheduling pass
807 fmodulo-sched-allow-regmoves
808 Common Report Var(flag_modulo_sched_allow_regmoves)
809 Perform SMS based modulo scheduling with register moves allowed
811 fmove-loop-invariants
812 Common Report Var(flag_move_loop_invariants) Init(1) Optimization
813 Move loop invariant computations out of loops
816 Common RejectNegative Report Var(flag_mudflap)
817 Add mudflap bounds-checking instrumentation for single-threaded program
820 Common RejectNegative Report VarExists Var(flag_mudflap,2)
821 Add mudflap bounds-checking instrumentation for multi-threaded program
824 Common RejectNegative Report Var(flag_mudflap_ignore_reads)
825 Ignore read operations when inserting mudflap instrumentation
828 Common Var(flag_dce) Init(1) Optimization
829 Use the RTL dead code elimination pass
832 Common Var(flag_dse) Init(1) Optimization
833 Use the RTL dead store elimination pass
835 freschedule-modulo-scheduled-loops
836 Common Report Var(flag_resched_modulo_sched) Optimization
837 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
840 Common Report Var(flag_non_call_exceptions) Optimization
841 Support synchronous non-call exceptions
844 Common Report Var(flag_omit_frame_pointer) Optimization
845 When possible do not generate stack frames
847 foptimize-register-move
848 Common Report Var(flag_regmove) Optimization
849 Do the full register move optimization pass
851 foptimize-sibling-calls
852 Common Report Var(flag_optimize_sibling_calls) Optimization
853 Optimize sibling and tail recursive calls
856 Common Report Var(pre_ipa_mem_report)
857 Report on memory allocation before interprocedural optimization
860 Common Report Var(post_ipa_mem_report)
861 Report on memory allocation before interprocedural optimization
864 Common Report Var(flag_pack_struct) Optimization
865 Pack structure members together without holes
868 Common RejectNegative Joined UInteger Optimization
869 -fpack-struct=<number> Set initial maximum structure member alignment
872 Common Report Var(flag_pcc_struct_return,1) VarExists
873 Return small aggregates in memory, not registers
876 Common Report Var(flag_peel_loops) Optimization
880 Common Report Var(flag_no_peephole,0) Optimization
881 Enable machine specific peephole optimizations
884 Common Report Var(flag_peephole2) Optimization
885 Enable an RTL peephole pass before sched2
888 Common Report Var(flag_pic,2)
889 Generate position-independent code if possible (large mode)
892 Common Report Var(flag_pie,2)
893 Generate position-independent code for executables if possible (large mode)
896 Common Report Var(flag_pic,1) VarExists
897 Generate position-independent code if possible (small mode)
900 Common Report Var(flag_pie,1) VarExists
901 Generate position-independent code for executables if possible (small mode)
904 Common Joined RejectNegative
905 Specify a plugin to load
908 Common Joined RejectNegative
909 -fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>
911 fpredictive-commoning
912 Common Report Var(flag_predictive_commoning) Optimization
913 Run predictive commoning optimization.
915 fprefetch-loop-arrays
916 Common Report Var(flag_prefetch_loop_arrays) Optimization
917 Generate prefetch instructions, if available, for arrays in loops
920 Common Report Var(profile_flag)
921 Enable basic program profiling code
924 Common Report Var(profile_arc_flag)
925 Insert arc-based program profiling code
928 Common Joined RejectNegative
929 Set the top-level directory for storing the profile data.
930 The default is 'pwd'.
933 Common Report Var(flag_profile_correction)
934 Enable correction of flow inconsistent profile data input
938 Enable common options for generating profile info for profile feedback directed optimizations
941 Common Joined RejectNegative
942 Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=
945 Common Var(flag_profile_use)
946 Enable common options for performing profile feedback directed optimizations
949 Common Joined RejectNegative
950 Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=
953 Common Report Var(flag_profile_values)
954 Insert code to profile values of expressions
960 Common Joined RejectNegative
961 -frandom-seed=<string> Make compile reproducible using <string>
963 ; This switch causes the command line that was used to create an
964 ; object file to be recorded into the object file. The exact format
965 ; of this recording is target and binary file format dependent.
966 ; It is related to the -fverbose-asm switch, but that switch only
967 ; records information in the assembler output file as comments, so
968 ; they never reach the object file.
970 Common Report Var(flag_record_gcc_switches)
971 Record gcc command line switches in the object file.
974 Common Report Var(flag_pcc_struct_return,0) VarExists Optimization
975 Return small aggregates in registers
978 Common Report Var(flag_regmove) Optimization
979 Enables a register move optimization
982 Common Report Var(flag_rename_registers) Init(2) Optimization
983 Perform a register renaming optimization pass
986 Common Report Var(flag_reorder_blocks) Optimization
987 Reorder basic blocks to improve code placement
989 freorder-blocks-and-partition
990 Common Report Var(flag_reorder_blocks_and_partition) Optimization
991 Reorder basic blocks and partition into hot and cold sections
994 Common Report Var(flag_reorder_functions) Optimization
995 Reorder functions to improve code placement
997 frerun-cse-after-loop
998 Common Report Var(flag_rerun_cse_after_loop) Init(2) Optimization
999 Add a common subexpression elimination pass after loop optimizations
1003 Does nothing. Preserved for backward compatibility.
1006 Common Report Var(flag_rounding_math) Optimization
1007 Disable optimizations that assume default FP rounding behavior
1010 Common Report Var(flag_schedule_interblock) Init(1) Optimization
1011 Enable scheduling across basic blocks
1014 Common Report Var(flag_sched_pressure) Init(0) Optimization
1015 Enable register pressure sensitive insn scheduling
1018 Common Report Var(flag_schedule_speculative) Init(1) Optimization
1019 Allow speculative motion of non-loads
1022 Common Report Var(flag_schedule_speculative_load) Optimization
1023 Allow speculative motion of some loads
1025 fsched-spec-load-dangerous
1026 Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
1027 Allow speculative motion of more loads
1030 Common RejectNegative Joined
1031 -fsched-verbose=<number> Set the verbosity level of the scheduler
1033 fsched2-use-superblocks
1034 Common Report Var(flag_sched2_use_superblocks) Optimization
1035 If scheduling post reload, do superblock scheduling
1039 Does nothing. Preserved for backward compatibility.
1042 Common Report Var(flag_schedule_insns) Optimization
1043 Reschedule instructions before register allocation
1046 Common Report Var(flag_schedule_insns_after_reload) Optimization
1047 Reschedule instructions after register allocation
1049 ; This flag should be on when a target implements non-trivial
1050 ; scheduling hooks, maybe saving some information for its own sake.
1051 ; On IA64, for example, this is used for correct bundling.
1052 fselective-scheduling
1053 Common Report Var(flag_selective_scheduling) Optimization
1054 Schedule instructions using selective scheduling algorithm
1056 fselective-scheduling2
1057 Common Report Var(flag_selective_scheduling2) Optimization
1058 Run selective scheduling after reload
1060 fsel-sched-pipelining
1061 Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
1062 Perform software pipelining of inner loops during selective scheduling
1064 fsel-sched-pipelining-outer-loops
1065 Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
1066 Perform software pipelining of outer loops during selective scheduling
1068 fsel-sched-reschedule-pipelined
1069 Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
1070 Reschedule pipelined regions without pipelining
1072 ; sched_stalled_insns means that insns can be moved prematurely from the queue
1073 ; of stalled insns into the ready list.
1074 fsched-stalled-insns
1075 Common Report Var(flag_sched_stalled_insns) Optimization UInteger
1076 Allow premature scheduling of queued insns
1078 fsched-stalled-insns=
1079 Common RejectNegative Joined UInteger
1080 -fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled
1082 ; sched_stalled_insns_dep controls how many recently scheduled cycles will
1083 ; be examined for a dependency on a stalled insn that is candidate for
1084 ; premature removal from the queue of stalled insns into the ready list (has
1085 ; an effect only if the flag 'sched_stalled_insns' is set).
1086 fsched-stalled-insns-dep
1087 Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
1088 Set dependence distance checking in premature scheduling of queued insns
1090 fsched-stalled-insns-dep=
1091 Common RejectNegative Joined UInteger
1092 -fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns
1094 fsched-group-heuristic
1095 Common Report Var(flag_sched_group_heuristic) Init(1) Optimization
1096 Enable the group heuristic in the scheduler
1098 fsched-critical-path-heuristic
1099 Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization
1100 Enable the critical path heuristic in the scheduler
1102 fsched-spec-insn-heuristic
1103 Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
1104 Enable the speculative instruction heuristic in the scheduler
1106 fsched-rank-heuristic
1107 Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization
1108 Enable the rank heuristic in the scheduler
1110 fsched-last-insn-heuristic
1111 Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization
1112 Enable the last instruction heuristic in the scheduler
1114 fsched-dep-count-heuristic
1115 Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization
1116 Enable the dependent count heuristic in the scheduler
1119 Common Report Var(flag_section_anchors) Optimization
1120 Access data in the same section from shared anchor points
1124 Does nothing. Preserved for backward compatibility.
1127 Common C ObjC C++ ObjC++ Report Var(flag_show_column) Init(1)
1128 Show column numbers in diagnostics, when available. Default on
1131 Common Report Var(flag_signaling_nans) Optimization
1132 Disable optimizations observable by IEEE signaling NaNs
1135 Common Report Var(flag_signed_zeros) Init(1) Optimization
1136 Disable floating point optimizations that ignore the IEEE signedness of zero
1138 fsingle-precision-constant
1139 Common Report Var(flag_single_precision_constant) Optimization
1140 Convert floating point constants to single precision constants
1142 fsplit-ivs-in-unroller
1143 Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
1144 Split lifetimes of induction variables when loops are unrolled
1147 Common Report Var(flag_split_wide_types) Optimization
1148 Split wide types into independent registers
1150 fvariable-expansion-in-unroller
1151 Common Report Var(flag_variable_expansion_in_unroller) Optimization
1152 Apply variable expansion when loops are unrolled
1155 Common Report RejectNegative Joined
1156 -fstack-check=[no|generic|specific] Insert stack checking code into the program
1160 Insert stack checking code into the program. Same as -fstack-check=specific
1165 fstack-limit-register=
1166 Common RejectNegative Joined
1167 -fstack-limit-register=<register> Trap if the stack goes past <register>
1169 fstack-limit-symbol=
1170 Common RejectNegative Joined
1171 -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
1174 Common Report Var(flag_stack_protect, 1)
1175 Use propolice as a stack protection method
1177 fstack-protector-all
1178 Common Report RejectNegative Var(flag_stack_protect, 2) VarExists
1179 Use a stack protection method for every function
1183 Does nothing. Preserved for backward compatibility.
1185 ; Nonzero if we should do (language-dependent) alias analysis.
1186 ; Typically, this analysis will assume that expressions of certain
1187 ; types do not alias expressions of certain other types. Only used
1188 ; if alias analysis (in general) is enabled.
1190 Common Report Var(flag_strict_aliasing) Optimization
1191 Assume strict aliasing rules apply
1194 Common Report Var(flag_strict_overflow)
1195 Treat signed overflow as undefined
1198 Common Report Var(flag_syntax_only)
1199 Check for syntax errors, then stop
1202 Common Report Var(flag_test_coverage)
1203 Create data files needed by \"gcov\"
1206 Common Report Var(flag_thread_jumps) Optimization
1207 Perform jump threading optimizations
1210 Common Report Var(time_report)
1211 Report the time taken by each compiler pass
1214 Common Joined RejectNegative
1215 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model
1218 Common Report Var(flag_toplevel_reorder) Init(2) Optimization
1219 Reorder top level functions, variables, and asms
1222 Common Report Var(flag_tracer)
1223 Perform superblock formation via tail duplication
1225 ; Zero means that floating-point math operations cannot generate a
1226 ; (user-visible) trap. This is the case, for example, in nonstop
1227 ; IEEE 754 arithmetic.
1229 Common Report Var(flag_trapping_math) Init(1) Optimization
1230 Assume floating-point operations can trap
1233 Common Report Var(flag_trapv) Optimization
1234 Trap for signed overflow in addition, subtraction and multiplication
1237 Common Report Var(flag_tree_ccp) Optimization
1238 Enable SSA-CCP optimization on trees
1242 Does nothing. Preserved for backward compatibility.
1245 Common Report Var(flag_tree_ch) Optimization
1246 Enable loop header copying on trees
1249 Common Report Var(flag_tree_copyrename) Optimization
1250 Replace SSA temporaries with better names in copies
1253 Common Report Var(flag_tree_copy_prop) Optimization
1254 Enable copy propagation on trees
1256 ftree-store-copy-prop
1258 Does nothing. Preserved for backward compatibility.
1261 Common Report Var(flag_tree_cselim) Init(2) Optimization
1262 Transform condition stores into unconditional ones
1264 ftree-switch-conversion
1265 Common Report Var(flag_tree_switch_conversion) Optimization
1266 Perform conversions of switch initializations.
1269 Common Report Var(flag_tree_dce) Optimization
1270 Enable SSA dead code elimination optimization on trees
1272 ftree-dominator-opts
1273 Common Report Var(flag_tree_dom) Optimization
1274 Enable dominator optimizations
1277 Common Report Var(flag_tree_dse) Optimization
1278 Enable dead store elimination
1281 Common Report Var(flag_tree_forwprop) Init(1) Optimization
1282 Enable forward propagation on trees
1285 Common Report Var(flag_tree_fre) Optimization
1286 Enable Full Redundancy Elimination (FRE) on trees
1288 ftree-loop-distribution
1289 Common Report Var(flag_tree_loop_distribution) Optimization
1290 Enable loop distribution on trees
1293 Common Report Var(flag_tree_loop_im) Init(1) Optimization
1294 Enable loop invariant motion on trees
1297 Common Report Var(flag_tree_loop_linear) Optimization
1298 Enable linear loop transforms on trees
1301 Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
1302 Create canonical induction variables in loops
1305 Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
1306 Enable loop optimizations on tree level
1308 ftree-parallelize-loops=
1309 Common Report Joined UInteger Var(flag_tree_parallelize_loops) Init(1)
1310 Enable automatic parallelization of loops
1313 Common Report Var(flag_tree_phiprop) Init(1) Optimization
1314 Enable hoisting loads from conditional pointers.
1317 Common Report Var(flag_tree_pre) Optimization
1318 Enable SSA-PRE optimization on trees
1321 Common Report Var(flag_tree_pta) Init(1) Optimization
1322 Perform function-local points-to analysis on trees.
1325 Common Report Var(flag_tree_reassoc) Init(1) Optimization
1326 Enable reassociation on tree level
1330 Does nothing. Preserved for backward compatibility.
1333 Common Report Var(flag_tree_sink) Optimization
1334 Enable SSA code sinking on trees
1337 Common Report Var(flag_tree_sra) Optimization
1338 Perform scalar replacement of aggregates
1341 Common Report Var(flag_tree_ter) Init(1) Optimization
1342 Replace temporary expressions in the SSA->normal pass
1345 Common Report Var(flag_tree_live_range_split) Optimization
1346 Perform live range splitting during the SSA->normal pass
1349 Common Report Var(flag_tree_vrp) Init(0) Optimization
1350 Perform Value Range Propagation on trees
1353 Common Report Var(flag_unit_at_a_time) Init(1) Optimization
1354 Compile whole compilation unit at a time
1357 Common Report Var(flag_unroll_loops) Optimization
1358 Perform loop unrolling when iteration count is known
1361 Common Report Var(flag_unroll_all_loops) Optimization
1362 Perform loop unrolling for all loops
1364 ; Nonzero means that loop optimizer may assume that the induction variables
1365 ; that control loops do not overflow and that the loops with nontrivial
1366 ; exit condition are not infinite
1367 funsafe-loop-optimizations
1368 Common Report Var(flag_unsafe_loop_optimizations) Optimization
1369 Allow loop optimizations to assume that the loops behave in normal way
1372 Common Report Var(flag_associative_math)
1373 Allow optimization for floating-point arithmetic which may change the
1374 result of the operation due to rounding.
1377 Common Report Var(flag_reciprocal_math)
1378 Same as -fassociative-math for expressions which include division.
1380 ; Nonzero means that unsafe floating-point math optimizations are allowed
1381 ; for the sake of speed. IEEE compliance is not guaranteed, and operations
1382 ; are allowed to assume that their arguments and results are "normal"
1383 ; (e.g., nonnegative for SQRT).
1384 funsafe-math-optimizations
1385 Common Report Var(flag_unsafe_math_optimizations) Optimization
1386 Allow math optimizations that may violate IEEE or ISO standards
1389 Common Report Var(flag_unswitch_loops) Optimization
1390 Perform loop unswitching
1393 Common Report Var(flag_unwind_tables) Optimization
1394 Just generate unwind tables for exception handling
1400 Common Report Var(flag_var_tracking) VarExists Optimization
1401 Perform variable tracking
1403 fvar-tracking-assignments
1404 Common Report Var(flag_var_tracking_assignments) VarExists Optimization
1405 Perform variable tracking by annotating assignments
1407 fvar-tracking-assignments-toggle
1408 Common Report Var(flag_var_tracking_assignments_toggle) VarExists Optimization
1409 Toggle -fvar-tracking-assignments
1411 fvar-tracking-uninit
1412 Common Report Var(flag_var_tracking_uninit) Optimization
1413 Perform variable tracking and also tag variables that are uninitialized
1416 Common Report Var(flag_tree_vectorize) Optimization
1417 Enable loop vectorization on trees
1420 Common Report Var(flag_tree_slp_vectorize) Init(2) Optimization
1421 Enable basic block vectorization (SLP) on trees
1424 Common Report Var(flag_vect_cost_model) Optimization
1425 Enable use of cost model in vectorization
1427 ftree-vect-loop-version
1428 Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization
1429 Enable loop versioning when doing loop vectorization on trees
1431 ftree-vectorizer-verbose=
1432 Common RejectNegative Joined
1433 -ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer
1436 Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
1437 Enable copy propagation of scalar-evolution information.
1439 ; -fverbose-asm causes extra commentary information to be produced in
1440 ; the generated assembly code (to make it more readable). This option
1441 ; is generally only of use to those who actually need to read the
1442 ; generated assembly code (perhaps while debugging the compiler itself).
1443 ; -fno-verbose-asm, the default, causes the extra information
1444 ; to not be added and is useful when comparing two assembler files.
1446 Common Report Var(flag_verbose_asm)
1447 Add extra commentary to assembler output
1450 Common Joined RejectNegative
1451 -fvisibility=[default|internal|hidden|protected] Set the default symbol visibility
1455 Common Report Var(flag_value_profile_transformations) Optimization
1456 Use expression value profiles in optimizations
1459 Common Report Var(flag_web) Init(2) Optimization
1460 Construct webs and split unrelated uses of single variable
1463 Common Var(flag_whopr)
1464 Enable partitioned link-time optimization.
1466 ftree-builtin-call-dce
1467 Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
1468 Enable conditional dead code elimination for builtin calls
1471 Common Report Var(flag_whole_program) Init(0) Optimization
1472 Perform whole program optimizations
1475 Common Report Var(flag_wrapv) Optimization
1476 Assume signed arithmetic overflow wraps around
1478 fzero-initialized-in-bss
1479 Common Report Var(flag_zero_initialized_in_bss) Init(1)
1480 Put zero initialized data in the bss section
1483 Common JoinedOrMissing
1484 Generate debug information in default format
1487 Common JoinedOrMissing Negative(gdwarf-)
1488 Generate debug information in COFF format
1491 Common Joined UInteger Var(dwarf_version) Init(2) Negative(gstabs)
1492 Generate debug information in DWARF v2 (or later) format
1495 Common JoinedOrMissing
1496 Generate debug information in default extended format
1499 Common JoinedOrMissing Negative(gstabs+)
1500 Generate debug information in STABS format
1503 Common JoinedOrMissing Negative(gvms)
1504 Generate debug information in extended STABS format
1507 Common RejectNegative Var(dwarf_strict,0) Init(-1)
1508 Emit DWARF additions beyond selected version
1511 Common Report RejectNegative Var(dwarf_strict,1) VarExists
1512 Don't emit DWARF additions beyond selected version
1515 Common Report Var(flag_gtoggle)
1516 Toggle debug information generation
1519 Common JoinedOrMissing Negative(gxcoff)
1520 Generate debug information in VMS format
1523 Common JoinedOrMissing Negative(gxcoff+)
1524 Generate debug information in XCOFF format
1527 Common JoinedOrMissing Negative(gcoff)
1528 Generate debug information in extended XCOFF format
1531 Common Joined Separate
1532 -o <file> Place output into <file>
1535 Common Var(profile_flag)
1536 Enable function profiling
1539 Common Var(pedantic)
1540 Issue warnings needed for strict compliance to the standard
1544 Like -pedantic but issue them as errors
1547 Common Var(quiet_flag)
1548 Do not display functions compiled or elapsed time
1551 Common Var(version_flag)
1552 Display the compiler's version
1555 Common Var(inhibit_warnings)
1559 Common RejectNegative Negative(pie)
1560 Create a shared library
1563 Common RejectNegative Negative(shared)
1564 Create a position independent executable
1566 ; This comment is to ensure we retain the blank line above.