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 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
256 ; The version of the C++ ABI in use. The following values are allowed:
258 ; 0: The version of the ABI believed most conformant with the C++ ABI
259 ; specification. This ABI may change as bugs are discovered and fixed.
260 ; Therefore, 0 will not necessarily indicate the same ABI in different
263 ; 1: The version of the ABI first used in G++ 3.2.
265 ; 2: The version of the ABI first used in G++ 3.4.
267 ; Additional positive integers will be assigned as new versions of
268 ; the ABI become the default version of the ABI.
270 Common Joined UInteger Var(flag_abi_version) Init(2)
273 Common Report Var(align_functions,0) Optimization UInteger
274 Align the start of functions
277 Common RejectNegative Joined UInteger
280 Common Report Var(align_jumps,0) Optimization UInteger
281 Align labels which are only reached by jumping
284 Common RejectNegative Joined UInteger
287 Common Report Var(align_labels,0) Optimization UInteger
291 Common RejectNegative Joined UInteger
294 Common Report Var(align_loops) Optimization UInteger
295 Align the start of loops
298 Common RejectNegative Joined UInteger
300 ; This flag is only tested if alias checking is enabled.
301 ; 0 if pointer arguments may alias each other. True in C.
302 ; 1 if pointer arguments may not alias each other but may alias
304 ; 2 if pointer arguments may not alias each other and may not
305 ; alias global variables.
306 ; 3 if pointer arguments may not alias anything. True in Fortran.
307 ; Set by the front end.
309 Common Report Var(flag_argument_noalias,0) Optimization
310 Specify that arguments may alias each other and globals
313 Common Report Var(flag_argument_noalias,1) VarExists Optimization
314 Assume arguments may alias globals but not each other
316 fargument-noalias-global
317 Common Report Var(flag_argument_noalias,2) VarExists Optimization
318 Assume arguments alias neither each other nor globals
320 fargument-noalias-anything
321 Common Report Var(flag_argument_noalias,3) VarExists Optimization
322 Assume arguments alias no other storage
324 fasynchronous-unwind-tables
325 Common Report Var(flag_asynchronous_unwind_tables) Optimization
326 Generate unwind tables that are exact at each instruction boundary
329 Common Report Var(flag_auto_inc_dec) Init(1)
330 Generate auto-inc/dec instructions
332 ; -fcheck-bounds causes gcc to generate array bounds checks.
333 ; For C, C++ and ObjC: defaults off.
334 ; For Java: defaults to on.
335 ; For Fortran: defaults to off.
337 Common Report Var(flag_bounds_check)
338 Generate code to check bounds before indexing arrays
341 Common Report Var(flag_branch_on_count_reg) Init(1) Optimization
342 Replace add, compare, branch with branch on count register
344 fbranch-probabilities
345 Common Report Var(flag_branch_probabilities) Optimization
346 Use profiling information for branch probabilities
348 fbranch-target-load-optimize
349 Common Report Var(flag_branch_target_load_optimize) Optimization
350 Perform branch target load optimization before prologue / epilogue threading
352 fbranch-target-load-optimize2
353 Common Report Var(flag_branch_target_load_optimize2) Optimization
354 Perform branch target load optimization after prologue / epilogue threading
357 Common Report Var(flag_btr_bb_exclusive) Optimization
358 Restrict target load migration not to re-use registers in any basic block
361 Common Joined RejectNegative
362 -fcall-saved-<register> Mark <register> as being preserved across functions
365 Common Joined RejectNegative
366 -fcall-used-<register> Mark <register> as being corrupted by function calls
368 ; Nonzero for -fcaller-saves: allocate values in regs that need to
369 ; be saved across function calls, if that produces overall better code.
370 ; Optional now, so people can test it.
372 Common Report Var(flag_caller_saves) Optimization
373 Save registers around function calls
376 Common Report Var(flag_check_data_deps)
377 Compare the results of several data dependence analyzers.
380 Common Report Var(flag_no_common,0) Optimization
381 Do not put uninitialized globals in the common section
384 Common Var(flag_conserve_stack) Optimization
385 Do not perform optimizations increasing noticeably stack usage
388 Common Report Var(flag_cprop_registers) Optimization
389 Perform a register copy-propagation optimization pass
392 Common Report Var(flag_crossjumping) Optimization
393 Perform cross-jumping optimization
396 Common Report Var(flag_cse_follow_jumps) Optimization
397 When running CSE, follow jumps to their targets
401 Does nothing. Preserved for backward compatibility.
404 Common Report Var(flag_cx_limited_range) Optimization
405 Omit range reduction step when performing complex division
408 Common Report Var(flag_cx_fortran_rules) Optimization
409 Complex multiplication and division follow Fortran rules
412 Common Report Var(flag_data_sections) Optimization
413 Place data items into their own section
417 List all available debugging counters with their limits and counts.
420 Common RejectNegative Joined
421 -fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...] Set the debug counter limit.
424 Common Joined RejectNegative
425 Map one directory name to another in debug information
427 ; Nonzero for -fdefer-pop: don't pop args after each function call
428 ; instead save them up to pop many calls' args with one insns.
430 Common Report Var(flag_defer_pop) Optimization
431 Defer popping functions args from stack until later
434 Common Report Var(flag_delayed_branch) Optimization
435 Attempt to fill delay slots of branch instructions
437 fdelete-null-pointer-checks
438 Common Report Var(flag_delete_null_pointer_checks) Init(1) Optimization
439 Delete useless null pointer checks
441 fdiagnostics-show-location=
442 Common Joined RejectNegative
443 -fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics
445 fdiagnostics-show-option
447 Amend appropriate diagnostic messages with the command line option that controls them
450 Common Joined RejectNegative
451 -fdump-<type> Dump various compiler internals to a file
454 Common Report Var(flag_dump_noaddr)
455 Suppress output of addresses in debugging dumps
458 Common Report Var(flag_dump_unnumbered) VarExists
459 Suppress output of instruction numbers, line number notes and addresses in debugging dumps
462 Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
463 Enable CFI tables via GAS assembler directives.
466 Common Report Var(flag_early_inlining) Init(1) Optimization
467 Perform early inlining
469 feliminate-dwarf2-dups
470 Common Report Var(flag_eliminate_dwarf2_dups)
471 Perform DWARF2 duplicate elimination
473 feliminate-unused-debug-symbols
474 Common Report Var(flag_debug_only_used_symbols)
475 Perform unused type elimination in debug info
477 feliminate-unused-debug-types
478 Common Report Var(flag_eliminate_unused_debug_types) Init(1)
479 Perform unused type elimination in debug info
481 femit-class-debug-always
482 Common Report Var(flag_emit_class_debug_always) Init(0)
483 Do not suppress C++ class debug information.
486 Common Report Var(flag_exceptions) Optimization
487 Enable exception handling
489 fexpensive-optimizations
490 Common Report Var(flag_expensive_optimizations) Optimization
491 Perform a number of minor, expensive optimizations
494 Common Joined RejectNegative
495 -fexcess-precision=[fast|standard] Specify handling of excess floating-point precision
501 Common Report Var(flag_finite_math_only) Optimization
502 Assume no NaNs or infinities are generated
505 Common Joined RejectNegative
506 -ffixed-<register> Mark <register> as being unavailable to the compiler
509 Common Report Var(flag_float_store) Optimization
510 Don't allocate floats and doubles in extended-precision registers
514 Does nothing. Preserved for backward compatibility.
517 Common Report Var(flag_forward_propagate) Optimization
518 Perform a forward propagation pass on RTL
520 ; Nonzero means don't put addresses of constant functions in registers.
521 ; Used for compiling the Unix kernel, where strange substitutions are
522 ; done on the assembly output.
524 Common Report Var(flag_no_function_cse,0)
525 Allow function addresses to be held in registers
528 Common Report Var(flag_function_sections)
529 Place each function into its own section
532 Common Report Var(flag_gcse) Optimization
533 Perform global common subexpression elimination
536 Common Report Var(flag_gcse_lm) Init(1) Optimization
537 Perform enhanced load motion during global common subexpression elimination
540 Common Report Var(flag_gcse_sm) Init(0) Optimization
541 Perform store motion after global common subexpression elimination
544 Common Report Var(flag_gcse_las) Init(0) Optimization
545 Perform redundant load after store elimination in global common subexpression
549 Common Report Var(flag_gcse_after_reload) Optimization
550 Perform global common subexpression elimination after register allocation
553 ; This option is not documented yet as its semantics will change.
555 Common Report Var(flag_graphite)
556 Enable in and out of Graphite representation
559 Common Report Var(flag_loop_strip_mine) Optimization
560 Enable Loop Strip Mining transformation
563 Common Report Var(flag_loop_interchange) Optimization
564 Enable Loop Interchange transformation
567 Common Report Var(flag_loop_block) Optimization
568 Enable Loop Blocking transformation
570 ; This option is not documented as it does not perform any useful optimization.
572 Common Report Var(flag_graphite_identity) Optimization
573 Enable Graphite Identity transformation
575 fguess-branch-probability
576 Common Report Var(flag_guess_branch_prob) Optimization
577 Enable guessing of branch probabilities
579 ; Nonzero means ignore `#ident' directives. 0 means handle them.
580 ; Generate position-independent code for executables if possible
581 ; On SVR4 targets, it also controls whether or not to emit a
582 ; string identifying the compiler.
584 Common Report Var(flag_no_ident,0)
585 Process #ident directives
588 Common Report Var(flag_if_conversion) Optimization
589 Perform conversion of conditional jumps to branchless equivalents
592 Common Report Var(flag_if_conversion2) Optimization
593 Perform conversion of conditional jumps to conditional execution
595 ; -finhibit-size-directive inhibits output of .size for ELF.
596 ; This is used only for compiling crtstuff.c,
597 ; and it may be extended to other effects
598 ; needed for crtstuff.c on other systems.
599 finhibit-size-directive
600 Common Report Var(flag_inhibit_size_directive)
601 Do not generate .size directives
604 Common Report Var(flag_indirect_inlining)
605 Perform indirect inlining
607 ; Nonzero means that functions declared `inline' will be treated
608 ; as `static'. Prevents generation of zillions of copies of unused
609 ; static inline functions; instead, `inlines' are written out
610 ; only when actually used. Used in conjunction with -g. Also
611 ; does the right thing with #pragma interface.
613 Common Report Var(flag_no_inline,0) Init(0)
614 Pay attention to the \"inline\" keyword
616 finline-small-functions
617 Common Report Var(flag_inline_small_functions) Optimization
618 Integrate simple functions into their callers when code size is known to not growth
621 Common Report Var(flag_inline_functions) Optimization
622 Integrate simple functions into their callers
624 finline-functions-called-once
625 Common Report Var(flag_inline_functions_called_once) Init(1) Optimization
626 Integrate functions called once into their callers
629 Common RejectNegative Joined UInteger
632 Common RejectNegative Joined UInteger
633 -finline-limit=<number> Limit the size of inlined functions to <number>
635 finstrument-functions
636 Common Report Var(flag_instrument_function_entry_exit)
637 Instrument function entry and exit with profiling calls
639 finstrument-functions-exclude-function-list=
640 Common RejectNegative Joined
641 -finstrument-functions-exclude-function-list=name,... Do not instrument listed functions
643 finstrument-functions-exclude-file-list=
644 Common RejectNegative Joined
645 -finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files
648 Common Report Var(flag_ipa_cp) Optimization
649 Perform Interprocedural constant propagation
652 Common Report Var(flag_ipa_cp_clone) Optimization
653 Perform cloning to make Interprocedural constant propagation stronger
656 Common Report Var(flag_ipa_pure_const) Init(0) Optimization
657 Discover pure and const functions
660 Common Report Var(flag_ipa_pta) Init(0) Optimization
661 Perform interprocedural points-to analysis
664 Common Report Var(flag_ipa_reference) Init(0) Optimization
665 Discover readonly and non addressable static variables
668 Common Report Var(flag_ipa_type_escape) Init(0) Optimization
669 Type based escape and alias analysis
672 Common Report Var(flag_ipa_matrix_reorg) Optimization
673 Perform matrix layout flattening and transposing based
674 on profiling information.
677 Common Report Var(flag_ipa_struct_reorg)
678 Perform structure layout optimizations based
679 on profiling information.
682 Common Joined RejectNegative
683 -fira-algorithm=[CB|priority] Set the used IRA algorithm
686 Common Joined RejectNegative
687 -fira-region=[one|all|mixed] Set regions for IRA
690 Common Report Var(flag_ira_coalesce) Init(0)
691 Do optimistic coalescing.
693 fira-share-save-slots
694 Common Report Var(flag_ira_share_save_slots) Init(1)
695 Share slots for saving different hard registers.
697 fira-share-spill-slots
698 Common Report Var(flag_ira_share_spill_slots) Init(1)
699 Share stack slots for spilled pseudo-registers.
702 Common RejectNegative Joined UInteger
703 -fira-verbose=<number> Control IRA's level of diagnostic messages.
706 Common Report Var(flag_ivopts) Init(1) Optimization
707 Optimize induction variables on trees
710 Common Var(flag_jump_tables) Init(1) Optimization
711 Use jump tables for sufficiently large switch statements
713 fkeep-inline-functions
714 Common Report Var(flag_keep_inline_functions)
715 Generate code for functions even if they are fully inlined
718 Common Report Var(flag_keep_static_consts) Init(1)
719 Emit static const variables even if they are not used
722 Common Report Var(flag_leading_underscore) Init(-1)
723 Give external symbols a leading underscore
727 Does nothing. Preserved for backward compatibility.
730 Common Report Var(flag_errno_math) Init(1) Optimization
731 Set errno after built-in math functions
734 Common Report Var(mem_report)
735 Report on permanent memory allocation
737 ; This will attempt to merge constant section constants, if 1 only
738 ; string constants and constants from constant pool, if 2 also constant
741 Common Report Var(flag_merge_constants,2) Init(1) Optimization
742 Attempt to merge identical constants and constant variables
745 Common Report Var(flag_merge_constants,1) VarExists Optimization
746 Attempt to merge identical constants across compilation units
749 Common Report Var(flag_merge_debug_strings) Init(1)
750 Attempt to merge identical debug strings across compilation units
753 Common RejectNegative Joined UInteger
754 -fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping
757 Common Report Var(flag_modulo_sched) Optimization
758 Perform SMS based modulo scheduling before the first scheduling pass
760 fmodulo-sched-allow-regmoves
761 Common Report Var(flag_modulo_sched_allow_regmoves)
762 Perform SMS based modulo scheduling with register moves allowed
764 fmove-loop-invariants
765 Common Report Var(flag_move_loop_invariants) Init(1) Optimization
766 Move loop invariant computations out of loops
769 Common RejectNegative Report Var(flag_mudflap)
770 Add mudflap bounds-checking instrumentation for single-threaded program
773 Common RejectNegative Report VarExists Var(flag_mudflap,2)
774 Add mudflap bounds-checking instrumentation for multi-threaded program
777 Common RejectNegative Report Var(flag_mudflap_ignore_reads)
778 Ignore read operations when inserting mudflap instrumentation
781 Common Var(flag_dce) Init(1) Optimization
782 Use the RTL dead code elimination pass
785 Common Var(flag_dse) Init(1) Optimization
786 Use the RTL dead store elimination pass
788 freschedule-modulo-scheduled-loops
789 Common Report Var(flag_resched_modulo_sched) Optimization
790 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
793 Common Report Var(flag_non_call_exceptions) Optimization
794 Support synchronous non-call exceptions
797 Common Report Var(flag_omit_frame_pointer) Optimization
798 When possible do not generate stack frames
800 foptimize-register-move
801 Common Report Var(flag_regmove) Optimization
802 Do the full register move optimization pass
804 foptimize-sibling-calls
805 Common Report Var(flag_optimize_sibling_calls) Optimization
806 Optimize sibling and tail recursive calls
809 Common Report Var(pre_ipa_mem_report)
810 Report on memory allocation before interprocedural optimization
813 Common Report Var(post_ipa_mem_report)
814 Report on memory allocation before interprocedural optimization
817 Common Report Var(flag_pack_struct) Optimization
818 Pack structure members together without holes
821 Common RejectNegative Joined UInteger Optimization
822 -fpack-struct=<number> Set initial maximum structure member alignment
825 Common Report Var(flag_pcc_struct_return,1) VarExists
826 Return small aggregates in memory, not registers
829 Common Report Var(flag_peel_loops) Optimization
833 Common Report Var(flag_no_peephole,0) Optimization
834 Enable machine specific peephole optimizations
837 Common Report Var(flag_peephole2) Optimization
838 Enable an RTL peephole pass before sched2
841 Common Report Var(flag_pic,2)
842 Generate position-independent code if possible (large mode)
845 Common Report Var(flag_pie,2)
846 Generate position-independent code for executables if possible (large mode)
849 Common Report Var(flag_pic,1) VarExists
850 Generate position-independent code if possible (small mode)
853 Common Report Var(flag_pie,1) VarExists
854 Generate position-independent code for executables if possible (small mode)
857 Common Joined RejectNegative
858 Specify a plugin to load
861 Common Joined RejectNegative
862 -fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>
864 fpredictive-commoning
865 Common Report Var(flag_predictive_commoning) Optimization
866 Run predictive commoning optimization.
868 fprefetch-loop-arrays
869 Common Report Var(flag_prefetch_loop_arrays) Optimization
870 Generate prefetch instructions, if available, for arrays in loops
873 Common Report Var(profile_flag)
874 Enable basic program profiling code
877 Common Report Var(profile_arc_flag)
878 Insert arc-based program profiling code
881 Common Joined RejectNegative
882 Set the top-level directory for storing the profile data.
883 The default is 'pwd'.
886 Common Report Var(flag_profile_correction)
887 Enable correction of flow inconsistent profile data input
891 Enable common options for generating profile info for profile feedback directed optimizations
894 Common Joined RejectNegative
895 Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=
898 Common Var(flag_profile_use)
899 Enable common options for performing profile feedback directed optimizations
902 Common Joined RejectNegative
903 Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=
906 Common Report Var(flag_profile_values)
907 Insert code to profile values of expressions
913 Common Joined RejectNegative
914 -frandom-seed=<string> Make compile reproducible using <string>
916 ; This switch causes the command line that was used to create an
917 ; object file to be recorded into the object file. The exact format
918 ; of this recording is target and binary file format dependent.
919 ; It is related to the -fverbose-asm switch, but that switch only
920 ; records information in the assembler output file as comments, so
921 ; they never reach the object file.
923 Common Report Var(flag_record_gcc_switches)
924 Record gcc command line switches in the object file.
927 Common Report Var(flag_pcc_struct_return,0) VarExists Optimization
928 Return small aggregates in registers
931 Common Report Var(flag_regmove) Optimization
932 Enables a register move optimization
935 Common Report Var(flag_rename_registers) Init(2) Optimization
936 Perform a register renaming optimization pass
939 Common Report Var(flag_reorder_blocks) Optimization
940 Reorder basic blocks to improve code placement
942 freorder-blocks-and-partition
943 Common Report Var(flag_reorder_blocks_and_partition) Optimization
944 Reorder basic blocks and partition into hot and cold sections
947 Common Report Var(flag_reorder_functions) Optimization
948 Reorder functions to improve code placement
950 frerun-cse-after-loop
951 Common Report Var(flag_rerun_cse_after_loop) Init(2) Optimization
952 Add a common subexpression elimination pass after loop optimizations
956 Does nothing. Preserved for backward compatibility.
959 Common Report Var(flag_rounding_math) Optimization
960 Disable optimizations that assume default FP rounding behavior
963 Common Report Var(flag_schedule_interblock) Init(1) Optimization
964 Enable scheduling across basic blocks
967 Common Report Var(flag_schedule_speculative) Init(1) Optimization
968 Allow speculative motion of non-loads
971 Common Report Var(flag_schedule_speculative_load) Optimization
972 Allow speculative motion of some loads
974 fsched-spec-load-dangerous
975 Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
976 Allow speculative motion of more loads
979 Common RejectNegative Joined
980 -fsched-verbose=<number> Set the verbosity level of the scheduler
982 fsched2-use-superblocks
983 Common Report Var(flag_sched2_use_superblocks) Optimization
984 If scheduling post reload, do superblock scheduling
987 Common Report Var(flag_sched2_use_traces) Optimization
988 If scheduling post reload, do trace scheduling
991 Common Report Var(flag_schedule_insns) Optimization
992 Reschedule instructions before register allocation
995 Common Report Var(flag_schedule_insns_after_reload) Optimization
996 Reschedule instructions after register allocation
998 ; This flag should be on when a target implements non-trivial
999 ; scheduling hooks, maybe saving some information for its own sake.
1000 ; On IA64, for example, this is used for correct bundling.
1001 fselective-scheduling
1002 Common Report Var(flag_selective_scheduling) Optimization
1003 Schedule instructions using selective scheduling algorithm
1005 fselective-scheduling2
1006 Common Report Var(flag_selective_scheduling2) Optimization
1007 Run selective scheduling after reload
1009 fsel-sched-pipelining
1010 Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
1011 Perform software pipelining of inner loops during selective scheduling
1013 fsel-sched-pipelining-outer-loops
1014 Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
1015 Perform software pipelining of outer loops during selective scheduling
1017 fsel-sched-reschedule-pipelined
1018 Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
1019 Reschedule pipelined regions without pipelining
1021 ; sched_stalled_insns means that insns can be moved prematurely from the queue
1022 ; of stalled insns into the ready list.
1023 fsched-stalled-insns
1024 Common Report Var(flag_sched_stalled_insns) Optimization UInteger
1025 Allow premature scheduling of queued insns
1027 fsched-stalled-insns=
1028 Common RejectNegative Joined UInteger
1029 -fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled
1031 ; sched_stalled_insns_dep controls how many recently scheduled cycles will
1032 ; be examined for a dependency on a stalled insn that is candidate for
1033 ; premature removal from the queue of stalled insns into the ready list (has
1034 ; an effect only if the flag 'sched_stalled_insns' is set).
1035 fsched-stalled-insns-dep
1036 Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
1037 Set dependence distance checking in premature scheduling of queued insns
1039 fsched-stalled-insns-dep=
1040 Common RejectNegative Joined UInteger
1041 -fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns
1044 Common Report Var(flag_section_anchors) Optimization
1045 Access data in the same section from shared anchor points
1048 Common Report Var(flag_see) Init(0)
1049 Eliminate redundant sign extensions using LCM.
1052 Common C ObjC C++ ObjC++ Report Var(flag_show_column) Init(0)
1053 Show column numbers in diagnostics, when available. Default off
1056 Common Report Var(flag_signaling_nans) Optimization
1057 Disable optimizations observable by IEEE signaling NaNs
1060 Common Report Var(flag_signed_zeros) Init(1) Optimization
1061 Disable floating point optimizations that ignore the IEEE signedness of zero
1063 fsingle-precision-constant
1064 Common Report Var(flag_single_precision_constant) Optimization
1065 Convert floating point constants to single precision constants
1067 fsplit-ivs-in-unroller
1068 Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
1069 Split lifetimes of induction variables when loops are unrolled
1072 Common Report Var(flag_split_wide_types) Optimization
1073 Split wide types into independent registers
1075 fvariable-expansion-in-unroller
1076 Common Report Var(flag_variable_expansion_in_unroller) Optimization
1077 Apply variable expansion when loops are unrolled
1080 Common Report RejectNegative Joined
1081 -fstack-check=[no|generic|specific] Insert stack checking code into the program
1085 Insert stack checking code into the program. Same as -fstack-check=specific
1090 fstack-limit-register=
1091 Common RejectNegative Joined
1092 -fstack-limit-register=<register> Trap if the stack goes past <register>
1094 fstack-limit-symbol=
1095 Common RejectNegative Joined
1096 -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
1099 Common Report Var(flag_stack_protect, 1)
1100 Use propolice as a stack protection method
1102 fstack-protector-all
1103 Common Report RejectNegative Var(flag_stack_protect, 2) VarExists
1104 Use a stack protection method for every function
1108 Does nothing. Preserved for backward compatibility.
1110 ; Nonzero if we should do (language-dependent) alias analysis.
1111 ; Typically, this analysis will assume that expressions of certain
1112 ; types do not alias expressions of certain other types. Only used
1113 ; if alias analysis (in general) is enabled.
1115 Common Report Var(flag_strict_aliasing) Optimization
1116 Assume strict aliasing rules apply
1119 Common Report Var(flag_strict_overflow)
1120 Treat signed overflow as undefined
1123 Common Report Var(flag_syntax_only)
1124 Check for syntax errors, then stop
1127 Common Report Var(flag_test_coverage)
1128 Create data files needed by \"gcov\"
1131 Common Report Var(flag_thread_jumps) Optimization
1132 Perform jump threading optimizations
1135 Common Report Var(time_report)
1136 Report the time taken by each compiler pass
1139 Common Joined RejectNegative
1140 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model
1143 Common Report Var(flag_toplevel_reorder) Init(2) Optimization
1144 Reorder top level functions, variables, and asms
1147 Common Report Var(flag_tracer)
1148 Perform superblock formation via tail duplication
1150 ; Zero means that floating-point math operations cannot generate a
1151 ; (user-visible) trap. This is the case, for example, in nonstop
1152 ; IEEE 754 arithmetic.
1154 Common Report Var(flag_trapping_math) Init(1) Optimization
1155 Assume floating-point operations can trap
1158 Common Report Var(flag_trapv) Optimization
1159 Trap for signed overflow in addition, subtraction and multiplication
1162 Common Report Var(flag_tree_ccp) Optimization
1163 Enable SSA-CCP optimization on trees
1167 Does nothing. Preserved for backward compatibility.
1170 Common Report Var(flag_tree_ch) Optimization
1171 Enable loop header copying on trees
1174 Common Report Var(flag_tree_copyrename) Optimization
1175 Replace SSA temporaries with better names in copies
1178 Common Report Var(flag_tree_copy_prop) Optimization
1179 Enable copy propagation on trees
1181 ftree-store-copy-prop
1183 Does nothing. Preserved for backward compatibility.
1186 Common Report Var(flag_tree_cselim) Init(2) Optimization
1187 Transform condition stores into unconditional ones
1189 ftree-switch-conversion
1190 Common Report Var(flag_tree_switch_conversion) Optimization
1191 Perform conversions of switch initializations.
1194 Common Report Var(flag_tree_dce) Optimization
1195 Enable SSA dead code elimination optimization on trees
1197 ftree-dominator-opts
1198 Common Report Var(flag_tree_dom) Optimization
1199 Enable dominator optimizations
1202 Common Report Var(flag_tree_dse) Optimization
1203 Enable dead store elimination
1206 Common Report Var(flag_tree_forwprop) Init(1) Optimization
1207 Enable forward propagation on trees
1210 Common Report Var(flag_tree_fre) Optimization
1211 Enable Full Redundancy Elimination (FRE) on trees
1213 ftree-loop-distribution
1214 Common Report Var(flag_tree_loop_distribution) Optimization
1215 Enable loop distribution on trees
1218 Common Report Var(flag_tree_loop_im) Init(1) Optimization
1219 Enable loop invariant motion on trees
1222 Common Report Var(flag_tree_loop_linear) Optimization
1223 Enable linear loop transforms on trees
1226 Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
1227 Create canonical induction variables in loops
1230 Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
1231 Enable loop optimizations on tree level
1233 ftree-parallelize-loops=
1234 Common Report Joined UInteger Var(flag_tree_parallelize_loops) Init(1)
1235 Enable automatic parallelization of loops
1238 Common Report Var(flag_tree_phiprop) Init(1) Optimization
1239 Enable hoisting loads from conditional pointers.
1242 Common Report Var(flag_tree_pre) Optimization
1243 Enable SSA-PRE optimization on trees
1246 Common Report Var(flag_tree_pta) Init(1) Optimization
1247 Perform function-local points-to analysis on trees.
1250 Common Report Var(flag_tree_reassoc) Init(1) Optimization
1251 Enable reassociation on tree level
1255 Does nothing. Preserved for backward compatibility.
1258 Common Report Var(flag_tree_sink) Optimization
1259 Enable SSA code sinking on trees
1262 Common Report Var(flag_tree_sra) Optimization
1263 Perform scalar replacement of aggregates
1266 Common Report Var(flag_tree_ter) Init(1) Optimization
1267 Replace temporary expressions in the SSA->normal pass
1270 Common Report Var(flag_tree_live_range_split) Optimization
1271 Perform live range splitting during the SSA->normal pass
1274 Common Report Var(flag_tree_vrp) Init(0) Optimization
1275 Perform Value Range Propagation on trees
1278 Common Report Var(flag_unit_at_a_time) Init(1) Optimization
1279 Compile whole compilation unit at a time
1282 Common Report Var(flag_unroll_loops) Optimization
1283 Perform loop unrolling when iteration count is known
1286 Common Report Var(flag_unroll_all_loops) Optimization
1287 Perform loop unrolling for all loops
1289 ; Nonzero means that loop optimizer may assume that the induction variables
1290 ; that control loops do not overflow and that the loops with nontrivial
1291 ; exit condition are not infinite
1292 funsafe-loop-optimizations
1293 Common Report Var(flag_unsafe_loop_optimizations) Optimization
1294 Allow loop optimizations to assume that the loops behave in normal way
1297 Common Report Var(flag_associative_math)
1298 Allow optimization for floating-point arithmetic which may change the
1299 result of the operation due to rounding.
1302 Common Report Var(flag_reciprocal_math)
1303 Same as -fassociative-math for expressions which include division.
1305 ; Nonzero means that unsafe floating-point math optimizations are allowed
1306 ; for the sake of speed. IEEE compliance is not guaranteed, and operations
1307 ; are allowed to assume that their arguments and results are "normal"
1308 ; (e.g., nonnegative for SQRT).
1309 funsafe-math-optimizations
1310 Common Report Var(flag_unsafe_math_optimizations) Optimization
1311 Allow math optimizations that may violate IEEE or ISO standards
1314 Common Report Var(flag_unswitch_loops) Optimization
1315 Perform loop unswitching
1318 Common Report Var(flag_unwind_tables) Optimization
1319 Just generate unwind tables for exception handling
1322 Common Report Var(flag_var_tracking) VarExists Optimization
1323 Perform variable tracking
1325 fvar-tracking-uninit
1326 Common Report Var(flag_var_tracking_uninit) Optimization
1327 Perform variable tracking and also tag variables that are uninitialized
1330 Common Report Var(flag_tree_vectorize) Optimization
1331 Enable loop vectorization on trees
1334 Common Report Var(flag_tree_slp_vectorize) Init(2) Optimization
1335 Enable basic block vectorization (SLP) on trees
1338 Common Report Var(flag_vect_cost_model) Optimization
1339 Enable use of cost model in vectorization
1341 ftree-vect-loop-version
1342 Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization
1343 Enable loop versioning when doing loop vectorization on trees
1345 ftree-vectorizer-verbose=
1346 Common RejectNegative Joined
1347 -ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer
1350 Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
1351 Enable copy propagation of scalar-evolution information.
1353 ; -fverbose-asm causes extra commentary information to be produced in
1354 ; the generated assembly code (to make it more readable). This option
1355 ; is generally only of use to those who actually need to read the
1356 ; generated assembly code (perhaps while debugging the compiler itself).
1357 ; -fno-verbose-asm, the default, causes the extra information
1358 ; to not be added and is useful when comparing two assembler files.
1360 Common Report Var(flag_verbose_asm)
1361 Add extra commentary to assembler output
1364 Common Joined RejectNegative
1365 -fvisibility=[default|internal|hidden|protected] Set the default symbol visibility
1369 Common Report Var(flag_value_profile_transformations) Optimization
1370 Use expression value profiles in optimizations
1373 Common Report Var(flag_web) Init(2) Optimization
1374 Construct webs and split unrelated uses of single variable
1376 ftree-builtin-call-dce
1377 Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
1378 Enable conditional dead code elimination for builtin calls
1381 Common Report Var(flag_whole_program) Init(0) Optimization
1382 Perform whole program optimizations
1385 Common Report Var(flag_wrapv) Optimization
1386 Assume signed arithmetic overflow wraps around
1388 fzero-initialized-in-bss
1389 Common Report Var(flag_zero_initialized_in_bss) Init(1)
1390 Put zero initialized data in the bss section
1393 Common JoinedOrMissing
1394 Generate debug information in default format
1397 Common JoinedOrMissing Negative(gdwarf-2)
1398 Generate debug information in COFF format
1401 Common JoinedOrMissing Negative(gstabs)
1402 Generate debug information in DWARF v2 format
1405 Common JoinedOrMissing
1406 Generate debug information in default extended format
1409 Common JoinedOrMissing Negative(gstabs+)
1410 Generate debug information in STABS format
1413 Common JoinedOrMissing Negative(gvms)
1414 Generate debug information in extended STABS format
1417 Common JoinedOrMissing Negative(gxcoff)
1418 Generate debug information in VMS format
1421 Common JoinedOrMissing Negative(gxcoff+)
1422 Generate debug information in XCOFF format
1425 Common JoinedOrMissing Negative(gcoff)
1426 Generate debug information in extended XCOFF format
1429 Common Joined Separate
1430 -o <file> Place output into <file>
1433 Common Var(profile_flag)
1434 Enable function profiling
1437 Common Var(pedantic)
1438 Issue warnings needed for strict compliance to the standard
1442 Like -pedantic but issue them as errors
1445 Common Var(quiet_flag)
1446 Do not display functions compiled or elapsed time
1449 Common Var(version_flag)
1450 Display the compiler's version
1453 Common Var(inhibit_warnings)
1457 Common RejectNegative Negative(pie)
1458 Create a shared library
1461 Common RejectNegative Negative(shared)
1462 Create a position independent executable
1464 ; This comment is to ensure we retain the blank line above.