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
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
204 Common Var(warn_notreached) Warning
205 Warn about code that will never be executed
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.
271 ; Additional positive integers will be assigned as new versions of
272 ; the ABI become the default version of the ABI.
274 Common Joined UInteger Var(flag_abi_version) Init(2)
277 Common Report Var(align_functions,0) Optimization UInteger
278 Align the start of functions
281 Common RejectNegative Joined UInteger
284 Common Report Var(align_jumps,0) Optimization UInteger
285 Align labels which are only reached by jumping
288 Common RejectNegative Joined UInteger
291 Common Report Var(align_labels,0) Optimization UInteger
295 Common RejectNegative Joined UInteger
298 Common Report Var(align_loops) Optimization UInteger
299 Align the start of loops
302 Common RejectNegative Joined UInteger
304 ; This flag is only tested if alias checking is enabled.
305 ; 0 if pointer arguments may alias each other. True in C.
306 ; 1 if pointer arguments may not alias each other but may alias
308 ; 2 if pointer arguments may not alias each other and may not
309 ; alias global variables.
310 ; 3 if pointer arguments may not alias anything. True in Fortran.
311 ; Set by the front end.
313 Common Report Var(flag_argument_noalias,0) Optimization
314 Specify that arguments may alias each other and globals
317 Common Report Var(flag_argument_noalias,1) VarExists Optimization
318 Assume arguments may alias globals but not each other
320 fargument-noalias-global
321 Common Report Var(flag_argument_noalias,2) VarExists Optimization
322 Assume arguments alias neither each other nor globals
324 fargument-noalias-anything
325 Common Report Var(flag_argument_noalias,3) VarExists Optimization
326 Assume arguments alias no other storage
328 fasynchronous-unwind-tables
329 Common Report Var(flag_asynchronous_unwind_tables) Optimization
330 Generate unwind tables that are exact at each instruction boundary
333 Common Report Var(flag_auto_inc_dec) Init(1)
334 Generate auto-inc/dec instructions
336 ; -fcheck-bounds causes gcc to generate array bounds checks.
337 ; For C, C++ and ObjC: defaults off.
338 ; For Java: defaults to on.
339 ; For Fortran: defaults to off.
341 Common Report Var(flag_bounds_check)
342 Generate code to check bounds before indexing arrays
345 Common Report Var(flag_branch_on_count_reg) Init(1) Optimization
346 Replace add, compare, branch with branch on count register
348 fbranch-probabilities
349 Common Report Var(flag_branch_probabilities) Optimization
350 Use profiling information for branch probabilities
352 fbranch-target-load-optimize
353 Common Report Var(flag_branch_target_load_optimize) Optimization
354 Perform branch target load optimization before prologue / epilogue threading
356 fbranch-target-load-optimize2
357 Common Report Var(flag_branch_target_load_optimize2) Optimization
358 Perform branch target load optimization after prologue / epilogue threading
361 Common Report Var(flag_btr_bb_exclusive) Optimization
362 Restrict target load migration not to re-use registers in any basic block
365 Common Joined RejectNegative
366 -fcall-saved-<register> Mark <register> as being preserved across functions
369 Common Joined RejectNegative
370 -fcall-used-<register> Mark <register> as being corrupted by function calls
372 ; Nonzero for -fcaller-saves: allocate values in regs that need to
373 ; be saved across function calls, if that produces overall better code.
374 ; Optional now, so people can test it.
376 Common Report Var(flag_caller_saves) Optimization
377 Save registers around function calls
380 Common Report Var(flag_check_data_deps)
381 Compare the results of several data dependence analyzers.
384 Common Report Var(flag_no_common,0) Optimization
385 Do not put uninitialized globals in the common section
388 Common JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
389 -fcompare-debug[=<opts>] Compile with and without e.g. -gtoggle, and compare the final-insns dump
391 fcompare-debug-second
392 Common RejectNegative Var(flag_compare_debug)
393 Run only the second compilation of -fcompare-debug
396 Common Var(flag_conserve_stack) Optimization
397 Do not perform optimizations increasing noticeably stack usage
400 Common Report Var(flag_cprop_registers) Optimization
401 Perform a register copy-propagation optimization pass
404 Common Report Var(flag_crossjumping) Optimization
405 Perform cross-jumping optimization
408 Common Report Var(flag_cse_follow_jumps) Optimization
409 When running CSE, follow jumps to their targets
413 Does nothing. Preserved for backward compatibility.
416 Common Report Var(flag_cx_limited_range) Optimization
417 Omit range reduction step when performing complex division
420 Common Report Var(flag_cx_fortran_rules) Optimization
421 Complex multiplication and division follow Fortran rules
424 Common Report Var(flag_data_sections) Optimization
425 Place data items into their own section
429 List all available debugging counters with their limits and counts.
432 Common RejectNegative Joined
433 -fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...] Set the debug counter limit.
436 Common Joined RejectNegative
437 Map one directory name to another in debug information
439 ; Nonzero for -fdefer-pop: don't pop args after each function call
440 ; instead save them up to pop many calls' args with one insns.
442 Common Report Var(flag_defer_pop) Optimization
443 Defer popping functions args from stack until later
446 Common Report Var(flag_delayed_branch) Optimization
447 Attempt to fill delay slots of branch instructions
449 fdelete-null-pointer-checks
450 Common Report Var(flag_delete_null_pointer_checks) Init(1) Optimization
451 Delete useless null pointer checks
453 fdiagnostics-show-location=
454 Common Joined RejectNegative
455 -fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics
457 fdiagnostics-show-option
459 Amend appropriate diagnostic messages with the command line option that controls them
462 Common Joined RejectNegative
463 -fdump-<type> Dump various compiler internals to a file
466 Common RejectNegative Joined Var(flag_dump_final_insns)
467 -fdump-final-insns=filename Dump to filename the insns at the end of translation
470 Common Report Var(flag_dump_noaddr)
471 Suppress output of addresses in debugging dumps
474 Common Report Var(flag_dump_unnumbered) VarExists
475 Suppress output of instruction numbers, line number notes and addresses in debugging dumps
477 fdump-unnumbered-links
478 Common Report Var(flag_dump_unnumbered_links) VarExists
479 Suppress output of previous and next insn numbers in debugging dumps
482 Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
483 Enable CFI tables via GAS assembler directives.
486 Common Report Var(flag_early_inlining) Init(1) Optimization
487 Perform early inlining
489 feliminate-dwarf2-dups
490 Common Report Var(flag_eliminate_dwarf2_dups)
491 Perform DWARF2 duplicate elimination
494 Common Report Var(flag_ipa_sra) Init(0) Optimization
495 Perform interprocedural reduction of aggregates
497 feliminate-unused-debug-symbols
498 Common Report Var(flag_debug_only_used_symbols)
499 Perform unused type elimination in debug info
501 feliminate-unused-debug-types
502 Common Report Var(flag_eliminate_unused_debug_types) Init(1)
503 Perform unused type elimination in debug info
505 femit-class-debug-always
506 Common Report Var(flag_emit_class_debug_always) Init(0)
507 Do not suppress C++ class debug information.
510 Common Report Var(flag_enable_icf_debug)
511 Generate debug information to support Identical Code Folding (ICF)
514 Common Report Var(flag_exceptions) Optimization
515 Enable exception handling
517 fexpensive-optimizations
518 Common Report Var(flag_expensive_optimizations) Optimization
519 Perform a number of minor, expensive optimizations
522 Common Joined RejectNegative
523 -fexcess-precision=[fast|standard] Specify handling of excess floating-point precision
529 Common Report Var(flag_finite_math_only) Optimization
530 Assume no NaNs or infinities are generated
533 Common Joined RejectNegative
534 -ffixed-<register> Mark <register> as being unavailable to the compiler
537 Common Report Var(flag_float_store) Optimization
538 Don't allocate floats and doubles in extended-precision registers
542 Does nothing. Preserved for backward compatibility.
545 Common Report Var(flag_forward_propagate) Optimization
546 Perform a forward propagation pass on RTL
548 ; Nonzero means don't put addresses of constant functions in registers.
549 ; Used for compiling the Unix kernel, where strange substitutions are
550 ; done on the assembly output.
552 Common Report Var(flag_no_function_cse,0)
553 Allow function addresses to be held in registers
556 Common Report Var(flag_function_sections)
557 Place each function into its own section
560 Common Report Var(flag_gcse) Optimization
561 Perform global common subexpression elimination
564 Common Report Var(flag_gcse_lm) Init(1) Optimization
565 Perform enhanced load motion during global common subexpression elimination
568 Common Report Var(flag_gcse_sm) Init(0) Optimization
569 Perform store motion after global common subexpression elimination
572 Common Report Var(flag_gcse_las) Init(0) Optimization
573 Perform redundant load after store elimination in global common subexpression
577 Common Report Var(flag_gcse_after_reload) Optimization
578 Perform global common subexpression elimination after register allocation
581 ; This option is not documented yet as its semantics will change.
583 Common Report Var(flag_graphite)
584 Enable in and out of Graphite representation
587 Common Report Var(flag_graphite_identity) Optimization
588 Enable Graphite Identity transformation
590 floop-parallelize-all
591 Common Report Var(flag_loop_parallelize_all) Optimization
592 Mark all loops as parallel
595 Common Report Var(flag_loop_strip_mine) Optimization
596 Enable Loop Strip Mining transformation
599 Common Report Var(flag_loop_interchange) Optimization
600 Enable Loop Interchange transformation
603 Common Report Var(flag_loop_block) Optimization
604 Enable Loop Blocking transformation
606 fguess-branch-probability
607 Common Report Var(flag_guess_branch_prob) Optimization
608 Enable guessing of branch probabilities
610 ; Nonzero means ignore `#ident' directives. 0 means handle them.
611 ; Generate position-independent code for executables if possible
612 ; On SVR4 targets, it also controls whether or not to emit a
613 ; string identifying the compiler.
615 Common Report Var(flag_no_ident,0)
616 Process #ident directives
619 Common Report Var(flag_if_conversion) Optimization
620 Perform conversion of conditional jumps to branchless equivalents
623 Common Report Var(flag_if_conversion2) Optimization
624 Perform conversion of conditional jumps to conditional execution
626 ; -finhibit-size-directive inhibits output of .size for ELF.
627 ; This is used only for compiling crtstuff.c,
628 ; and it may be extended to other effects
629 ; needed for crtstuff.c on other systems.
630 finhibit-size-directive
631 Common Report Var(flag_inhibit_size_directive)
632 Do not generate .size directives
635 Common Report Var(flag_indirect_inlining)
636 Perform indirect inlining
638 ; Nonzero means that functions declared `inline' will be treated
639 ; as `static'. Prevents generation of zillions of copies of unused
640 ; static inline functions; instead, `inlines' are written out
641 ; only when actually used. Used in conjunction with -g. Also
642 ; does the right thing with #pragma interface.
644 Common Report Var(flag_no_inline,0) Init(0)
645 Pay attention to the \"inline\" keyword
647 finline-small-functions
648 Common Report Var(flag_inline_small_functions) Optimization
649 Integrate simple functions into their callers when code size is known to not growth
652 Common Report Var(flag_inline_functions) Optimization
653 Integrate simple functions into their callers
655 finline-functions-called-once
656 Common Report Var(flag_inline_functions_called_once) Init(1) Optimization
657 Integrate functions called once into their callers
660 Common RejectNegative Joined UInteger
663 Common RejectNegative Joined UInteger
664 -finline-limit=<number> Limit the size of inlined functions to <number>
666 finstrument-functions
667 Common Report Var(flag_instrument_function_entry_exit)
668 Instrument function entry and exit with profiling calls
670 finstrument-functions-exclude-function-list=
671 Common RejectNegative Joined
672 -finstrument-functions-exclude-function-list=name,... Do not instrument listed functions
674 finstrument-functions-exclude-file-list=
675 Common RejectNegative Joined
676 -finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files
679 Common Report Var(flag_ipa_cp) Optimization
680 Perform Interprocedural constant propagation
683 Common Report Var(flag_ipa_cp_clone) Optimization
684 Perform cloning to make Interprocedural constant propagation stronger
687 Common Report Var(flag_ipa_pure_const) Init(0) Optimization
688 Discover pure and const functions
691 Common Report Var(flag_ipa_pta) Init(0) Optimization
692 Perform interprocedural points-to analysis
695 Common Report Var(flag_ipa_reference) Init(0) Optimization
696 Discover readonly and non addressable static variables
699 Common Report Var(flag_ipa_type_escape) Init(0) Optimization
700 Type based escape and alias analysis
703 Common Report Var(flag_ipa_matrix_reorg) Optimization
704 Perform matrix layout flattening and transposing based
705 on profiling information.
708 Common Report Var(flag_ipa_struct_reorg)
709 Perform structure layout optimizations based
710 on profiling information.
713 Common Joined RejectNegative
714 -fira-algorithm=[CB|priority] Set the used IRA algorithm
717 Common Joined RejectNegative
718 -fira-region=[one|all|mixed] Set regions for IRA
721 Common Report Var(flag_ira_coalesce) Init(0)
722 Do optimistic coalescing.
725 Common Report Var(flag_ira_loop_pressure)
726 Use IRA based register pressure calculation
727 in RTL loop optimizations.
729 fira-share-save-slots
730 Common Report Var(flag_ira_share_save_slots) Init(1)
731 Share slots for saving different hard registers.
733 fira-share-spill-slots
734 Common Report Var(flag_ira_share_spill_slots) Init(1)
735 Share stack slots for spilled pseudo-registers.
738 Common RejectNegative Joined UInteger
739 -fira-verbose=<number> Control IRA's level of diagnostic messages.
742 Common Report Var(flag_ivopts) Init(1) Optimization
743 Optimize induction variables on trees
746 Common Var(flag_jump_tables) Init(1) Optimization
747 Use jump tables for sufficiently large switch statements
749 fkeep-inline-functions
750 Common Report Var(flag_keep_inline_functions)
751 Generate code for functions even if they are fully inlined
754 Common Report Var(flag_keep_static_consts) Init(1)
755 Emit static const variables even if they are not used
758 Common Report Var(flag_leading_underscore) Init(-1)
759 Give external symbols a leading underscore
763 Does nothing. Preserved for backward compatibility.
767 Enable link-time optimization.
769 ; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
770 flto-compression-level=
771 Common Joined UInteger Var(flag_lto_compression_level) Init(-1)
772 -flto-compression-level=<number> Use zlib compression level <number> for IL
775 Common Report Var(flag_lto_report) Init(0) Optimization
776 Report various link-time optimization statistics
779 Common Report Var(flag_errno_math) Init(1) Optimization
780 Set errno after built-in math functions
783 Common Report Var(mem_report)
784 Report on permanent memory allocation
786 ; This will attempt to merge constant section constants, if 1 only
787 ; string constants and constants from constant pool, if 2 also constant
790 Common Report Var(flag_merge_constants,2) Init(1) Optimization
791 Attempt to merge identical constants and constant variables
794 Common Report Var(flag_merge_constants,1) VarExists Optimization
795 Attempt to merge identical constants across compilation units
798 Common Report Var(flag_merge_debug_strings) Init(1)
799 Attempt to merge identical debug strings across compilation units
802 Common RejectNegative Joined UInteger
803 -fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping
806 Common Report Var(flag_modulo_sched) Optimization
807 Perform SMS based modulo scheduling before the first scheduling pass
809 fmodulo-sched-allow-regmoves
810 Common Report Var(flag_modulo_sched_allow_regmoves)
811 Perform SMS based modulo scheduling with register moves allowed
813 fmove-loop-invariants
814 Common Report Var(flag_move_loop_invariants) Init(1) Optimization
815 Move loop invariant computations out of loops
818 Common RejectNegative Report Var(flag_mudflap)
819 Add mudflap bounds-checking instrumentation for single-threaded program
822 Common RejectNegative Report VarExists Var(flag_mudflap,2)
823 Add mudflap bounds-checking instrumentation for multi-threaded program
826 Common RejectNegative Report Var(flag_mudflap_ignore_reads)
827 Ignore read operations when inserting mudflap instrumentation
830 Common Var(flag_dce) Init(1) Optimization
831 Use the RTL dead code elimination pass
834 Common Var(flag_dse) Init(1) Optimization
835 Use the RTL dead store elimination pass
837 freschedule-modulo-scheduled-loops
838 Common Report Var(flag_resched_modulo_sched) Optimization
839 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
842 Common Report Var(flag_non_call_exceptions) Optimization
843 Support synchronous non-call exceptions
846 Common Report Var(flag_omit_frame_pointer) Optimization
847 When possible do not generate stack frames
849 foptimize-register-move
850 Common Report Var(flag_regmove) Optimization
851 Do the full register move optimization pass
853 foptimize-sibling-calls
854 Common Report Var(flag_optimize_sibling_calls) Optimization
855 Optimize sibling and tail recursive calls
858 Common Report Var(pre_ipa_mem_report)
859 Report on memory allocation before interprocedural optimization
862 Common Report Var(post_ipa_mem_report)
863 Report on memory allocation before interprocedural optimization
866 Common Report Var(flag_pack_struct) Optimization
867 Pack structure members together without holes
870 Common RejectNegative Joined UInteger Optimization
871 -fpack-struct=<number> Set initial maximum structure member alignment
874 Common Report Var(flag_pcc_struct_return,1) VarExists
875 Return small aggregates in memory, not registers
878 Common Report Var(flag_peel_loops) Optimization
882 Common Report Var(flag_no_peephole,0) Optimization
883 Enable machine specific peephole optimizations
886 Common Report Var(flag_peephole2) Optimization
887 Enable an RTL peephole pass before sched2
890 Common Report Var(flag_pic,2)
891 Generate position-independent code if possible (large mode)
894 Common Report Var(flag_pie,2)
895 Generate position-independent code for executables if possible (large mode)
898 Common Report Var(flag_pic,1) VarExists
899 Generate position-independent code if possible (small mode)
902 Common Report Var(flag_pie,1) VarExists
903 Generate position-independent code for executables if possible (small mode)
906 Common Joined RejectNegative
907 Specify a plugin to load
910 Common Joined RejectNegative
911 -fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>
913 fpredictive-commoning
914 Common Report Var(flag_predictive_commoning) Optimization
915 Run predictive commoning optimization.
917 fprefetch-loop-arrays
918 Common Report Var(flag_prefetch_loop_arrays) Optimization
919 Generate prefetch instructions, if available, for arrays in loops
922 Common Report Var(profile_flag)
923 Enable basic program profiling code
926 Common Report Var(profile_arc_flag)
927 Insert arc-based program profiling code
930 Common Joined RejectNegative
931 Set the top-level directory for storing the profile data.
932 The default is 'pwd'.
935 Common Report Var(flag_profile_correction)
936 Enable correction of flow inconsistent profile data input
940 Enable common options for generating profile info for profile feedback directed optimizations
943 Common Joined RejectNegative
944 Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=
947 Common Var(flag_profile_use)
948 Enable common options for performing profile feedback directed optimizations
951 Common Joined RejectNegative
952 Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=
955 Common Report Var(flag_profile_values)
956 Insert code to profile values of expressions
962 Common Joined RejectNegative
963 -frandom-seed=<string> Make compile reproducible using <string>
965 ; This switch causes the command line that was used to create an
966 ; object file to be recorded into the object file. The exact format
967 ; of this recording is target and binary file format dependent.
968 ; It is related to the -fverbose-asm switch, but that switch only
969 ; records information in the assembler output file as comments, so
970 ; they never reach the object file.
972 Common Report Var(flag_record_gcc_switches)
973 Record gcc command line switches in the object file.
976 Common Report Var(flag_pcc_struct_return,0) VarExists Optimization
977 Return small aggregates in registers
980 Common Report Var(flag_regmove) Optimization
981 Enables a register move optimization
984 Common Report Var(flag_rename_registers) Init(2) Optimization
985 Perform a register renaming optimization pass
988 Common Report Var(flag_reorder_blocks) Optimization
989 Reorder basic blocks to improve code placement
991 freorder-blocks-and-partition
992 Common Report Var(flag_reorder_blocks_and_partition) Optimization
993 Reorder basic blocks and partition into hot and cold sections
996 Common Report Var(flag_reorder_functions) Optimization
997 Reorder functions to improve code placement
999 frerun-cse-after-loop
1000 Common Report Var(flag_rerun_cse_after_loop) Init(2) Optimization
1001 Add a common subexpression elimination pass after loop optimizations
1005 Does nothing. Preserved for backward compatibility.
1008 Common Report Var(flag_rounding_math) Optimization
1009 Disable optimizations that assume default FP rounding behavior
1012 Common Report Var(flag_schedule_interblock) Init(1) Optimization
1013 Enable scheduling across basic blocks
1016 Common Report Var(flag_sched_pressure) Init(0) Optimization
1017 Enable register pressure sensitive insn scheduling
1020 Common Report Var(flag_schedule_speculative) Init(1) Optimization
1021 Allow speculative motion of non-loads
1024 Common Report Var(flag_schedule_speculative_load) Optimization
1025 Allow speculative motion of some loads
1027 fsched-spec-load-dangerous
1028 Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
1029 Allow speculative motion of more loads
1032 Common RejectNegative Joined
1033 -fsched-verbose=<number> Set the verbosity level of the scheduler
1035 fsched2-use-superblocks
1036 Common Report Var(flag_sched2_use_superblocks) Optimization
1037 If scheduling post reload, do superblock scheduling
1040 Common Report Var(flag_sched2_use_traces) Optimization
1041 If scheduling post reload, do trace scheduling
1044 Common Report Var(flag_schedule_insns) Optimization
1045 Reschedule instructions before register allocation
1048 Common Report Var(flag_schedule_insns_after_reload) Optimization
1049 Reschedule instructions after register allocation
1051 ; This flag should be on when a target implements non-trivial
1052 ; scheduling hooks, maybe saving some information for its own sake.
1053 ; On IA64, for example, this is used for correct bundling.
1054 fselective-scheduling
1055 Common Report Var(flag_selective_scheduling) Optimization
1056 Schedule instructions using selective scheduling algorithm
1058 fselective-scheduling2
1059 Common Report Var(flag_selective_scheduling2) Optimization
1060 Run selective scheduling after reload
1062 fsel-sched-pipelining
1063 Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
1064 Perform software pipelining of inner loops during selective scheduling
1066 fsel-sched-pipelining-outer-loops
1067 Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
1068 Perform software pipelining of outer loops during selective scheduling
1070 fsel-sched-reschedule-pipelined
1071 Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
1072 Reschedule pipelined regions without pipelining
1074 ; sched_stalled_insns means that insns can be moved prematurely from the queue
1075 ; of stalled insns into the ready list.
1076 fsched-stalled-insns
1077 Common Report Var(flag_sched_stalled_insns) Optimization UInteger
1078 Allow premature scheduling of queued insns
1080 fsched-stalled-insns=
1081 Common RejectNegative Joined UInteger
1082 -fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled
1084 ; sched_stalled_insns_dep controls how many recently scheduled cycles will
1085 ; be examined for a dependency on a stalled insn that is candidate for
1086 ; premature removal from the queue of stalled insns into the ready list (has
1087 ; an effect only if the flag 'sched_stalled_insns' is set).
1088 fsched-stalled-insns-dep
1089 Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
1090 Set dependence distance checking in premature scheduling of queued insns
1092 fsched-stalled-insns-dep=
1093 Common RejectNegative Joined UInteger
1094 -fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns
1096 fsched-group-heuristic
1097 Common Report Var(flag_sched_group_heuristic) Init(1) Optimization
1098 Enable the group heuristic in the scheduler
1100 fsched-critical-path-heuristic
1101 Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization
1102 Enable the critical path heuristic in the scheduler
1104 fsched-spec-insn-heuristic
1105 Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
1106 Enable the speculative instruction heuristic in the scheduler
1108 fsched-rank-heuristic
1109 Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization
1110 Enable the rank heuristic in the scheduler
1112 fsched-last-insn-heuristic
1113 Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization
1114 Enable the last instruction heuristic in the scheduler
1116 fsched-dep-count-heuristic
1117 Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization
1118 Enable the dependent count heuristic in the scheduler
1121 Common Report Var(flag_section_anchors) Optimization
1122 Access data in the same section from shared anchor points
1126 Does nothing. Preserved for backward compatibility.
1129 Common C ObjC C++ ObjC++ Report Var(flag_show_column) Init(1)
1130 Show column numbers in diagnostics, when available. Default on
1133 Common Report Var(flag_signaling_nans) Optimization
1134 Disable optimizations observable by IEEE signaling NaNs
1137 Common Report Var(flag_signed_zeros) Init(1) Optimization
1138 Disable floating point optimizations that ignore the IEEE signedness of zero
1140 fsingle-precision-constant
1141 Common Report Var(flag_single_precision_constant) Optimization
1142 Convert floating point constants to single precision constants
1144 fsplit-ivs-in-unroller
1145 Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
1146 Split lifetimes of induction variables when loops are unrolled
1149 Common Report Var(flag_split_wide_types) Optimization
1150 Split wide types into independent registers
1152 fvariable-expansion-in-unroller
1153 Common Report Var(flag_variable_expansion_in_unroller) Optimization
1154 Apply variable expansion when loops are unrolled
1157 Common Report RejectNegative Joined
1158 -fstack-check=[no|generic|specific] Insert stack checking code into the program
1162 Insert stack checking code into the program. Same as -fstack-check=specific
1167 fstack-limit-register=
1168 Common RejectNegative Joined
1169 -fstack-limit-register=<register> Trap if the stack goes past <register>
1171 fstack-limit-symbol=
1172 Common RejectNegative Joined
1173 -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
1176 Common Report Var(flag_stack_protect, 1)
1177 Use propolice as a stack protection method
1179 fstack-protector-all
1180 Common Report RejectNegative Var(flag_stack_protect, 2) VarExists
1181 Use a stack protection method for every function
1185 Does nothing. Preserved for backward compatibility.
1187 ; Nonzero if we should do (language-dependent) alias analysis.
1188 ; Typically, this analysis will assume that expressions of certain
1189 ; types do not alias expressions of certain other types. Only used
1190 ; if alias analysis (in general) is enabled.
1192 Common Report Var(flag_strict_aliasing) Optimization
1193 Assume strict aliasing rules apply
1196 Common Report Var(flag_strict_overflow)
1197 Treat signed overflow as undefined
1200 Common Report Var(flag_syntax_only)
1201 Check for syntax errors, then stop
1204 Common Report Var(flag_test_coverage)
1205 Create data files needed by \"gcov\"
1208 Common Report Var(flag_thread_jumps) Optimization
1209 Perform jump threading optimizations
1212 Common Report Var(time_report)
1213 Report the time taken by each compiler pass
1216 Common Joined RejectNegative
1217 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model
1220 Common Report Var(flag_toplevel_reorder) Init(2) Optimization
1221 Reorder top level functions, variables, and asms
1224 Common Report Var(flag_tracer)
1225 Perform superblock formation via tail duplication
1227 ; Zero means that floating-point math operations cannot generate a
1228 ; (user-visible) trap. This is the case, for example, in nonstop
1229 ; IEEE 754 arithmetic.
1231 Common Report Var(flag_trapping_math) Init(1) Optimization
1232 Assume floating-point operations can trap
1235 Common Report Var(flag_trapv) Optimization
1236 Trap for signed overflow in addition, subtraction and multiplication
1239 Common Report Var(flag_tree_ccp) Optimization
1240 Enable SSA-CCP optimization on trees
1244 Does nothing. Preserved for backward compatibility.
1247 Common Report Var(flag_tree_ch) Optimization
1248 Enable loop header copying on trees
1251 Common Report Var(flag_tree_copyrename) Optimization
1252 Replace SSA temporaries with better names in copies
1255 Common Report Var(flag_tree_copy_prop) Optimization
1256 Enable copy propagation on trees
1258 ftree-store-copy-prop
1260 Does nothing. Preserved for backward compatibility.
1263 Common Report Var(flag_tree_cselim) Init(2) Optimization
1264 Transform condition stores into unconditional ones
1266 ftree-switch-conversion
1267 Common Report Var(flag_tree_switch_conversion) Optimization
1268 Perform conversions of switch initializations.
1271 Common Report Var(flag_tree_dce) Optimization
1272 Enable SSA dead code elimination optimization on trees
1274 ftree-dominator-opts
1275 Common Report Var(flag_tree_dom) Optimization
1276 Enable dominator optimizations
1279 Common Report Var(flag_tree_dse) Optimization
1280 Enable dead store elimination
1283 Common Report Var(flag_tree_forwprop) Init(1) Optimization
1284 Enable forward propagation on trees
1287 Common Report Var(flag_tree_fre) Optimization
1288 Enable Full Redundancy Elimination (FRE) on trees
1290 ftree-loop-distribution
1291 Common Report Var(flag_tree_loop_distribution) Optimization
1292 Enable loop distribution on trees
1295 Common Report Var(flag_tree_loop_im) Init(1) Optimization
1296 Enable loop invariant motion on trees
1299 Common Report Var(flag_tree_loop_linear) Optimization
1300 Enable linear loop transforms on trees
1303 Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
1304 Create canonical induction variables in loops
1307 Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
1308 Enable loop optimizations on tree level
1310 ftree-parallelize-loops=
1311 Common Report Joined UInteger Var(flag_tree_parallelize_loops) Init(1)
1312 Enable automatic parallelization of loops
1315 Common Report Var(flag_tree_phiprop) Init(1) Optimization
1316 Enable hoisting loads from conditional pointers.
1319 Common Report Var(flag_tree_pre) Optimization
1320 Enable SSA-PRE optimization on trees
1323 Common Report Var(flag_tree_pta) Init(1) Optimization
1324 Perform function-local points-to analysis on trees.
1327 Common Report Var(flag_tree_reassoc) Init(1) Optimization
1328 Enable reassociation on tree level
1332 Does nothing. Preserved for backward compatibility.
1335 Common Report Var(flag_tree_sink) Optimization
1336 Enable SSA code sinking on trees
1339 Common Report Var(flag_tree_sra) Optimization
1340 Perform scalar replacement of aggregates
1343 Common Report Var(flag_tree_ter) Init(1) Optimization
1344 Replace temporary expressions in the SSA->normal pass
1347 Common Report Var(flag_tree_live_range_split) Optimization
1348 Perform live range splitting during the SSA->normal pass
1351 Common Report Var(flag_tree_vrp) Init(0) Optimization
1352 Perform Value Range Propagation on trees
1355 Common Report Var(flag_unit_at_a_time) Init(1) Optimization
1356 Compile whole compilation unit at a time
1359 Common Report Var(flag_unroll_loops) Optimization
1360 Perform loop unrolling when iteration count is known
1363 Common Report Var(flag_unroll_all_loops) Optimization
1364 Perform loop unrolling for all loops
1366 ; Nonzero means that loop optimizer may assume that the induction variables
1367 ; that control loops do not overflow and that the loops with nontrivial
1368 ; exit condition are not infinite
1369 funsafe-loop-optimizations
1370 Common Report Var(flag_unsafe_loop_optimizations) Optimization
1371 Allow loop optimizations to assume that the loops behave in normal way
1374 Common Report Var(flag_associative_math)
1375 Allow optimization for floating-point arithmetic which may change the
1376 result of the operation due to rounding.
1379 Common Report Var(flag_reciprocal_math)
1380 Same as -fassociative-math for expressions which include division.
1382 ; Nonzero means that unsafe floating-point math optimizations are allowed
1383 ; for the sake of speed. IEEE compliance is not guaranteed, and operations
1384 ; are allowed to assume that their arguments and results are "normal"
1385 ; (e.g., nonnegative for SQRT).
1386 funsafe-math-optimizations
1387 Common Report Var(flag_unsafe_math_optimizations) Optimization
1388 Allow math optimizations that may violate IEEE or ISO standards
1391 Common Report Var(flag_unswitch_loops) Optimization
1392 Perform loop unswitching
1395 Common Report Var(flag_unwind_tables) Optimization
1396 Just generate unwind tables for exception handling
1402 Common Report Var(flag_var_tracking) VarExists Optimization
1403 Perform variable tracking
1405 fvar-tracking-assignments
1406 Common Report Var(flag_var_tracking_assignments) VarExists Optimization
1407 Perform variable tracking by annotating assignments
1409 fvar-tracking-assignments-toggle
1410 Common Report Var(flag_var_tracking_assignments_toggle) VarExists Optimization
1411 Toggle -fvar-tracking-assignments
1413 fvar-tracking-uninit
1414 Common Report Var(flag_var_tracking_uninit) Optimization
1415 Perform variable tracking and also tag variables that are uninitialized
1418 Common Report Var(flag_tree_vectorize) Optimization
1419 Enable loop vectorization on trees
1422 Common Report Var(flag_tree_slp_vectorize) Init(2) Optimization
1423 Enable basic block vectorization (SLP) on trees
1426 Common Report Var(flag_vect_cost_model) Optimization
1427 Enable use of cost model in vectorization
1429 ftree-vect-loop-version
1430 Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization
1431 Enable loop versioning when doing loop vectorization on trees
1433 ftree-vectorizer-verbose=
1434 Common RejectNegative Joined
1435 -ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer
1438 Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
1439 Enable copy propagation of scalar-evolution information.
1441 ; -fverbose-asm causes extra commentary information to be produced in
1442 ; the generated assembly code (to make it more readable). This option
1443 ; is generally only of use to those who actually need to read the
1444 ; generated assembly code (perhaps while debugging the compiler itself).
1445 ; -fno-verbose-asm, the default, causes the extra information
1446 ; to not be added and is useful when comparing two assembler files.
1448 Common Report Var(flag_verbose_asm)
1449 Add extra commentary to assembler output
1452 Common Joined RejectNegative
1453 -fvisibility=[default|internal|hidden|protected] Set the default symbol visibility
1457 Common Report Var(flag_value_profile_transformations) Optimization
1458 Use expression value profiles in optimizations
1461 Common Report Var(flag_web) Init(2) Optimization
1462 Construct webs and split unrelated uses of single variable
1465 Common Var(flag_whopr)
1466 Enable partitioned link-time optimization.
1468 ftree-builtin-call-dce
1469 Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
1470 Enable conditional dead code elimination for builtin calls
1473 Common Report Var(flag_whole_program) Init(0) Optimization
1474 Perform whole program optimizations
1477 Common Report Var(flag_wrapv) Optimization
1478 Assume signed arithmetic overflow wraps around
1480 fzero-initialized-in-bss
1481 Common Report Var(flag_zero_initialized_in_bss) Init(1)
1482 Put zero initialized data in the bss section
1485 Common JoinedOrMissing
1486 Generate debug information in default format
1489 Common JoinedOrMissing Negative(gdwarf-)
1490 Generate debug information in COFF format
1493 Common Joined UInteger Var(dwarf_version) Init(2) Negative(gstabs)
1494 Generate debug information in DWARF v2 (or later) format
1497 Common JoinedOrMissing
1498 Generate debug information in default extended format
1501 Common JoinedOrMissing Negative(gstabs+)
1502 Generate debug information in STABS format
1505 Common JoinedOrMissing Negative(gvms)
1506 Generate debug information in extended STABS format
1509 Common RejectNegative Var(dwarf_strict,0) Init(-1)
1510 Emit DWARF additions beyond selected version
1513 Common Report RejectNegative Var(dwarf_strict,1) VarExists
1514 Don't emit DWARF additions beyond selected version
1517 Common Report Var(flag_gtoggle)
1518 Toggle debug information generation
1521 Common JoinedOrMissing Negative(gxcoff)
1522 Generate debug information in VMS format
1525 Common JoinedOrMissing Negative(gxcoff+)
1526 Generate debug information in XCOFF format
1529 Common JoinedOrMissing Negative(gcoff)
1530 Generate debug information in extended XCOFF format
1533 Common Joined Separate
1534 -o <file> Place output into <file>
1537 Common Var(profile_flag)
1538 Enable function profiling
1541 Common Var(pedantic)
1542 Issue warnings needed for strict compliance to the standard
1546 Like -pedantic but issue them as errors
1549 Common Var(quiet_flag)
1550 Do not display functions compiled or elapsed time
1553 Common Var(version_flag)
1554 Display the compiler's version
1557 Common Var(inhibit_warnings)
1561 Common RejectNegative Negative(pie)
1562 Create a shared library
1565 Common RejectNegative Negative(shared)
1566 Create a position independent executable
1568 ; This comment is to ensure we retain the blank line above.