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 JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
385 -fcompare-debug[=<opts>] Compile with and without e.g. -gtoggle, and compare the final-insns dump
387 fcompare-debug-second
388 Common RejectNegative Var(flag_compare_debug)
389 Run only the second compilation of -fcompare-debug
392 Common Var(flag_conserve_stack) Optimization
393 Do not perform optimizations increasing noticeably stack usage
396 Common Report Var(flag_cprop_registers) Optimization
397 Perform a register copy-propagation optimization pass
400 Common Report Var(flag_crossjumping) Optimization
401 Perform cross-jumping optimization
404 Common Report Var(flag_cse_follow_jumps) Optimization
405 When running CSE, follow jumps to their targets
409 Does nothing. Preserved for backward compatibility.
412 Common Report Var(flag_cx_limited_range) Optimization
413 Omit range reduction step when performing complex division
416 Common Report Var(flag_cx_fortran_rules) Optimization
417 Complex multiplication and division follow Fortran rules
420 Common Report Var(flag_data_sections) Optimization
421 Place data items into their own section
425 List all available debugging counters with their limits and counts.
428 Common RejectNegative Joined
429 -fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...] Set the debug counter limit.
432 Common Joined RejectNegative
433 Map one directory name to another in debug information
435 ; Nonzero for -fdefer-pop: don't pop args after each function call
436 ; instead save them up to pop many calls' args with one insns.
438 Common Report Var(flag_defer_pop) Optimization
439 Defer popping functions args from stack until later
442 Common Report Var(flag_delayed_branch) Optimization
443 Attempt to fill delay slots of branch instructions
445 fdelete-null-pointer-checks
446 Common Report Var(flag_delete_null_pointer_checks) Init(1) Optimization
447 Delete useless null pointer checks
449 fdiagnostics-show-location=
450 Common Joined RejectNegative
451 -fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics
453 fdiagnostics-show-option
455 Amend appropriate diagnostic messages with the command line option that controls them
458 Common Joined RejectNegative
459 -fdump-<type> Dump various compiler internals to a file
462 Common RejectNegative Joined Var(flag_dump_final_insns)
463 -fdump-final-insns=filename Dump to filename the insns at the end of translation
466 Common Report Var(flag_dump_noaddr)
467 Suppress output of addresses in debugging dumps
470 Common Report Var(flag_dump_unnumbered) VarExists
471 Suppress output of instruction numbers, line number notes and addresses in debugging dumps
473 fdump-unnumbered-links
474 Common Report Var(flag_dump_unnumbered_links) VarExists
475 Suppress output of previous and next insn numbers in debugging dumps
478 Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
479 Enable CFI tables via GAS assembler directives.
482 Common Report Var(flag_early_inlining) Init(1) Optimization
483 Perform early inlining
485 feliminate-dwarf2-dups
486 Common Report Var(flag_eliminate_dwarf2_dups)
487 Perform DWARF2 duplicate elimination
489 feliminate-unused-debug-symbols
490 Common Report Var(flag_debug_only_used_symbols)
491 Perform unused type elimination in debug info
493 feliminate-unused-debug-types
494 Common Report Var(flag_eliminate_unused_debug_types) Init(1)
495 Perform unused type elimination in debug info
497 femit-class-debug-always
498 Common Report Var(flag_emit_class_debug_always) Init(0)
499 Do not suppress C++ class debug information.
502 Common Report Var(flag_exceptions) Optimization
503 Enable exception handling
505 fexpensive-optimizations
506 Common Report Var(flag_expensive_optimizations) Optimization
507 Perform a number of minor, expensive optimizations
510 Common Joined RejectNegative
511 -fexcess-precision=[fast|standard] Specify handling of excess floating-point precision
517 Common Report Var(flag_finite_math_only) Optimization
518 Assume no NaNs or infinities are generated
521 Common Joined RejectNegative
522 -ffixed-<register> Mark <register> as being unavailable to the compiler
525 Common Report Var(flag_float_store) Optimization
526 Don't allocate floats and doubles in extended-precision registers
530 Does nothing. Preserved for backward compatibility.
533 Common Report Var(flag_forward_propagate) Optimization
534 Perform a forward propagation pass on RTL
536 ; Nonzero means don't put addresses of constant functions in registers.
537 ; Used for compiling the Unix kernel, where strange substitutions are
538 ; done on the assembly output.
540 Common Report Var(flag_no_function_cse,0)
541 Allow function addresses to be held in registers
544 Common Report Var(flag_function_sections)
545 Place each function into its own section
548 Common Report Var(flag_gcse) Optimization
549 Perform global common subexpression elimination
552 Common Report Var(flag_gcse_lm) Init(1) Optimization
553 Perform enhanced load motion during global common subexpression elimination
556 Common Report Var(flag_gcse_sm) Init(0) Optimization
557 Perform store motion after global common subexpression elimination
560 Common Report Var(flag_gcse_las) Init(0) Optimization
561 Perform redundant load after store elimination in global common subexpression
565 Common Report Var(flag_gcse_after_reload) Optimization
566 Perform global common subexpression elimination after register allocation
569 ; This option is not documented yet as its semantics will change.
571 Common Report Var(flag_graphite)
572 Enable in and out of Graphite representation
575 Common Report Var(flag_graphite_identity) Optimization
576 Enable Graphite Identity transformation
578 ; This option is not documented as it does not perform any useful optimization.
580 Common Report Var(flag_graphite_write) Optimization
581 Write Graphite transformation file
583 ; This option is not documented as it does not perform any useful optimization.
585 Common Report Var(flag_graphite_read) Optimization
586 Read Graphite transformation file
588 ; This option is not documented as it will be removed
589 floop-parallelize-all
590 Common Report Var(flag_loop_parallelize_all) Optimization
591 Mark all loops as parallel
594 Common Report Var(flag_loop_strip_mine) Optimization
595 Enable Loop Strip Mining transformation
598 Common Report Var(flag_loop_interchange) Optimization
599 Enable Loop Interchange transformation
602 Common Report Var(flag_loop_block) Optimization
603 Enable Loop Blocking transformation
605 fguess-branch-probability
606 Common Report Var(flag_guess_branch_prob) Optimization
607 Enable guessing of branch probabilities
609 ; Nonzero means ignore `#ident' directives. 0 means handle them.
610 ; Generate position-independent code for executables if possible
611 ; On SVR4 targets, it also controls whether or not to emit a
612 ; string identifying the compiler.
614 Common Report Var(flag_no_ident,0)
615 Process #ident directives
618 Common Report Var(flag_if_conversion) Optimization
619 Perform conversion of conditional jumps to branchless equivalents
622 Common Report Var(flag_if_conversion2) Optimization
623 Perform conversion of conditional jumps to conditional execution
625 ; -finhibit-size-directive inhibits output of .size for ELF.
626 ; This is used only for compiling crtstuff.c,
627 ; and it may be extended to other effects
628 ; needed for crtstuff.c on other systems.
629 finhibit-size-directive
630 Common Report Var(flag_inhibit_size_directive)
631 Do not generate .size directives
634 Common Report Var(flag_indirect_inlining)
635 Perform indirect inlining
637 ; Nonzero means that functions declared `inline' will be treated
638 ; as `static'. Prevents generation of zillions of copies of unused
639 ; static inline functions; instead, `inlines' are written out
640 ; only when actually used. Used in conjunction with -g. Also
641 ; does the right thing with #pragma interface.
643 Common Report Var(flag_no_inline,0) Init(0)
644 Pay attention to the \"inline\" keyword
646 finline-small-functions
647 Common Report Var(flag_inline_small_functions) Optimization
648 Integrate simple functions into their callers when code size is known to not growth
651 Common Report Var(flag_inline_functions) Optimization
652 Integrate simple functions into their callers
654 finline-functions-called-once
655 Common Report Var(flag_inline_functions_called_once) Init(1) Optimization
656 Integrate functions called once into their callers
659 Common RejectNegative Joined UInteger
662 Common RejectNegative Joined UInteger
663 -finline-limit=<number> Limit the size of inlined functions to <number>
665 finstrument-functions
666 Common Report Var(flag_instrument_function_entry_exit)
667 Instrument function entry and exit with profiling calls
669 finstrument-functions-exclude-function-list=
670 Common RejectNegative Joined
671 -finstrument-functions-exclude-function-list=name,... Do not instrument listed functions
673 finstrument-functions-exclude-file-list=
674 Common RejectNegative Joined
675 -finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files
678 Common Report Var(flag_ipa_cp) Optimization
679 Perform Interprocedural constant propagation
682 Common Report Var(flag_ipa_cp_clone) Optimization
683 Perform cloning to make Interprocedural constant propagation stronger
686 Common Report Var(flag_ipa_pure_const) Init(0) Optimization
687 Discover pure and const functions
690 Common Report Var(flag_ipa_pta) Init(0) Optimization
691 Perform interprocedural points-to analysis
694 Common Report Var(flag_ipa_reference) Init(0) Optimization
695 Discover readonly and non addressable static variables
698 Common Report Var(flag_ipa_type_escape) Init(0) Optimization
699 Type based escape and alias analysis
702 Common Report Var(flag_ipa_matrix_reorg) Optimization
703 Perform matrix layout flattening and transposing based
704 on profiling information.
707 Common Report Var(flag_ipa_struct_reorg)
708 Perform structure layout optimizations based
709 on profiling information.
712 Common Joined RejectNegative
713 -fira-algorithm=[CB|priority] Set the used IRA algorithm
716 Common Joined RejectNegative
717 -fira-region=[one|all|mixed] Set regions for IRA
720 Common Report Var(flag_ira_coalesce) Init(0)
721 Do optimistic coalescing.
723 fira-share-save-slots
724 Common Report Var(flag_ira_share_save_slots) Init(1)
725 Share slots for saving different hard registers.
727 fira-share-spill-slots
728 Common Report Var(flag_ira_share_spill_slots) Init(1)
729 Share stack slots for spilled pseudo-registers.
732 Common RejectNegative Joined UInteger
733 -fira-verbose=<number> Control IRA's level of diagnostic messages.
736 Common Report Var(flag_ivopts) Init(1) Optimization
737 Optimize induction variables on trees
740 Common Var(flag_jump_tables) Init(1) Optimization
741 Use jump tables for sufficiently large switch statements
743 fkeep-inline-functions
744 Common Report Var(flag_keep_inline_functions)
745 Generate code for functions even if they are fully inlined
748 Common Report Var(flag_keep_static_consts) Init(1)
749 Emit static const variables even if they are not used
752 Common Report Var(flag_leading_underscore) Init(-1)
753 Give external symbols a leading underscore
757 Does nothing. Preserved for backward compatibility.
760 Common Report Var(flag_errno_math) Init(1) Optimization
761 Set errno after built-in math functions
764 Common Report Var(mem_report)
765 Report on permanent memory allocation
767 ; This will attempt to merge constant section constants, if 1 only
768 ; string constants and constants from constant pool, if 2 also constant
771 Common Report Var(flag_merge_constants,2) Init(1) Optimization
772 Attempt to merge identical constants and constant variables
775 Common Report Var(flag_merge_constants,1) VarExists Optimization
776 Attempt to merge identical constants across compilation units
779 Common Report Var(flag_merge_debug_strings) Init(1)
780 Attempt to merge identical debug strings across compilation units
783 Common RejectNegative Joined UInteger
784 -fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping
787 Common Report Var(flag_modulo_sched) Optimization
788 Perform SMS based modulo scheduling before the first scheduling pass
790 fmodulo-sched-allow-regmoves
791 Common Report Var(flag_modulo_sched_allow_regmoves)
792 Perform SMS based modulo scheduling with register moves allowed
794 fmove-loop-invariants
795 Common Report Var(flag_move_loop_invariants) Init(1) Optimization
796 Move loop invariant computations out of loops
799 Common RejectNegative Report Var(flag_mudflap)
800 Add mudflap bounds-checking instrumentation for single-threaded program
803 Common RejectNegative Report VarExists Var(flag_mudflap,2)
804 Add mudflap bounds-checking instrumentation for multi-threaded program
807 Common RejectNegative Report Var(flag_mudflap_ignore_reads)
808 Ignore read operations when inserting mudflap instrumentation
811 Common Var(flag_dce) Init(1) Optimization
812 Use the RTL dead code elimination pass
815 Common Var(flag_dse) Init(1) Optimization
816 Use the RTL dead store elimination pass
818 freschedule-modulo-scheduled-loops
819 Common Report Var(flag_resched_modulo_sched) Optimization
820 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
823 Common Report Var(flag_non_call_exceptions) Optimization
824 Support synchronous non-call exceptions
827 Common Report Var(flag_omit_frame_pointer) Optimization
828 When possible do not generate stack frames
830 foptimize-register-move
831 Common Report Var(flag_regmove) Optimization
832 Do the full register move optimization pass
834 foptimize-sibling-calls
835 Common Report Var(flag_optimize_sibling_calls) Optimization
836 Optimize sibling and tail recursive calls
839 Common Report Var(pre_ipa_mem_report)
840 Report on memory allocation before interprocedural optimization
843 Common Report Var(post_ipa_mem_report)
844 Report on memory allocation before interprocedural optimization
847 Common Report Var(flag_pack_struct) Optimization
848 Pack structure members together without holes
851 Common RejectNegative Joined UInteger Optimization
852 -fpack-struct=<number> Set initial maximum structure member alignment
855 Common Report Var(flag_pcc_struct_return,1) VarExists
856 Return small aggregates in memory, not registers
859 Common Report Var(flag_peel_loops) Optimization
863 Common Report Var(flag_no_peephole,0) Optimization
864 Enable machine specific peephole optimizations
867 Common Report Var(flag_peephole2) Optimization
868 Enable an RTL peephole pass before sched2
871 Common Report Var(flag_pic,2)
872 Generate position-independent code if possible (large mode)
875 Common Report Var(flag_pie,2)
876 Generate position-independent code for executables if possible (large mode)
879 Common Report Var(flag_pic,1) VarExists
880 Generate position-independent code if possible (small mode)
883 Common Report Var(flag_pie,1) VarExists
884 Generate position-independent code for executables if possible (small mode)
887 Common Joined RejectNegative
888 Specify a plugin to load
891 Common Joined RejectNegative
892 -fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>
894 fpredictive-commoning
895 Common Report Var(flag_predictive_commoning) Optimization
896 Run predictive commoning optimization.
898 fprefetch-loop-arrays
899 Common Report Var(flag_prefetch_loop_arrays) Optimization
900 Generate prefetch instructions, if available, for arrays in loops
903 Common Report Var(profile_flag)
904 Enable basic program profiling code
907 Common Report Var(profile_arc_flag)
908 Insert arc-based program profiling code
911 Common Joined RejectNegative
912 Set the top-level directory for storing the profile data.
913 The default is 'pwd'.
916 Common Report Var(flag_profile_correction)
917 Enable correction of flow inconsistent profile data input
921 Enable common options for generating profile info for profile feedback directed optimizations
924 Common Joined RejectNegative
925 Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=
928 Common Var(flag_profile_use)
929 Enable common options for performing profile feedback directed optimizations
932 Common Joined RejectNegative
933 Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=
936 Common Report Var(flag_profile_values)
937 Insert code to profile values of expressions
943 Common Joined RejectNegative
944 -frandom-seed=<string> Make compile reproducible using <string>
946 ; This switch causes the command line that was used to create an
947 ; object file to be recorded into the object file. The exact format
948 ; of this recording is target and binary file format dependent.
949 ; It is related to the -fverbose-asm switch, but that switch only
950 ; records information in the assembler output file as comments, so
951 ; they never reach the object file.
953 Common Report Var(flag_record_gcc_switches)
954 Record gcc command line switches in the object file.
957 Common Report Var(flag_pcc_struct_return,0) VarExists Optimization
958 Return small aggregates in registers
961 Common Report Var(flag_regmove) Optimization
962 Enables a register move optimization
965 Common Report Var(flag_rename_registers) Init(2) Optimization
966 Perform a register renaming optimization pass
969 Common Report Var(flag_reorder_blocks) Optimization
970 Reorder basic blocks to improve code placement
972 freorder-blocks-and-partition
973 Common Report Var(flag_reorder_blocks_and_partition) Optimization
974 Reorder basic blocks and partition into hot and cold sections
977 Common Report Var(flag_reorder_functions) Optimization
978 Reorder functions to improve code placement
980 frerun-cse-after-loop
981 Common Report Var(flag_rerun_cse_after_loop) Init(2) Optimization
982 Add a common subexpression elimination pass after loop optimizations
986 Does nothing. Preserved for backward compatibility.
989 Common Report Var(flag_rounding_math) Optimization
990 Disable optimizations that assume default FP rounding behavior
993 Common Report Var(flag_schedule_interblock) Init(1) Optimization
994 Enable scheduling across basic blocks
997 Common Report Var(flag_sched_pressure) Init(0) Optimization
998 Enable register pressure sensitive insn scheduling
1001 Common Report Var(flag_schedule_speculative) Init(1) Optimization
1002 Allow speculative motion of non-loads
1005 Common Report Var(flag_schedule_speculative_load) Optimization
1006 Allow speculative motion of some loads
1008 fsched-spec-load-dangerous
1009 Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
1010 Allow speculative motion of more loads
1013 Common RejectNegative Joined
1014 -fsched-verbose=<number> Set the verbosity level of the scheduler
1016 fsched2-use-superblocks
1017 Common Report Var(flag_sched2_use_superblocks) Optimization
1018 If scheduling post reload, do superblock scheduling
1021 Common Report Var(flag_sched2_use_traces) Optimization
1022 If scheduling post reload, do trace scheduling
1025 Common Report Var(flag_schedule_insns) Optimization
1026 Reschedule instructions before register allocation
1029 Common Report Var(flag_schedule_insns_after_reload) Optimization
1030 Reschedule instructions after register allocation
1032 ; This flag should be on when a target implements non-trivial
1033 ; scheduling hooks, maybe saving some information for its own sake.
1034 ; On IA64, for example, this is used for correct bundling.
1035 fselective-scheduling
1036 Common Report Var(flag_selective_scheduling) Optimization
1037 Schedule instructions using selective scheduling algorithm
1039 fselective-scheduling2
1040 Common Report Var(flag_selective_scheduling2) Optimization
1041 Run selective scheduling after reload
1043 fsel-sched-pipelining
1044 Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
1045 Perform software pipelining of inner loops during selective scheduling
1047 fsel-sched-pipelining-outer-loops
1048 Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
1049 Perform software pipelining of outer loops during selective scheduling
1051 fsel-sched-reschedule-pipelined
1052 Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
1053 Reschedule pipelined regions without pipelining
1055 ; sched_stalled_insns means that insns can be moved prematurely from the queue
1056 ; of stalled insns into the ready list.
1057 fsched-stalled-insns
1058 Common Report Var(flag_sched_stalled_insns) Optimization UInteger
1059 Allow premature scheduling of queued insns
1061 fsched-stalled-insns=
1062 Common RejectNegative Joined UInteger
1063 -fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled
1065 ; sched_stalled_insns_dep controls how many recently scheduled cycles will
1066 ; be examined for a dependency on a stalled insn that is candidate for
1067 ; premature removal from the queue of stalled insns into the ready list (has
1068 ; an effect only if the flag 'sched_stalled_insns' is set).
1069 fsched-stalled-insns-dep
1070 Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
1071 Set dependence distance checking in premature scheduling of queued insns
1073 fsched-stalled-insns-dep=
1074 Common RejectNegative Joined UInteger
1075 -fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns
1077 fsched-group-heuristic
1078 Common Report Var(flag_sched_group_heuristic) Init(1) Optimization
1079 Enable the group heuristic in the scheduler
1081 fsched-critical-path-heuristic
1082 Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization
1083 Enable the critical path heuristic in the scheduler
1085 fsched-spec-insn-heuristic
1086 Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
1087 Enable the speculative instruction heuristic in the scheduler
1089 fsched-rank-heuristic
1090 Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization
1091 Enable the rank heuristic in the scheduler
1093 fsched-last-insn-heuristic
1094 Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization
1095 Enable the last instruction heuristic in the scheduler
1097 fsched-dep-count-heuristic
1098 Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization
1099 Enable the dependent count heuristic in the scheduler
1102 Common Report Var(flag_section_anchors) Optimization
1103 Access data in the same section from shared anchor points
1107 Does nothing. Preserved for backward compatibility.
1110 Common C ObjC C++ ObjC++ Report Var(flag_show_column) Init(1)
1111 Show column numbers in diagnostics, when available. Default on
1114 Common Report Var(flag_signaling_nans) Optimization
1115 Disable optimizations observable by IEEE signaling NaNs
1118 Common Report Var(flag_signed_zeros) Init(1) Optimization
1119 Disable floating point optimizations that ignore the IEEE signedness of zero
1121 fsingle-precision-constant
1122 Common Report Var(flag_single_precision_constant) Optimization
1123 Convert floating point constants to single precision constants
1125 fsplit-ivs-in-unroller
1126 Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
1127 Split lifetimes of induction variables when loops are unrolled
1130 Common Report Var(flag_split_wide_types) Optimization
1131 Split wide types into independent registers
1133 fvariable-expansion-in-unroller
1134 Common Report Var(flag_variable_expansion_in_unroller) Optimization
1135 Apply variable expansion when loops are unrolled
1138 Common Report RejectNegative Joined
1139 -fstack-check=[no|generic|specific] Insert stack checking code into the program
1143 Insert stack checking code into the program. Same as -fstack-check=specific
1148 fstack-limit-register=
1149 Common RejectNegative Joined
1150 -fstack-limit-register=<register> Trap if the stack goes past <register>
1152 fstack-limit-symbol=
1153 Common RejectNegative Joined
1154 -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
1157 Common Report Var(flag_stack_protect, 1)
1158 Use propolice as a stack protection method
1160 fstack-protector-all
1161 Common Report RejectNegative Var(flag_stack_protect, 2) VarExists
1162 Use a stack protection method for every function
1166 Does nothing. Preserved for backward compatibility.
1168 ; Nonzero if we should do (language-dependent) alias analysis.
1169 ; Typically, this analysis will assume that expressions of certain
1170 ; types do not alias expressions of certain other types. Only used
1171 ; if alias analysis (in general) is enabled.
1173 Common Report Var(flag_strict_aliasing) Optimization
1174 Assume strict aliasing rules apply
1177 Common Report Var(flag_strict_overflow)
1178 Treat signed overflow as undefined
1181 Common Report Var(flag_syntax_only)
1182 Check for syntax errors, then stop
1185 Common Report Var(flag_test_coverage)
1186 Create data files needed by \"gcov\"
1189 Common Report Var(flag_thread_jumps) Optimization
1190 Perform jump threading optimizations
1193 Common Report Var(time_report)
1194 Report the time taken by each compiler pass
1197 Common Joined RejectNegative
1198 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model
1201 Common Report Var(flag_toplevel_reorder) Init(2) Optimization
1202 Reorder top level functions, variables, and asms
1205 Common Report Var(flag_tracer)
1206 Perform superblock formation via tail duplication
1208 ; Zero means that floating-point math operations cannot generate a
1209 ; (user-visible) trap. This is the case, for example, in nonstop
1210 ; IEEE 754 arithmetic.
1212 Common Report Var(flag_trapping_math) Init(1) Optimization
1213 Assume floating-point operations can trap
1216 Common Report Var(flag_trapv) Optimization
1217 Trap for signed overflow in addition, subtraction and multiplication
1220 Common Report Var(flag_tree_ccp) Optimization
1221 Enable SSA-CCP optimization on trees
1225 Does nothing. Preserved for backward compatibility.
1228 Common Report Var(flag_tree_ch) Optimization
1229 Enable loop header copying on trees
1232 Common Report Var(flag_tree_copyrename) Optimization
1233 Replace SSA temporaries with better names in copies
1236 Common Report Var(flag_tree_copy_prop) Optimization
1237 Enable copy propagation on trees
1239 ftree-store-copy-prop
1241 Does nothing. Preserved for backward compatibility.
1244 Common Report Var(flag_tree_cselim) Init(2) Optimization
1245 Transform condition stores into unconditional ones
1247 ftree-switch-conversion
1248 Common Report Var(flag_tree_switch_conversion) Optimization
1249 Perform conversions of switch initializations.
1252 Common Report Var(flag_tree_dce) Optimization
1253 Enable SSA dead code elimination optimization on trees
1255 ftree-dominator-opts
1256 Common Report Var(flag_tree_dom) Optimization
1257 Enable dominator optimizations
1260 Common Report Var(flag_tree_dse) Optimization
1261 Enable dead store elimination
1264 Common Report Var(flag_tree_forwprop) Init(1) Optimization
1265 Enable forward propagation on trees
1268 Common Report Var(flag_tree_fre) Optimization
1269 Enable Full Redundancy Elimination (FRE) on trees
1271 ftree-loop-distribution
1272 Common Report Var(flag_tree_loop_distribution) Optimization
1273 Enable loop distribution on trees
1276 Common Report Var(flag_tree_loop_im) Init(1) Optimization
1277 Enable loop invariant motion on trees
1280 Common Report Var(flag_tree_loop_linear) Optimization
1281 Enable linear loop transforms on trees
1284 Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
1285 Create canonical induction variables in loops
1288 Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
1289 Enable loop optimizations on tree level
1291 ftree-parallelize-loops=
1292 Common Report Joined UInteger Var(flag_tree_parallelize_loops) Init(1)
1293 Enable automatic parallelization of loops
1296 Common Report Var(flag_tree_phiprop) Init(1) Optimization
1297 Enable hoisting loads from conditional pointers.
1300 Common Report Var(flag_tree_pre) Optimization
1301 Enable SSA-PRE optimization on trees
1304 Common Report Var(flag_tree_pta) Init(1) Optimization
1305 Perform function-local points-to analysis on trees.
1308 Common Report Var(flag_tree_reassoc) Init(1) Optimization
1309 Enable reassociation on tree level
1313 Does nothing. Preserved for backward compatibility.
1316 Common Report Var(flag_tree_sink) Optimization
1317 Enable SSA code sinking on trees
1320 Common Report Var(flag_tree_sra) Optimization
1321 Perform scalar replacement of aggregates
1324 Common Report Var(flag_tree_ter) Init(1) Optimization
1325 Replace temporary expressions in the SSA->normal pass
1328 Common Report Var(flag_tree_live_range_split) Optimization
1329 Perform live range splitting during the SSA->normal pass
1332 Common Report Var(flag_tree_vrp) Init(0) Optimization
1333 Perform Value Range Propagation on trees
1336 Common Report Var(flag_unit_at_a_time) Init(1) Optimization
1337 Compile whole compilation unit at a time
1340 Common Report Var(flag_unroll_loops) Optimization
1341 Perform loop unrolling when iteration count is known
1344 Common Report Var(flag_unroll_all_loops) Optimization
1345 Perform loop unrolling for all loops
1347 ; Nonzero means that loop optimizer may assume that the induction variables
1348 ; that control loops do not overflow and that the loops with nontrivial
1349 ; exit condition are not infinite
1350 funsafe-loop-optimizations
1351 Common Report Var(flag_unsafe_loop_optimizations) Optimization
1352 Allow loop optimizations to assume that the loops behave in normal way
1355 Common Report Var(flag_associative_math)
1356 Allow optimization for floating-point arithmetic which may change the
1357 result of the operation due to rounding.
1360 Common Report Var(flag_reciprocal_math)
1361 Same as -fassociative-math for expressions which include division.
1363 ; Nonzero means that unsafe floating-point math optimizations are allowed
1364 ; for the sake of speed. IEEE compliance is not guaranteed, and operations
1365 ; are allowed to assume that their arguments and results are "normal"
1366 ; (e.g., nonnegative for SQRT).
1367 funsafe-math-optimizations
1368 Common Report Var(flag_unsafe_math_optimizations) Optimization
1369 Allow math optimizations that may violate IEEE or ISO standards
1372 Common Report Var(flag_unswitch_loops) Optimization
1373 Perform loop unswitching
1376 Common Report Var(flag_unwind_tables) Optimization
1377 Just generate unwind tables for exception handling
1380 Common Report Var(flag_var_tracking) VarExists Optimization
1381 Perform variable tracking
1383 fvar-tracking-assignments
1384 Common Report Var(flag_var_tracking_assignments) VarExists Optimization
1385 Perform variable tracking by annotating assignments
1387 fvar-tracking-assignments-toggle
1388 Common Report Var(flag_var_tracking_assignments_toggle) VarExists Optimization
1389 Toggle -fvar-tracking-assignments
1391 fvar-tracking-uninit
1392 Common Report Var(flag_var_tracking_uninit) Optimization
1393 Perform variable tracking and also tag variables that are uninitialized
1396 Common Report Var(flag_tree_vectorize) Optimization
1397 Enable loop vectorization on trees
1400 Common Report Var(flag_tree_slp_vectorize) Init(2) Optimization
1401 Enable basic block vectorization (SLP) on trees
1404 Common Report Var(flag_vect_cost_model) Optimization
1405 Enable use of cost model in vectorization
1407 ftree-vect-loop-version
1408 Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization
1409 Enable loop versioning when doing loop vectorization on trees
1411 ftree-vectorizer-verbose=
1412 Common RejectNegative Joined
1413 -ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer
1416 Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
1417 Enable copy propagation of scalar-evolution information.
1419 ; -fverbose-asm causes extra commentary information to be produced in
1420 ; the generated assembly code (to make it more readable). This option
1421 ; is generally only of use to those who actually need to read the
1422 ; generated assembly code (perhaps while debugging the compiler itself).
1423 ; -fno-verbose-asm, the default, causes the extra information
1424 ; to not be added and is useful when comparing two assembler files.
1426 Common Report Var(flag_verbose_asm)
1427 Add extra commentary to assembler output
1430 Common Joined RejectNegative
1431 -fvisibility=[default|internal|hidden|protected] Set the default symbol visibility
1435 Common Report Var(flag_value_profile_transformations) Optimization
1436 Use expression value profiles in optimizations
1439 Common Report Var(flag_web) Init(2) Optimization
1440 Construct webs and split unrelated uses of single variable
1442 ftree-builtin-call-dce
1443 Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
1444 Enable conditional dead code elimination for builtin calls
1447 Common Report Var(flag_whole_program) Init(0) Optimization
1448 Perform whole program optimizations
1451 Common Report Var(flag_wrapv) Optimization
1452 Assume signed arithmetic overflow wraps around
1454 fzero-initialized-in-bss
1455 Common Report Var(flag_zero_initialized_in_bss) Init(1)
1456 Put zero initialized data in the bss section
1459 Common JoinedOrMissing
1460 Generate debug information in default format
1463 Common JoinedOrMissing Negative(gdwarf-)
1464 Generate debug information in COFF format
1467 Common Joined UInteger Var(dwarf_version) Init(2) Negative(gstabs)
1468 Generate debug information in DWARF v2 (or later) format
1471 Common JoinedOrMissing
1472 Generate debug information in default extended format
1475 Common JoinedOrMissing Negative(gstabs+)
1476 Generate debug information in STABS format
1479 Common JoinedOrMissing Negative(gvms)
1480 Generate debug information in extended STABS format
1483 Common Report Var(flag_gtoggle)
1484 Toggle debug information generation
1487 Common JoinedOrMissing Negative(gxcoff)
1488 Generate debug information in VMS format
1491 Common JoinedOrMissing Negative(gxcoff+)
1492 Generate debug information in XCOFF format
1495 Common JoinedOrMissing Negative(gcoff)
1496 Generate debug information in extended XCOFF format
1499 Common Joined Separate
1500 -o <file> Place output into <file>
1503 Common Var(profile_flag)
1504 Enable function profiling
1507 Common Var(pedantic)
1508 Issue warnings needed for strict compliance to the standard
1512 Like -pedantic but issue them as errors
1515 Common Var(quiet_flag)
1516 Do not display functions compiled or elapsed time
1519 Common Var(version_flag)
1520 Display the compiler's version
1523 Common Var(inhibit_warnings)
1527 Common RejectNegative Negative(pie)
1528 Create a shared library
1531 Common RejectNegative Negative(shared)
1532 Create a position independent executable
1534 ; This comment is to ensure we retain the blank line above.