1 ; Options for the language- and target-independent parts of the compiler.
3 ; Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
5 ; This file is part of GCC.
7 ; GCC is free software; you can redistribute it and/or modify it under
8 ; the terms of the GNU General Public License as published by the Free
9 ; Software Foundation; either version 3, or (at your option) any later
12 ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13 ; WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 ; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
17 ; You should have received a copy of the GNU General Public License
18 ; along with GCC; see the file COPYING3. If not see
19 ; <http://www.gnu.org/licenses/>.
21 ; See the GCC internals manual (options.texi) for a description of this file's format.
23 ; Please try to keep this file in ASCII collating order.
27 Display this information
31 --help=<class> Display descriptions of a specific class of options. <class> is one or more of optimizers, target, warnings, undocumented, params
35 Alias for --help=target
37 ;; The following three entries are to work around the gcc driver
38 ;; program's insatiable desire to turn options starting with a
39 ;; double dash (--) into options starting with a dash f (-f).
51 --param <param>=<value> Set parameter <param> to value. See below for a complete list of parameters
57 Common Joined Separate UInteger
58 -G<number> Put global and static data smaller than <number> bytes into a special section (on some targets)
61 Common JoinedOrMissing
62 -O<number> Set optimization level to <number>
66 Optimize for space rather than speed
70 This switch is deprecated; use -Wextra instead
73 Common Var(warn_aggregate_return) Warning
74 Warn about returning structures, unions or arrays
77 Common Var(warn_array_bounds) Warning
78 Warn if an array is accessed out of bounds
81 Common Var(warn_attributes) Init(1) Warning
82 Warn about inappropriate attribute usage
85 Common Var(warn_cast_align) Warning
86 Warn about pointer casts which increase alignment
88 Wdeprecated-declarations
89 Common Var(warn_deprecated_decl) Init(1) Warning
90 Warn about uses of __attribute__((deprecated)) declarations
92 Wdisabled-optimization
93 Common Var(warn_disabled_optimization) Warning
94 Warn when an optimization pass is disabled
97 Common Var(warnings_are_errors)
98 Treat all warnings as errors
102 Treat specified warning as error
106 Print extra (possibly unwanted) warnings
109 Common Var(flag_fatal_errors)
110 Exit on the first error occurred
113 Common Var(warn_inline) Warning
114 Warn when an inlined function cannot be inlined
117 Common RejectNegative Joined UInteger Warning
118 -Wlarger-than-<number> Warn if an object is larger than <number> bytes
121 Common Warning Var(warn_logical_op)
122 Warn when a logical operator is suspicously always evaluating to true or false
124 Wunsafe-loop-optimizations
125 Common Var(warn_unsafe_loop_optimizations) Warning
126 Warn if the loop cannot be optimized due to nontrivial assumptions.
129 Common Var(warn_missing_noreturn) Warning
130 Warn about functions which might be candidates for __attribute__((noreturn))
133 Common Var(warn_overflow) Init(1) Warning
134 Warn about overflow in arithmetic expressions
137 Common Var(warn_packed) Warning
138 Warn when the packed attribute has no effect on struct layout
141 Common Var(warn_padded) Warning
142 Warn when padding is required to align structure members
145 Common Var(warn_shadow) Warning
146 Warn when one local variable shadows another
149 Common Var(warn_stack_protect) Warning
150 Warn when not issuing stack smashing protection for some reason
154 Warn about code which might break strict aliasing rules
157 Common Joined UInteger Warning
158 Warn about code which might break strict aliasing rules
162 Warn about optimizations that assume that signed overflow is undefined
165 Common Joined UInteger Warning
166 Warn about optimizations that assume that signed overflow is undefined
169 Common Var(warn_switch) Warning
170 Warn about enumerated switches, with no default, missing a case
173 Common Var(warn_switch_default) Warning
174 Warn about enumerated switches missing a \"default:\" statement
177 Common Var(warn_switch_enum) Warning
178 Warn about all enumerated switches missing a specific case
181 Common Var(warn_system_headers) Warning
182 Do not suppress warnings from system headers
185 Common Var(warn_uninitialized) Warning
186 Warn about uninitialized automatic variables
189 Common Var(warn_notreached) Warning
190 Warn about code that will never be executed
194 Enable all -Wunused- warnings
197 Common Var(warn_unused_function) Warning
198 Warn when a function is unused
201 Common Var(warn_unused_label) Warning
202 Warn when a label is unused
205 Common Var(warn_unused_parameter) Warning
206 Warn when a function parameter is unused
209 Common Var(warn_unused_value) Warning
210 Warn when an expression value is unused
213 Common Var(warn_unused_variable) Warning
214 Warn when a variable is unused
216 Wvolatile-register-var
217 Common Var(warn_register_var) Warning
218 Warn when a register variable is declared volatile
221 Common RejectNegative Var(warn_coverage_mismatch) Warning
222 Warn instead of error in case profiles in -fprofile-use do not match
226 -aux-info <file> Emit declaration information into <file>
239 -d<letters> Enable dumps from specific passes of the compiler
243 -dumpbase <file> Set the file basename to be used for dumps
245 ; The version of the C++ ABI in use. The following values are allowed:
247 ; 0: The version of the ABI believed most conformant with the C++ ABI
248 ; specification. This ABI may change as bugs are discovered and fixed.
249 ; Therefore, 0 will not necessarily indicate the same ABI in different
252 ; 1: The version of the ABI first used in G++ 3.2.
254 ; 2: The version of the ABI first used in G++ 3.4.
256 ; Additional positive integers will be assigned as new versions of
257 ; the ABI become the default version of the ABI.
259 Common Joined UInteger Var(flag_abi_version) Init(2)
262 Common Report Var(align_functions,0)
263 Align the start of functions
266 Common RejectNegative Joined UInteger
269 Common Report Var(align_jumps,0) Optimization
270 Align labels which are only reached by jumping
273 Common RejectNegative Joined UInteger
276 Common Report Var(align_labels,0) Optimization
280 Common RejectNegative Joined UInteger
283 Common Report Var(align_loops) Optimization
284 Align the start of loops
287 Common RejectNegative Joined UInteger
289 ; This flag is only tested if alias checking is enabled.
290 ; 0 if pointer arguments may alias each other. True in C.
291 ; 1 if pointer arguments may not alias each other but may alias
293 ; 2 if pointer arguments may not alias each other and may not
294 ; alias global variables.
295 ; 3 if pointer arguments may not alias anything. True in Fortran.
296 ; Set by the front end.
298 Common Report Var(flag_argument_noalias,0) Optimization
299 Specify that arguments may alias each other and globals
302 Common Report Var(flag_argument_noalias,1) VarExists Optimization
303 Assume arguments may alias globals but not each other
305 fargument-noalias-global
306 Common Report Var(flag_argument_noalias,2) VarExists Optimization
307 Assume arguments alias neither each other nor globals
309 fargument-noalias-anything
310 Common Report Var(flag_argument_noalias,3) VarExists Optimization
311 Assume arguments alias no other storage
313 fasynchronous-unwind-tables
314 Common Report Var(flag_asynchronous_unwind_tables) Optimization
315 Generate unwind tables that are exact at each instruction boundary
318 Common Report Var(flag_auto_inc_dec) Init(1)
319 Generate auto-inc/dec instructions
321 ; -fcheck-bounds causes gcc to generate array bounds checks.
322 ; For C, C++ and ObjC: defaults off.
323 ; For Java: defaults to on.
324 ; For Fortran: defaults to off.
326 Common Report Var(flag_bounds_check)
327 Generate code to check bounds before indexing arrays
330 Common Report Var(flag_branch_on_count_reg) Init(1) Optimization
331 Replace add, compare, branch with branch on count register
333 fbranch-probabilities
334 Common Report Var(flag_branch_probabilities) Optimization
335 Use profiling information for branch probabilities
337 fbranch-target-load-optimize
338 Common Report Var(flag_branch_target_load_optimize) Optimization
339 Perform branch target load optimization before prologue / epilogue threading
341 fbranch-target-load-optimize2
342 Common Report Var(flag_branch_target_load_optimize2) Optimization
343 Perform branch target load optimization after prologue / epilogue threading
346 Common Report Var(flag_btr_bb_exclusive) Optimization
347 Restrict target load migration not to re-use registers in any basic block
350 Common Joined RejectNegative
351 -fcall-saved-<register> Mark <register> as being preserved across functions
354 Common Joined RejectNegative
355 -fcall-used-<register> Mark <register> as being corrupted by function calls
357 ; Nonzero for -fcaller-saves: allocate values in regs that need to
358 ; be saved across function calls, if that produces overall better code.
359 ; Optional now, so people can test it.
361 Common Report Var(flag_caller_saves) Optimization
362 Save registers around function calls
365 Common Report Var(flag_check_data_deps)
366 Compare the results of several data dependence analyzers.
369 Common Report Var(flag_no_common,0) Optimization
370 Do not put uninitialized globals in the common section
373 Common Report Var(flag_cprop_registers) Optimization
374 Perform a register copy-propagation optimization pass
377 Common Report Var(flag_crossjumping) Optimization
378 Perform cross-jumping optimization
381 Common Report Var(flag_cse_follow_jumps) Optimization
382 When running CSE, follow jumps to their targets
385 Common Report Var(flag_cse_skip_blocks) Optimization
386 When running CSE, follow conditional jumps
389 Common Report Var(flag_cx_limited_range) Optimization
390 Omit range reduction step when performing complex division
393 Common Report Var(flag_data_sections) Optimization
394 Place data items into their own section
398 List all available debugging counters with their limits and counts.
401 Common RejectNegative Joined
402 -fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...] Set the debug counter limit.
405 Common Joined RejectNegative
406 Map one directory name to another in debug information
408 ; Nonzero for -fdefer-pop: don't pop args after each function call
409 ; instead save them up to pop many calls' args with one insns.
411 Common Report Var(flag_defer_pop) Optimization
412 Defer popping functions args from stack until later
415 Common Report Var(flag_delayed_branch) Optimization
416 Attempt to fill delay slots of branch instructions
418 fdelete-null-pointer-checks
419 Common Report Var(flag_delete_null_pointer_checks) Optimization
420 Delete useless null pointer checks
422 fdiagnostics-show-location=
423 Common Joined RejectNegative
424 -fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics
426 fdiagnostics-show-option
428 Amend appropriate diagnostic messages with the command line option that controls them
431 Common Joined RejectNegative
432 -fdump-<type> Dump various compiler internals to a file
435 Common Report Var(flag_dump_noaddr)
436 Suppress output of addresses in debugging dumps
439 Common Report Var(flag_dump_unnumbered) VarExists
440 Suppress output of instruction numbers, line number notes and addresses in debugging dumps
443 Common Report Var(flag_early_inlining) Init(1) Optimization
444 Perform early inlining
446 feliminate-dwarf2-dups
447 Common Report Var(flag_eliminate_dwarf2_dups)
448 Perform DWARF2 duplicate elimination
450 feliminate-unused-debug-symbols
451 Common Report Var(flag_debug_only_used_symbols)
452 Perform unused type elimination in debug info
454 feliminate-unused-debug-types
455 Common Report Var(flag_eliminate_unused_debug_types) Init(1)
456 Perform unused type elimination in debug info
458 femit-class-debug-always
459 Common Report Var(flag_emit_class_debug_always) Init(0)
460 Do not suppress C++ class debug information.
463 Common Report Var(flag_exceptions) Optimization
464 Enable exception handling
466 fexpensive-optimizations
467 Common Report Var(flag_expensive_optimizations) Optimization
468 Perform a number of minor, expensive optimizations
474 Common Report Var(flag_finite_math_only) Optimization
475 Assume no NaNs or infinities are generated
478 Common Joined RejectNegative
479 -ffixed-<register> Mark <register> as being unavailable to the compiler
482 Common Report Var(flag_float_store) Optimization
483 Don't allocate floats and doubles in extended-precision registers
487 Does nothing. Preserved for backward compatibility.
490 Common Report Var(flag_forward_propagate) Optimization
491 Perform a forward propagation pass on RTL
493 ; Nonzero means don't put addresses of constant functions in registers.
494 ; Used for compiling the Unix kernel, where strange substitutions are
495 ; done on the assembly output.
497 Common Report Var(flag_no_function_cse,0)
498 Allow function addresses to be held in registers
501 Common Report Var(flag_function_sections)
502 Place each function into its own section
505 Common Report Var(flag_gcse) Optimization
506 Perform global common subexpression elimination
509 Common Report Var(flag_gcse_lm) Init(1) Optimization
510 Perform enhanced load motion during global common subexpression elimination
513 Common Report Var(flag_gcse_sm) Init(0) Optimization
514 Perform store motion after global common subexpression elimination
517 Common Report Var(flag_gcse_las) Init(0) Optimization
518 Perform redundant load after store elimination in global common subexpression
522 Common Report Var(flag_gcse_after_reload) Optimization
523 Perform global common subexpression elimination after register allocation
526 fguess-branch-probability
527 Common Report Var(flag_guess_branch_prob) Optimization
528 Enable guessing of branch probabilities
530 ; Nonzero means ignore `#ident' directives. 0 means handle them.
531 ; Generate position-independent code for executables if possible
532 ; On SVR4 targets, it also controls whether or not to emit a
533 ; string identifying the compiler.
535 Common Report Var(flag_no_ident,0)
536 Process #ident directives
539 Common Report Var(flag_if_conversion) Optimization
540 Perform conversion of conditional jumps to branchless equivalents
543 Common Report Var(flag_if_conversion2) Optimization
544 Perform conversion of conditional jumps to conditional execution
546 ; -finhibit-size-directive inhibits output of .size for ELF.
547 ; This is used only for compiling crtstuff.c,
548 ; and it may be extended to other effects
549 ; needed for crtstuff.c on other systems.
550 finhibit-size-directive
551 Common Report Var(flag_inhibit_size_directive)
552 Do not generate .size directives
554 ; Nonzero means that functions declared `inline' will be treated
555 ; as `static'. Prevents generation of zillions of copies of unused
556 ; static inline functions; instead, `inlines' are written out
557 ; only when actually used. Used in conjunction with -g. Also
558 ; does the right thing with #pragma interface.
560 Common Report Var(flag_no_inline,0) Init(2)
561 Pay attention to the \"inline\" keyword
563 finline-small-functions
564 Common Report Var(flag_inline_small_functions) Optimization
565 Integrate simple functions into their callers when code size is known to not growth
568 Common Report Var(flag_inline_functions) Optimization
569 Integrate simple functions into their callers
571 finline-functions-called-once
572 Common Report Var(flag_inline_functions_called_once) Init(1) Optimization
573 Integrate functions called once into their callers
576 Common RejectNegative Joined UInteger
579 Common RejectNegative Joined UInteger
580 -finline-limit=<number> Limit the size of inlined functions to <number>
582 finstrument-functions
583 Common Report Var(flag_instrument_function_entry_exit)
584 Instrument function entry and exit with profiling calls
586 finstrument-functions-exclude-function-list=
587 Common RejectNegative Joined
588 -finstrument-functions-exclude-function-list=name,... Do not instrument listed functions
590 finstrument-functions-exclude-file-list=
591 Common RejectNegative Joined
592 -finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files
595 Common Report Var(flag_ipa_cp) Optimization
596 Perform Interprocedural constant propagation
599 Common Report Var(flag_ipa_pure_const) Init(0) Optimization
600 Discover pure and const functions
603 Common Report Var(flag_ipa_pta) Init(0) Optimization
604 Perform interprocedural points-to analysis
607 Common Report Var(flag_ipa_reference) Init(0) Optimization
608 Discover readonly and non addressable static variables
611 Common Report Var(flag_ipa_type_escape) Init(0) Optimization
612 Type based escape and alias analysis
615 Common Report Var(flag_ipa_matrix_reorg) Optimization
616 Perform matrix layout flattening and transposing based
617 on profiling information.
620 Common Report Var(flag_ipa_struct_reorg)
621 Perform structure layout optimizations based
622 on profiling information.
625 Common Report Var(flag_ivopts) Init(1) Optimization
626 Optimize induction variables on trees
629 Common Var(flag_jump_tables) Init(1) Optimization
630 Use jump tables for sufficiently large switch statements
632 fkeep-inline-functions
633 Common Report Var(flag_keep_inline_functions)
634 Generate code for functions even if they are fully inlined
637 Common Report Var(flag_keep_static_consts) Init(1)
638 Emit static const variables even if they are not used
641 Common Report Var(flag_leading_underscore) Init(-1)
642 Give external symbols a leading underscore
646 Does nothing. Preserved for backward compatibility.
649 Common Report Var(flag_errno_math) Init(1)
650 Set errno after built-in math functions
653 Common Report Var(mem_report)
654 Report on permanent memory allocation
656 ; This will attempt to merge constant section constants, if 1 only
657 ; string constants and constants from constant pool, if 2 also constant
660 Common Report Var(flag_merge_constants,2) Init(1) Optimization
661 Attempt to merge identical constants and constant variables
664 Common Report Var(flag_merge_constants,1) VarExists Optimization
665 Attempt to merge identical constants across compilation units
668 Common RejectNegative Joined UInteger
669 -fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping
672 Common Report Var(flag_modulo_sched) Optimization
673 Perform SMS based modulo scheduling before the first scheduling pass
675 fmodulo-sched-allow-regmoves
676 Common Report Var(flag_modulo_sched_allow_regmoves)
677 Perform SMS based modulo scheduling with register moves allowed
679 fmove-loop-invariants
680 Common Report Var(flag_move_loop_invariants) Init(1) Optimization
681 Move loop invariant computations out of loops
684 Common RejectNegative Report Var(flag_mudflap)
685 Add mudflap bounds-checking instrumentation for single-threaded program
688 Common RejectNegative Report VarExists Var(flag_mudflap,2)
689 Add mudflap bounds-checking instrumentation for multi-threaded program
692 Common RejectNegative Report Var(flag_mudflap_ignore_reads)
693 Ignore read operations when inserting mudflap instrumentation
696 Common Var(flag_dce) Init(1) Optimization
697 Use the RTL dead code elimination pass
700 Common Var(flag_dse) Init(1) Optimization
701 Use the RTL dead store elimination pass
703 freschedule-modulo-scheduled-loops
704 Common Report Var(flag_resched_modulo_sched) Optimization
705 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
708 Common Report Var(flag_non_call_exceptions) Optimization
709 Support synchronous non-call exceptions
712 Common Report Var(flag_omit_frame_pointer) Optimization
713 When possible do not generate stack frames
716 Common Report Var(flag_openmp_ssa)
717 Expand OpenMP operations on SSA form
719 foptimize-register-move
720 Common Report Var(flag_regmove) Optimization
721 Do the full register move optimization pass
723 foptimize-sibling-calls
724 Common Report Var(flag_optimize_sibling_calls) Optimization
725 Optimize sibling and tail recursive calls
728 Common Report Var(pre_ipa_mem_report)
729 Report on memory allocation before interprocedural optimization
732 Common Report Var(post_ipa_mem_report)
733 Report on memory allocation before interprocedural optimization
736 Common Report Var(flag_pack_struct) Optimization
737 Pack structure members together without holes
740 Common RejectNegative Joined UInteger Optimization
741 -fpack-struct=<number> Set initial maximum structure member alignment
744 Common Report Var(flag_pcc_struct_return,1) VarExists
745 Return small aggregates in memory, not registers
748 Common Report Var(flag_peel_loops) Optimization
752 Common Report Var(flag_no_peephole,0) Optimization
753 Enable machine specific peephole optimizations
756 Common Report Var(flag_peephole2) Optimization
757 Enable an RTL peephole pass before sched2
760 Common Report Var(flag_pic,2)
761 Generate position-independent code if possible (large mode)
764 Common Report Var(flag_pie,2)
765 Generate position-independent code for executables if possible (large mode)
768 Common Report Var(flag_pic,1) VarExists
769 Generate position-independent code if possible (small mode)
772 Common Report Var(flag_pie,1) VarExists
773 Generate position-independent code for executables if possible (small mode)
775 fpredictive-commoning
776 Common Report Var(flag_predictive_commoning) Optimization
777 Run predictive commoning optimization.
779 fprefetch-loop-arrays
780 Common Report Var(flag_prefetch_loop_arrays) Optimization
781 Generate prefetch instructions, if available, for arrays in loops
784 Common Report Var(profile_flag)
785 Enable basic program profiling code
788 Common Report Var(profile_arc_flag)
789 Insert arc-based program profiling code
793 Enable common options for generating profile info for profile feedback directed optimizations
797 Enable common options for performing profile feedback directed optimizations
800 Common Report Var(flag_profile_values)
801 Insert code to profile values of expressions
807 Common Joined RejectNegative
808 -frandom-seed=<string> Make compile reproducible using <string>
810 ; This switch causes the command line that was used to create an
811 ; object file to be recorded into the object file. The exact format
812 ; of this recording is target and binary file format dependent.
813 ; It is related to the -fverbose-asm switch, but that switch only
814 ; records information in the assembler output file as comments, so
815 ; they never reach the object file.
817 Common Report Var(flag_record_gcc_switches)
818 Record gcc command line switches in the object file.
821 Common Report Var(flag_pcc_struct_return,0) VarExists Optimization
822 Return small aggregates in registers
825 Common Report Var(flag_regmove) Optimization
826 Enables a register move optimization
829 Common Report Var(flag_rename_registers) Init(2) Optimization
830 Perform a register renaming optimization pass
833 Common Report Var(flag_reorder_blocks) Optimization
834 Reorder basic blocks to improve code placement
836 freorder-blocks-and-partition
837 Common Report Var(flag_reorder_blocks_and_partition) Optimization
838 Reorder basic blocks and partition into hot and cold sections
841 Common Report Var(flag_reorder_functions) Optimization
842 Reorder functions to improve code placement
844 frerun-cse-after-loop
845 Common Report Var(flag_rerun_cse_after_loop) Init(2) Optimization
846 Add a common subexpression elimination pass after loop optimizations
850 Does nothing. Preserved for backward compatibility.
853 Common Report Var(flag_rounding_math) Optimization
854 Disable optimizations that assume default FP rounding behavior
857 Common Report Var(flag_schedule_interblock) Init(1) Optimization
858 Enable scheduling across basic blocks
861 Common Report Var(flag_schedule_speculative) Init(1) Optimization
862 Allow speculative motion of non-loads
865 Common Report Var(flag_schedule_speculative_load) Optimization
866 Allow speculative motion of some loads
868 fsched-spec-load-dangerous
869 Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
870 Allow speculative motion of more loads
873 Common RejectNegative Joined
874 -fsched-verbose=<number> Set the verbosity level of the scheduler
876 fsched2-use-superblocks
877 Common Report Var(flag_sched2_use_superblocks) Optimization
878 If scheduling post reload, do superblock scheduling
881 Common Report Var(flag_sched2_use_traces) Optimization
882 If scheduling post reload, do trace scheduling
885 Common Report Var(flag_schedule_insns) Optimization
886 Reschedule instructions before register allocation
889 Common Report Var(flag_schedule_insns_after_reload) Optimization
890 Reschedule instructions after register allocation
892 ; sched_stalled_insns means that insns can be moved prematurely from the queue
893 ; of stalled insns into the ready list.
895 Common Report Var(flag_sched_stalled_insns) Optimization
896 Allow premature scheduling of queued insns
898 fsched-stalled-insns=
899 Common RejectNegative Joined UInteger
900 -fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled
902 ; sched_stalled_insns_dep controls how many recently scheduled cycles will
903 ; be examined for a dependency on a stalled insn that is candidate for
904 ; premature removal from the queue of stalled insns into the ready list (has
905 ; an effect only if the flag 'sched_stalled_insns' is set).
906 fsched-stalled-insns-dep
907 Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization
908 Set dependence distance checking in premature scheduling of queued insns
910 fsched-stalled-insns-dep=
911 Common RejectNegative Joined UInteger
912 -fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns
915 Common Report Var(flag_section_anchors) Optimization
916 Access data in the same section from shared anchor points
918 frtl-abstract-sequences
919 Common Report Var(flag_rtl_seqabstr) Optimization
920 Perform sequence abstraction optimization on RTL
923 Common Report Var(flag_see) Init(0)
924 Eliminate redundant sign extensions using LCM.
927 Common C ObjC C++ ObjC++ Report Var(flag_show_column) Init(0)
928 Show column numbers in diagnostics, when available. Default off
931 Common Report Var(flag_signaling_nans) Optimization
932 Disable optimizations observable by IEEE signaling NaNs
935 Common Report Var(flag_signed_zeros) Init(1) Optimization
936 Disable floating point optimizations that ignore the IEEE signedness of zero
938 fsingle-precision-constant
939 Common Report Var(flag_single_precision_constant) Optimization
940 Convert floating point constants to single precision constants
942 fsplit-ivs-in-unroller
943 Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
944 Split lifetimes of induction variables when loops are unrolled
947 Common Report Var(flag_split_wide_types) Optimization
948 Split wide types into independent registers
950 fvariable-expansion-in-unroller
951 Common Report Var(flag_variable_expansion_in_unroller) Optimization
952 Apply variable expansion when loops are unrolled
954 ; Emit code to probe the stack, to help detect stack overflow; also
955 ; may cause large objects to be allocated dynamically.
957 Common Report Var(flag_stack_check)
958 Insert stack checking code into the program
963 fstack-limit-register=
964 Common RejectNegative Joined
965 -fstack-limit-register=<register> Trap if the stack goes past <register>
968 Common RejectNegative Joined
969 -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
972 Common Report Var(flag_stack_protect, 1)
973 Use propolice as a stack protection method
976 Common Report RejectNegative Var(flag_stack_protect, 2) VarExists
977 Use a stack protection method for every function
981 Does nothing. Preserved for backward compatibility.
983 ; Nonzero if we should do (language-dependent) alias analysis.
984 ; Typically, this analysis will assume that expressions of certain
985 ; types do not alias expressions of certain other types. Only used
986 ; if alias analysis (in general) is enabled.
988 Common Report Var(flag_strict_aliasing) Optimization
989 Assume strict aliasing rules apply
992 Common Report Var(flag_strict_overflow)
993 Treat signed overflow as undefined
996 Common Report Var(flag_syntax_only)
997 Check for syntax errors, then stop
1000 Common Report Var(flag_test_coverage)
1001 Create data files needed by \"gcov\"
1004 Common Report Var(flag_thread_jumps) Optimization
1005 Perform jump threading optimizations
1008 Common Report Var(time_report)
1009 Report the time taken by each compiler pass
1012 Common Joined RejectNegative
1013 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model
1016 Common Report Var(flag_toplevel_reorder) Init(1) Optimization
1017 Reorder top level functions, variables, and asms
1020 Common Report Var(flag_tracer)
1021 Perform superblock formation via tail duplication
1023 ; Zero means that floating-point math operations cannot generate a
1024 ; (user-visible) trap. This is the case, for example, in nonstop
1025 ; IEEE 754 arithmetic.
1027 Common Report Var(flag_trapping_math) Init(1) Optimization
1028 Assume floating-point operations can trap
1031 Common Report Var(flag_trapv) Optimization
1032 Trap for signed overflow in addition, subtraction and multiplication
1035 Common Report Var(flag_tree_ccp) Optimization
1036 Enable SSA-CCP optimization on trees
1039 Common Report Var(flag_tree_store_ccp) Optimization
1040 Enable SSA-CCP optimization for stores and loads
1043 Common Report Var(flag_tree_ch) Optimization
1044 Enable loop header copying on trees
1047 Common Report Var(flag_tree_copyrename) Optimization
1048 Replace SSA temporaries with better names in copies
1051 Common Report Var(flag_tree_copy_prop) Optimization
1052 Enable copy propagation on trees
1054 ftree-store-copy-prop
1056 Does nothing. Preserved for backward compatibility.
1059 Common Report Var(flag_tree_cselim) Init(2) Optimization
1060 Transform condition stores into unconditional ones
1063 Common Report Var(flag_tree_dce) Optimization
1064 Enable SSA dead code elimination optimization on trees
1066 ftree-dominator-opts
1067 Common Report Var(flag_tree_dom) Optimization
1068 Enable dominator optimizations
1071 Common Report Var(flag_tree_dse) Optimization
1072 Enable dead store elimination
1075 Common Report Var(flag_tree_fre) Optimization
1076 Enable Full Redundancy Elimination (FRE) on trees
1079 Common Report Var(flag_tree_loop_im) Init(1) Optimization
1080 Enable loop invariant motion on trees
1083 Common Report Var(flag_tree_loop_linear) Optimization
1084 Enable linear loop transforms on trees
1087 Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
1088 Create canonical induction variables in loops
1091 Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
1092 Enable loop optimizations on tree level
1094 ftree-parallelize-loops=
1095 Common Report Joined UInteger Var(flag_tree_parallelize_loops) Init(1)
1096 Enable automatic parallelization of loops
1099 Common Report Var(flag_tree_pre) Optimization
1100 Enable SSA-PRE optimization on trees
1103 Common Report Var(flag_tree_reassoc) Init(1) Optimization
1104 Enable reassociation on tree level
1107 Common Report Var(flag_tree_salias) Optimization
1108 Perform structural alias analysis
1111 Common Report Var(flag_tree_sink) Optimization
1112 Enable SSA code sinking on trees
1115 Common Report Var(flag_tree_sra) Optimization
1116 Perform scalar replacement of aggregates
1119 Common Report Var(flag_tree_ter) Optimization
1120 Replace temporary expressions in the SSA->normal pass
1123 Common Report Var(flag_tree_live_range_split) Optimization
1124 Perform live range splitting during the SSA->normal pass
1127 Common Report Var(flag_tree_vrp) Init(0) Optimization
1128 Perform Value Range Propagation on trees
1131 Common Report Var(flag_unit_at_a_time) Optimization
1132 Compile whole compilation unit at a time
1135 Common Report Var(flag_unroll_loops) Optimization
1136 Perform loop unrolling when iteration count is known
1139 Common Report Var(flag_unroll_all_loops) Optimization
1140 Perform loop unrolling for all loops
1142 ; Nonzero means that loop optimizer may assume that the induction variables
1143 ; that control loops do not overflow and that the loops with nontrivial
1144 ; exit condition are not infinite
1145 funsafe-loop-optimizations
1146 Common Report Var(flag_unsafe_loop_optimizations) Optimization
1147 Allow loop optimizations to assume that the loops behave in normal way
1150 Common Report Var(flag_associative_math)
1151 Allow optimization for floating-point arithmetic which may change the
1152 result of the operation due to rounding.
1155 Common Report Var(flag_reciprocal_math)
1156 Same as -fassociative-math for expressions which include division.
1158 ; Nonzero means that unsafe floating-point math optimizations are allowed
1159 ; for the sake of speed. IEEE compliance is not guaranteed, and operations
1160 ; are allowed to assume that their arguments and results are "normal"
1161 ; (e.g., nonnegative for SQRT).
1162 funsafe-math-optimizations
1163 Common Report Var(flag_unsafe_math_optimizations) Optimization
1164 Allow math optimizations that may violate IEEE or ISO standards
1167 Common Report Var(flag_unswitch_loops) Optimization
1168 Perform loop unswitching
1171 Common Report Var(flag_unwind_tables) Optimization
1172 Just generate unwind tables for exception handling
1175 Common Report Var(flag_var_tracking) VarExists Optimization
1176 Perform variable tracking
1178 fvar-tracking-uninit
1179 Common Report Var(flag_var_tracking_uninit) Optimization
1180 Perform variable tracking and also tag variables that are uninitialized
1183 Common Report Var(flag_tree_vectorize) Optimization
1184 Enable loop vectorization on trees
1187 Common Report Var(flag_vect_cost_model) Optimization
1188 Enable use of cost model in vectorization
1190 ftree-vect-loop-version
1191 Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization
1192 Enable loop versioning when doing loop vectorization on trees
1194 ftree-vectorizer-verbose=
1195 Common RejectNegative Joined
1196 -ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer
1199 Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
1200 Enable copy propagation of scalar-evolution information.
1202 ; -fverbose-asm causes extra commentary information to be produced in
1203 ; the generated assembly code (to make it more readable). This option
1204 ; is generally only of use to those who actually need to read the
1205 ; generated assembly code (perhaps while debugging the compiler itself).
1206 ; -fno-verbose-asm, the default, causes the extra information
1207 ; to not be added and is useful when comparing two assembler files.
1209 Common Report Var(flag_verbose_asm)
1210 Add extra commentary to assembler output
1213 Common Joined RejectNegative
1214 -fvisibility=[default|internal|hidden|protected] Set the default symbol visibility
1218 Common Report Var(flag_value_profile_transformations) Optimization
1219 Use expression value profiles in optimizations
1222 Common Report Var(flag_web) Init(2) Optimization
1223 Construct webs and split unrelated uses of single variable
1226 Common Report Var(flag_whole_program) Init(0) Optimization
1227 Perform whole program optimizations
1230 Common Report Var(flag_wrapv) Optimization
1231 Assume signed arithmetic overflow wraps around
1233 fzero-initialized-in-bss
1234 Common Report Var(flag_zero_initialized_in_bss) Init(1)
1235 Put zero initialized data in the bss section
1238 Common JoinedOrMissing
1239 Generate debug information in default format
1242 Common JoinedOrMissing Negative(gdwarf-2)
1243 Generate debug information in COFF format
1246 Common JoinedOrMissing Negative(gstabs)
1247 Generate debug information in DWARF v2 format
1250 Common JoinedOrMissing
1251 Generate debug information in default extended format
1254 Common JoinedOrMissing Negative(gstabs+)
1255 Generate debug information in STABS format
1258 Common JoinedOrMissing Negative(gvms)
1259 Generate debug information in extended STABS format
1262 Common JoinedOrMissing Negative(gxcoff)
1263 Generate debug information in VMS format
1266 Common JoinedOrMissing Negative(gxcoff+)
1267 Generate debug information in XCOFF format
1270 Common JoinedOrMissing Negative(gcoff)
1271 Generate debug information in extended XCOFF format
1274 Common Joined Separate
1275 -o <file> Place output into <file>
1278 Common Var(profile_flag)
1279 Enable function profiling
1282 Common Var(pedantic)
1283 Issue warnings needed for strict compliance to the standard
1287 Like -pedantic but issue them as errors
1290 Common Var(quiet_flag)
1291 Do not display functions compiled or elapsed time
1294 Common Var(version_flag)
1295 Display the compiler's version
1298 Common Var(inhibit_warnings)
1302 Common RejectNegative Negative(pie)
1303 Create a shared library
1306 Common RejectNegative Negative(shared)
1307 Create a position independent executable
1309 ; This comment is to ensure we retain the blank line above.