OSDN Git Service

2010-07-15 Magnus Granberg <zorry@gentoo.org>
[pf3gnuchains/gcc-fork.git] / gcc / common.opt
1 ; Options for the language- and target-independent parts of the compiler.
2
3 ; Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4 ; Free Software Foundation, Inc.
5 ;
6 ; This file is part of GCC.
7 ;
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
11 ; version.
12 ;
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
16 ; for more details.
17 ;
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/>.
21
22 ; See the GCC internals manual (options.texi) for a description of this file's format.
23
24 ; Please try to keep this file in ASCII collating order.
25
26 -help
27 Common
28 Display this information
29
30 -help=
31 Common Report Joined
32 --help=<class>  Display descriptions of a specific class of options.  <class> is one or more of optimizers, target, warnings, undocumented, params
33
34 -target-help
35 Common
36 Alias for --help=target
37
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).
41 fhelp
42 Common Var(help_flag)
43
44 fhelp=
45 Common Joined
46
47 ftarget-help
48 Common
49
50 fversion
51 Common
52
53 -param
54 Common Separate
55 --param <param>=<value> Set parameter <param> to value.  See below for a complete list of parameters
56
57 -version
58 Common
59
60 G
61 Common Joined Separate UInteger
62 -G<number>      Put global and static data smaller than <number> bytes into a special section (on some targets)
63
64 O
65 Common JoinedOrMissing Optimization
66 -O<number>      Set optimization level to <number>
67
68 Os
69 Common Optimization
70 Optimize for space rather than speed
71
72 Ofast
73 Common Optimization
74 Optimize for speed disregarding exact standards compliance
75
76 W
77 Common RejectNegative Var(extra_warnings) Warning
78 This switch is deprecated; use -Wextra instead
79
80 Waggregate-return
81 Common Var(warn_aggregate_return) Warning
82 Warn about returning structures, unions or arrays
83
84 Warray-bounds
85 Common Var(warn_array_bounds) Warning
86 Warn if an array is accessed out of bounds
87
88 Wattributes
89 Common Var(warn_attributes) Init(1) Warning
90 Warn about inappropriate attribute usage
91
92 Wcast-align
93 Common Var(warn_cast_align) Warning
94 Warn about pointer casts which increase alignment
95
96 Wcpp
97 Common Var(warn_cpp) Init(1) Warning
98 Warn when a #warning directive is encountered
99
100 Wdeprecated-declarations
101 Common Var(warn_deprecated_decl) Init(1) Warning
102 Warn about uses of __attribute__((deprecated)) declarations
103
104 Wdisabled-optimization
105 Common Var(warn_disabled_optimization) Warning
106 Warn when an optimization pass is disabled
107
108 Werror
109 Common Var(warnings_are_errors)
110 Treat all warnings as errors
111
112 Werror=
113 Common Joined
114 Treat specified warning as error
115
116 Wextra
117 Common Var(extra_warnings) Warning
118 Print extra (possibly unwanted) warnings
119
120 Wfatal-errors
121 Common Var(flag_fatal_errors)
122 Exit on the first error occurred
123
124 Wframe-larger-than=
125 Common RejectNegative Joined UInteger
126 -Wframe-larger-than=<number>    Warn if a function's stack frame requires more than <number> bytes
127
128 Winline
129 Common Var(warn_inline) Warning
130 Warn when an inlined function cannot be inlined
131
132 Wlarger-than-
133 Common RejectNegative Joined UInteger Warning Undocumented
134
135 Wlarger-than=
136 Common RejectNegative Joined UInteger Warning
137 -Wlarger-than=<number>  Warn if an object is larger than <number> bytes
138
139 Wunsafe-loop-optimizations
140 Common Var(warn_unsafe_loop_optimizations) Warning
141 Warn if the loop cannot be optimized due to nontrivial assumptions.
142
143 Wmissing-noreturn
144 Common Var(warn_missing_noreturn) Warning
145 Warn about functions which might be candidates for __attribute__((noreturn))
146
147 Wmudflap
148 Common Var(warn_mudflap) Init(1) Warning
149 Warn about constructs not instrumented by -fmudflap
150
151 Woverflow
152 Common Var(warn_overflow) Init(1) Warning
153 Warn about overflow in arithmetic expressions
154
155 Wpacked
156 Common Var(warn_packed) Warning
157 Warn when the packed attribute has no effect on struct layout
158
159 Wpadded
160 Common Var(warn_padded) Warning
161 Warn when padding is required to align structure members
162
163 Wshadow
164 Common Var(warn_shadow) Warning
165 Warn when one local variable shadows another
166
167 Wstack-protector
168 Common Var(warn_stack_protect) Warning
169 Warn when not issuing stack smashing protection for some reason
170
171 Wstrict-aliasing
172 Common Warning
173 Warn about code which might break strict aliasing rules
174
175 Wstrict-aliasing=
176 Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Init(-1) Warning
177 Warn about code which might break strict aliasing rules
178
179 Wstrict-overflow
180 Common Warning
181 Warn about optimizations that assume that signed overflow is undefined
182
183 Wstrict-overflow=
184 Common Joined RejectNegative UInteger Var(warn_strict_overflow) Init(-1) Warning
185 Warn about optimizations that assume that signed overflow is undefined
186
187 Wsuggest-attribute=const
188 Common Var(warn_suggest_attribute_const) Warning
189 Warn about functions which might be candidates for __attribute__((const))
190
191 Wsuggest-attribute=pure
192 Common Var(warn_suggest_attribute_pure) Warning
193 Warn about functions which might be candidates for __attribute__((pure))
194
195 Wsuggest-attribute=noreturn
196 Common Var(warn_suggest_attribute_noreturn) Warning
197 Warn about functions which might be candidates for __attribute__((noreturn))
198
199 Wswitch
200 Common Var(warn_switch) Warning
201 Warn about enumerated switches, with no default, missing a case
202
203 Wswitch-default
204 Common Var(warn_switch_default) Warning
205 Warn about enumerated switches missing a \"default:\" statement
206
207 Wswitch-enum
208 Common Var(warn_switch_enum) Warning
209 Warn about all enumerated switches missing a specific case
210
211 Wsystem-headers
212 Common Var(warn_system_headers) Warning
213 Do not suppress warnings from system headers
214
215 Wtrampolines
216 Common Var(warn_trampolines) Warning
217 Warn whenever a trampoline is generated
218
219 Wtype-limits
220 Common Var(warn_type_limits) Init(-1) Warning
221 Warn if a comparison is always true or always false due to the limited range of the data type
222
223 Wuninitialized
224 Common Var(warn_uninitialized) Init(-1) Warning
225 Warn about uninitialized automatic variables
226
227 Wunreachable-code
228 Common
229 Does nothing. Preserved for backward compatibility.
230
231 Wunused
232 Common Var(warn_unused) Init(0) Warning
233 Enable all -Wunused- warnings
234
235 Wunused-but-set-parameter
236 Common Var(warn_unused_but_set_parameter) Init(-1) Warning
237 Warn when a function parameter is only set, otherwise unused
238
239 Wunused-but-set-variable
240 Common Var(warn_unused_but_set_variable) Init(-1) Warning
241 Warn when a variable is only set, otherwise unused
242
243 Wunused-function
244 Common Var(warn_unused_function) Init(-1) Warning
245 Warn when a function is unused
246
247 Wunused-label
248 Common Var(warn_unused_label) Init(-1) Warning
249 Warn when a label is unused
250
251 Wunused-parameter
252 Common Var(warn_unused_parameter) Init(-1) Warning
253 Warn when a function parameter is unused
254
255 Wunused-value
256 Common Var(warn_unused_value) Init(-1) Warning
257 Warn when an expression value is unused
258
259 Wunused-variable
260 Common Var(warn_unused_variable) Init(-1) Warning
261 Warn when a variable is unused
262
263 Wcoverage-mismatch
264 Common Var(warn_coverage_mismatch) Init(1) Warning
265 Warn in case profiles in -fprofile-use do not match
266
267 aux-info
268 Common Separate
269 -aux-info <file>        Emit declaration information into <file>
270
271 aux-info=
272 Common Joined
273
274 auxbase
275 Common Separate
276
277 auxbase-strip
278 Common Separate
279
280 d
281 Common Joined
282 -d<letters>     Enable dumps from specific passes of the compiler
283
284 dumpbase
285 Common Separate
286 -dumpbase <file>        Set the file basename to be used for dumps
287
288 dumpdir
289 Common Separate
290 -dumpdir <dir>  Set the directory name to be used for dumps
291
292 ; The version of the C++ ABI in use.  The following values are allowed:
293 ;
294 ; 0: The version of the ABI believed most conformant with the C++ ABI
295 ;    specification.  This ABI may change as bugs are discovered and fixed.
296 ;    Therefore, 0 will not necessarily indicate the same ABI in different
297 ;    versions of G++.
298 ;
299 ; 1: The version of the ABI first used in G++ 3.2.
300 ;
301 ; 2: The version of the ABI first used in G++ 3.4 (and current default).
302 ;
303 ; 3: The version of the ABI that fixes the missing underscore
304 ;    in template non-type arguments of pointer type.
305 ;
306 ; 4: The version of the ABI that introduces unambiguous mangling of
307 ;    vector types.
308 ;
309 ; Additional positive integers will be assigned as new versions of
310 ; the ABI become the default version of the ABI.
311 fabi-version=
312 Common Joined RejectNegative UInteger Var(flag_abi_version) Init(2)
313
314 falign-functions
315 Common Report Var(align_functions,0) Optimization UInteger
316 Align the start of functions
317
318 falign-functions=
319 Common RejectNegative Joined UInteger
320
321 falign-jumps
322 Common Report Var(align_jumps,0) Optimization UInteger
323 Align labels which are only reached by jumping
324
325 falign-jumps=
326 Common RejectNegative Joined UInteger
327
328 falign-labels
329 Common Report Var(align_labels,0) Optimization UInteger
330 Align all labels
331
332 falign-labels=
333 Common RejectNegative Joined UInteger
334
335 falign-loops
336 Common Report Var(align_loops) Optimization UInteger
337 Align the start of loops
338
339 falign-loops=
340 Common RejectNegative Joined UInteger
341
342 fargument-alias
343 Common
344 Does nothing. Preserved for backward compatibility.
345
346 fargument-noalias
347 Common
348 Does nothing. Preserved for backward compatibility.
349
350 fargument-noalias-global
351 Common
352 Does nothing. Preserved for backward compatibility.
353
354 fargument-noalias-anything
355 Common
356 Does nothing. Preserved for backward compatibility.
357
358 fasynchronous-unwind-tables
359 Common Report Var(flag_asynchronous_unwind_tables) Optimization
360 Generate unwind tables that are exact at each instruction boundary
361
362 fauto-inc-dec
363 Common Report Var(flag_auto_inc_dec) Init(1)
364 Generate auto-inc/dec instructions
365
366 ; -fcheck-bounds causes gcc to generate array bounds checks.
367 ; For C, C++ and ObjC: defaults off.
368 ; For Java: defaults to on.
369 ; For Fortran: defaults to off.
370 fbounds-check
371 Common Report Var(flag_bounds_check)
372 Generate code to check bounds before indexing arrays
373
374 fbranch-count-reg
375 Common Report Var(flag_branch_on_count_reg) Init(1) Optimization
376 Replace add, compare, branch with branch on count register
377
378 fbranch-probabilities
379 Common Report Var(flag_branch_probabilities) Optimization
380 Use profiling information for branch probabilities
381
382 fbranch-target-load-optimize
383 Common Report Var(flag_branch_target_load_optimize) Optimization
384 Perform branch target load optimization before prologue / epilogue threading
385
386 fbranch-target-load-optimize2
387 Common Report Var(flag_branch_target_load_optimize2) Optimization
388 Perform branch target load optimization after prologue / epilogue threading
389
390 fbtr-bb-exclusive
391 Common Report Var(flag_btr_bb_exclusive) Optimization
392 Restrict target load migration not to re-use registers in any basic block
393
394 fcall-saved-
395 Common Joined RejectNegative
396 -fcall-saved-<register> Mark <register> as being preserved across functions
397
398 fcall-used-
399 Common Joined RejectNegative
400 -fcall-used-<register>  Mark <register> as being corrupted by function calls
401
402 ; Nonzero for -fcaller-saves: allocate values in regs that need to
403 ; be saved across function calls, if that produces overall better code.
404 ; Optional now, so people can test it.
405 fcaller-saves
406 Common Report Var(flag_caller_saves) Optimization
407 Save registers around function calls
408
409 fcheck-data-deps
410 Common Report Var(flag_check_data_deps)
411 Compare the results of several data dependence analyzers.
412
413 fcommon
414 Common Report Var(flag_no_common,0) Optimization
415 Do not put uninitialized globals in the common section
416
417 fcompare-debug=
418 Common JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
419 -fcompare-debug[=<opts>]        Compile with and without e.g. -gtoggle, and compare the final-insns dump
420
421 fcompare-debug-second
422 Common RejectNegative Var(flag_compare_debug)
423 Run only the second compilation of -fcompare-debug
424
425 fconserve-stack
426 Common Var(flag_conserve_stack) Optimization
427 Do not perform optimizations increasing noticeably stack usage
428
429 fcprop-registers
430 Common Report Var(flag_cprop_registers) Optimization
431 Perform a register copy-propagation optimization pass
432
433 fcrossjumping
434 Common Report Var(flag_crossjumping) Optimization
435 Perform cross-jumping optimization
436
437 fcse-follow-jumps
438 Common Report Var(flag_cse_follow_jumps) Optimization
439 When running CSE, follow jumps to their targets
440
441 fcse-skip-blocks
442 Common
443 Does nothing.  Preserved for backward compatibility.
444
445 fcx-limited-range
446 Common Report Var(flag_cx_limited_range) Optimization
447 Omit range reduction step when performing complex division
448
449 fcx-fortran-rules
450 Common Report Var(flag_cx_fortran_rules) Optimization
451 Complex multiplication and division follow Fortran rules
452
453 fdata-sections
454 Common Report Var(flag_data_sections) Optimization
455 Place data items into their own section
456
457 fdbg-cnt-list
458 Common Report
459 List all available debugging counters with their limits and counts.
460
461 fdbg-cnt=
462 Common RejectNegative Joined
463 -fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...]     Set the debug counter limit.   
464
465 fdebug-prefix-map=
466 Common Joined RejectNegative
467 Map one directory name to another in debug information
468
469 ; Nonzero for -fdefer-pop: don't pop args after each function call
470 ; instead save them up to pop many calls' args with one insns.
471 fdefer-pop
472 Common Report Var(flag_defer_pop) Optimization
473 Defer popping functions args from stack until later
474
475 fdelayed-branch
476 Common Report Var(flag_delayed_branch) Optimization
477 Attempt to fill delay slots of branch instructions
478
479 fdelete-null-pointer-checks
480 Common Report Var(flag_delete_null_pointer_checks) Init(1) Optimization
481 Delete useless null pointer checks
482
483 fdiagnostics-show-location=
484 Common Joined RejectNegative
485 -fdiagnostics-show-location=[once|every-line]   How often to emit source location at the beginning of line-wrapped diagnostics
486
487 fdiagnostics-show-option
488 Common Var(flag_diagnostics_show_option) Init(1)
489 Amend appropriate diagnostic messages with the command line option that controls them
490
491 fdump-
492 Common Joined RejectNegative
493 -fdump-<type>   Dump various compiler internals to a file
494
495 fdump-final-insns=
496 Common RejectNegative Joined Var(flag_dump_final_insns)
497 -fdump-final-insns=filename     Dump to filename the insns at the end of translation
498
499 fdump-noaddr
500 Common Report Var(flag_dump_noaddr)
501 Suppress output of addresses in debugging dumps
502
503 fdump-unnumbered
504 Common Report Var(flag_dump_unnumbered) VarExists
505 Suppress output of instruction numbers, line number notes and addresses in debugging dumps
506
507 fdump-unnumbered-links
508 Common Report Var(flag_dump_unnumbered_links) VarExists
509 Suppress output of previous and next insn numbers in debugging dumps
510
511 fdwarf2-cfi-asm
512 Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
513 Enable CFI tables via GAS assembler directives.
514
515 fearly-inlining
516 Common Report Var(flag_early_inlining) Init(1) Optimization
517 Perform early inlining
518
519 feliminate-dwarf2-dups
520 Common Report Var(flag_eliminate_dwarf2_dups)
521 Perform DWARF2 duplicate elimination
522
523 fipa-sra
524 Common Report Var(flag_ipa_sra) Init(0) Optimization
525 Perform interprocedural reduction of aggregates
526
527 feliminate-unused-debug-symbols
528 Common Report Var(flag_debug_only_used_symbols)
529 Perform unused type elimination in debug info
530
531 feliminate-unused-debug-types
532 Common Report Var(flag_eliminate_unused_debug_types) Init(1)
533 Perform unused type elimination in debug info
534
535 femit-class-debug-always
536 Common Report Var(flag_emit_class_debug_always) Init(0)
537 Do not suppress C++ class debug information.
538
539 fenable-icf-debug
540 Common Report Var(flag_enable_icf_debug)
541 Generate debug information to support Identical Code Folding (ICF)
542
543 fexceptions
544 Common Report Var(flag_exceptions) Optimization
545 Enable exception handling
546
547 fexpensive-optimizations
548 Common Report Var(flag_expensive_optimizations) Optimization
549 Perform a number of minor, expensive optimizations
550
551 fexcess-precision=
552 Common Joined RejectNegative
553 -fexcess-precision=[fast|standard]      Specify handling of excess floating-point precision
554
555 ffast-math
556 Common
557
558 ffinite-math-only
559 Common Report Var(flag_finite_math_only) Optimization
560 Assume no NaNs or infinities are generated
561
562 ffixed-
563 Common Joined RejectNegative
564 -ffixed-<register>      Mark <register> as being unavailable to the compiler
565
566 ffloat-store
567 Common Report Var(flag_float_store) Optimization
568 Don't allocate floats and doubles in extended-precision registers
569
570 fforce-addr
571 Common
572 Does nothing.  Preserved for backward compatibility.
573
574 fforward-propagate
575 Common Report Var(flag_forward_propagate) Optimization
576 Perform a forward propagation pass on RTL
577
578 ; Nonzero means don't put addresses of constant functions in registers.
579 ; Used for compiling the Unix kernel, where strange substitutions are
580 ; done on the assembly output.
581 ffunction-cse
582 Common Report Var(flag_no_function_cse,0)
583 Allow function addresses to be held in registers
584
585 ffunction-sections
586 Common Report Var(flag_function_sections)
587 Place each function into its own section
588
589 fgcse
590 Common Report Var(flag_gcse) Optimization
591 Perform global common subexpression elimination
592
593 fgcse-lm
594 Common Report Var(flag_gcse_lm) Init(1) Optimization
595 Perform enhanced load motion during global common subexpression elimination
596
597 fgcse-sm
598 Common Report Var(flag_gcse_sm) Init(0) Optimization
599 Perform store motion after global common subexpression elimination
600
601 fgcse-las
602 Common Report Var(flag_gcse_las) Init(0) Optimization
603 Perform redundant load after store elimination in global common subexpression
604 elimination
605
606 fgcse-after-reload
607 Common Report Var(flag_gcse_after_reload) Optimization
608 Perform global common subexpression elimination after register allocation
609 has finished
610
611 ; This option is not documented yet as its semantics will change.
612 fgraphite
613 Common Report Var(flag_graphite)
614 Enable in and out of Graphite representation
615
616 fgraphite-identity
617 Common Report Var(flag_graphite_identity) Optimization
618 Enable Graphite Identity transformation
619
620 floop-parallelize-all
621 Common Report Var(flag_loop_parallelize_all) Optimization
622 Mark all loops as parallel
623
624 floop-strip-mine
625 Common Report Var(flag_loop_strip_mine) Optimization
626 Enable Loop Strip Mining transformation
627
628 floop-interchange
629 Common Report Var(flag_loop_interchange) Optimization
630 Enable Loop Interchange transformation
631
632 floop-block
633 Common Report Var(flag_loop_block) Optimization
634 Enable Loop Blocking transformation
635
636 fstrict-volatile-bitfields
637 Common Report Var(flag_strict_volatile_bitfields) Init(-1)
638 Force bitfield accesses to match their type width
639
640 fguess-branch-probability
641 Common Report Var(flag_guess_branch_prob) Optimization
642 Enable guessing of branch probabilities
643
644 ; Nonzero means ignore `#ident' directives.  0 means handle them.
645 ; Generate position-independent code for executables if possible
646 ; On SVR4 targets, it also controls whether or not to emit a
647 ; string identifying the compiler.
648 fident
649 Common Report Var(flag_no_ident,0)
650 Process #ident directives
651
652 fif-conversion
653 Common Report Var(flag_if_conversion) Optimization
654 Perform conversion of conditional jumps to branchless equivalents
655
656 fif-conversion2
657 Common Report Var(flag_if_conversion2) Optimization
658 Perform conversion of conditional jumps to conditional execution
659
660 ftree-loop-if-convert
661 Common Report Var(flag_tree_loop_if_convert) Init(-1) Optimization
662 Convert conditional jumps in innermost loops to branchless equivalents
663
664 ; -finhibit-size-directive inhibits output of .size for ELF.
665 ; This is used only for compiling crtstuff.c,
666 ; and it may be extended to other effects
667 ; needed for crtstuff.c on other systems.
668 finhibit-size-directive
669 Common Report Var(flag_inhibit_size_directive)
670 Do not generate .size directives
671
672 findirect-inlining
673 Common Report Var(flag_indirect_inlining)
674 Perform indirect inlining
675
676 ; Nonzero means that functions declared `inline' will be treated
677 ; as `static'.  Prevents generation of zillions of copies of unused
678 ; static inline functions; instead, `inlines' are written out
679 ; only when actually used.  Used in conjunction with -g.  Also
680 ; does the right thing with #pragma interface.
681 finline
682 Common Report Var(flag_no_inline,0) Init(0)
683 Pay attention to the \"inline\" keyword
684
685 finline-small-functions
686 Common Report Var(flag_inline_small_functions) Optimization
687 Integrate simple functions into their callers when code size is known to not growth
688
689 finline-functions
690 Common Report Var(flag_inline_functions) Optimization
691 Integrate simple functions into their callers
692
693 finline-functions-called-once
694 Common Report Var(flag_inline_functions_called_once) Init(1) Optimization
695 Integrate functions called once into their callers
696
697 finline-limit-
698 Common RejectNegative Joined UInteger
699
700 finline-limit=
701 Common RejectNegative Joined UInteger
702 -finline-limit=<number> Limit the size of inlined functions to <number>
703
704 finstrument-functions
705 Common Report Var(flag_instrument_function_entry_exit)
706 Instrument function entry and exit with profiling calls
707
708 finstrument-functions-exclude-function-list=
709 Common RejectNegative Joined
710 -finstrument-functions-exclude-function-list=name,...  Do not instrument listed functions
711
712 finstrument-functions-exclude-file-list=
713 Common RejectNegative Joined
714 -finstrument-functions-exclude-file-list=filename,...  Do not instrument functions listed in files
715
716 fipa-cp
717 Common Report Var(flag_ipa_cp) Optimization
718 Perform Interprocedural constant propagation
719
720 fipa-cp-clone
721 Common Report Var(flag_ipa_cp_clone) Optimization
722 Perform cloning to make Interprocedural constant propagation stronger
723
724 fipa-profile
725 Common Report Var(flag_ipa_profile) Init(0) Optimization
726 Perform interprocedural profile propagation
727
728 fipa-pta
729 Common Report Var(flag_ipa_pta) Init(0) Optimization
730 Perform interprocedural points-to analysis
731
732 fipa-pure-const
733 Common Report Var(flag_ipa_pure_const) Init(0) Optimization
734 Discover pure and const functions
735
736 fipa-reference
737 Common Report Var(flag_ipa_reference) Init(0) Optimization
738 Discover readonly and non addressable static variables
739
740 fipa-matrix-reorg
741 Common Report Var(flag_ipa_matrix_reorg) Optimization
742 Perform matrix layout flattening and transposing based
743 on profiling information.
744
745 fipa-struct-reorg
746 Common Report Var(flag_ipa_struct_reorg)
747 Perform structure layout optimizations based
748 on profiling information.
749
750 fira-algorithm=
751 Common Joined RejectNegative
752 -fira-algorithm=[CB|priority] Set the used IRA algorithm
753
754 fira-region=
755 Common Joined RejectNegative
756 -fira-region=[one|all|mixed] Set regions for IRA
757
758 fira-coalesce
759 Common Report Var(flag_ira_coalesce) Init(0)
760 Do optimistic coalescing.
761
762 fira-loop-pressure
763 Common Report Var(flag_ira_loop_pressure)
764 Use IRA based register pressure calculation
765 in RTL loop optimizations.
766
767 fira-share-save-slots
768 Common Report Var(flag_ira_share_save_slots) Init(1)
769 Share slots for saving different hard registers.
770
771 fira-share-spill-slots
772 Common Report Var(flag_ira_share_spill_slots) Init(1)
773 Share stack slots for spilled pseudo-registers.
774
775 fira-verbose=
776 Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
777 -fira-verbose=<number>  Control IRA's level of diagnostic messages.
778
779 fivopts
780 Common Report Var(flag_ivopts) Init(1) Optimization
781 Optimize induction variables on trees
782
783 fjump-tables
784 Common Var(flag_jump_tables) Init(1) Optimization
785 Use jump tables for sufficiently large switch statements
786
787 fkeep-inline-functions
788 Common Report Var(flag_keep_inline_functions)
789 Generate code for functions even if they are fully inlined
790
791 fkeep-static-consts
792 Common Report Var(flag_keep_static_consts) Init(1)
793 Emit static const variables even if they are not used
794
795 fleading-underscore
796 Common Report Var(flag_leading_underscore) Init(-1)
797 Give external symbols a leading underscore
798
799 floop-optimize
800 Common
801 Does nothing.  Preserved for backward compatibility.
802
803 flto
804 Common Var(flag_lto)
805 Enable link-time optimization.
806
807 ; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
808 flto-compression-level=
809 Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1)
810 -flto-compression-level=<number>        Use zlib compression level <number> for IL
811
812 flto-report
813 Common Report Var(flag_lto_report) Init(0) Optimization
814 Report various link-time optimization statistics
815
816 fmath-errno
817 Common Report Var(flag_errno_math) Init(1) Optimization
818 Set errno after built-in math functions
819
820 fmem-report
821 Common Report Var(mem_report)
822 Report on permanent memory allocation
823
824 ; This will attempt to merge constant section constants, if 1 only
825 ; string constants and constants from constant pool, if 2 also constant
826 ; variables.
827 fmerge-all-constants
828 Common Report Var(flag_merge_constants,2) Init(1) Optimization
829 Attempt to merge identical constants and constant variables
830
831 fmerge-constants
832 Common Report Var(flag_merge_constants,1) VarExists Optimization
833 Attempt to merge identical constants across compilation units
834
835 fmerge-debug-strings
836 Common Report Var(flag_merge_debug_strings) Init(1)
837 Attempt to merge identical debug strings across compilation units
838
839 fmessage-length=
840 Common RejectNegative Joined UInteger
841 -fmessage-length=<number>       Limit diagnostics to <number> characters per line.  0 suppresses line-wrapping
842
843 fmodulo-sched
844 Common Report Var(flag_modulo_sched) Optimization
845 Perform SMS based modulo scheduling before the first scheduling pass
846
847 fmodulo-sched-allow-regmoves
848 Common Report Var(flag_modulo_sched_allow_regmoves)
849 Perform SMS based modulo scheduling with register moves allowed
850
851 fmove-loop-invariants
852 Common Report Var(flag_move_loop_invariants) Init(1) Optimization
853 Move loop invariant computations out of loops
854
855 fmudflap
856 Common RejectNegative Report Var(flag_mudflap)
857 Add mudflap bounds-checking instrumentation for single-threaded program
858
859 fmudflapth
860 Common RejectNegative Report VarExists Var(flag_mudflap,2)
861 Add mudflap bounds-checking instrumentation for multi-threaded program
862
863 fmudflapir
864 Common RejectNegative Report Var(flag_mudflap_ignore_reads)
865 Ignore read operations when inserting mudflap instrumentation
866
867 fdce
868 Common Var(flag_dce) Init(1) Optimization
869 Use the RTL dead code elimination pass
870
871 fdse
872 Common Var(flag_dse) Init(1) Optimization
873 Use the RTL dead store elimination pass
874
875 freschedule-modulo-scheduled-loops
876 Common Report Var(flag_resched_modulo_sched) Optimization
877 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
878
879 fnon-call-exceptions
880 Common Report Var(flag_non_call_exceptions) Optimization
881 Support synchronous non-call exceptions
882
883 fomit-frame-pointer
884 Common Report Var(flag_omit_frame_pointer) Optimization
885 When possible do not generate stack frames
886
887 foptimize-register-move
888 Common Report Var(flag_regmove) Optimization
889 Do the full register move optimization pass
890
891 foptimize-sibling-calls
892 Common Report Var(flag_optimize_sibling_calls) Optimization
893 Optimize sibling and tail recursive calls
894
895 fpartial-inlining
896 Common Report Var(flag_partial_inlining)
897 Perform partial inlining
898
899 fpre-ipa-mem-report
900 Common Report Var(pre_ipa_mem_report)
901 Report on memory allocation before interprocedural optimization
902
903 fpost-ipa-mem-report
904 Common Report Var(post_ipa_mem_report)
905 Report on memory allocation before interprocedural optimization
906
907 fpack-struct
908 Common Report Var(flag_pack_struct) Optimization
909 Pack structure members together without holes
910
911 fpack-struct=
912 Common RejectNegative Joined UInteger Optimization
913 -fpack-struct=<number>  Set initial maximum structure member alignment
914
915 fpcc-struct-return
916 Common Report Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
917 Return small aggregates in memory, not registers
918
919 fpeel-loops
920 Common Report Var(flag_peel_loops) Optimization
921 Perform loop peeling
922
923 fpeephole
924 Common Report Var(flag_no_peephole,0) Optimization
925 Enable machine specific peephole optimizations
926
927 fpeephole2
928 Common Report Var(flag_peephole2) Optimization
929 Enable an RTL peephole pass before sched2
930
931 fPIC
932 Common Report Var(flag_pic,2)
933 Generate position-independent code if possible (large mode)
934
935 fPIE
936 Common Report Var(flag_pie,2)
937 Generate position-independent code for executables if possible (large mode)
938
939 fpic
940 Common Report Var(flag_pic,1) VarExists
941 Generate position-independent code if possible (small mode)
942
943 fpie
944 Common Report Var(flag_pie,1) VarExists
945 Generate position-independent code for executables if possible (small mode)
946
947 fplugin=
948 Common Joined RejectNegative
949 Specify a plugin to load
950
951 fplugin-arg-
952 Common Joined RejectNegative
953 -fplugin-arg-<name>-<key>[=<value>]     Specify argument <key>=<value> for plugin <name>
954
955 fpredictive-commoning
956 Common Report Var(flag_predictive_commoning) Optimization
957 Run predictive commoning optimization.
958
959 fprefetch-loop-arrays
960 Common Report Var(flag_prefetch_loop_arrays) Init(-1) Optimization
961 Generate prefetch instructions, if available, for arrays in loops
962
963 fprofile
964 Common Report Var(profile_flag)
965 Enable basic program profiling code
966
967 fprofile-arcs
968 Common Report Var(profile_arc_flag)
969 Insert arc-based program profiling code
970
971 fprofile-dir=
972 Common Joined RejectNegative
973 Set the top-level directory for storing the profile data.
974 The default is 'pwd'.
975
976 fprofile-correction
977 Common Report Var(flag_profile_correction)
978 Enable correction of flow inconsistent profile data input
979
980 fprofile-generate
981 Common
982 Enable common options for generating profile info for profile feedback directed optimizations
983
984 fprofile-generate=
985 Common Joined RejectNegative
986 Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=
987
988 fprofile-use
989 Common Var(flag_profile_use)
990 Enable common options for performing profile feedback directed optimizations
991
992 fprofile-use=
993 Common Joined RejectNegative
994 Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=
995
996 fprofile-values
997 Common Report Var(flag_profile_values)
998 Insert code to profile values of expressions
999
1000 frandom-seed
1001 Common
1002
1003 frandom-seed=
1004 Common Joined RejectNegative
1005 -frandom-seed=<string>  Make compile reproducible using <string>
1006
1007 ; This switch causes the command line that was used to create an
1008 ; object file to be recorded into the object file.  The exact format
1009 ; of this recording is target and binary file format dependent.
1010 ; It is related to the -fverbose-asm switch, but that switch only
1011 ; records information in the assembler output file as comments, so
1012 ; they never reach the object file.
1013 frecord-gcc-switches
1014 Common Report Var(flag_record_gcc_switches)
1015 Record gcc command line switches in the object file.
1016
1017 freg-struct-return
1018 Common Report Var(flag_pcc_struct_return,0) VarExists Optimization
1019 Return small aggregates in registers
1020
1021 fregmove
1022 Common Report Var(flag_regmove) Optimization
1023 Enables a register move optimization
1024
1025 frename-registers
1026 Common Report Var(flag_rename_registers) Init(2) Optimization
1027 Perform a register renaming optimization pass
1028
1029 freorder-blocks
1030 Common Report Var(flag_reorder_blocks) Optimization
1031 Reorder basic blocks to improve code placement
1032
1033 freorder-blocks-and-partition
1034 Common Report Var(flag_reorder_blocks_and_partition) Optimization
1035 Reorder basic blocks and partition into hot and cold sections
1036
1037 freorder-functions
1038 Common Report Var(flag_reorder_functions) Optimization
1039 Reorder functions to improve code placement
1040
1041 frerun-cse-after-loop
1042 Common Report Var(flag_rerun_cse_after_loop) Init(2) Optimization
1043 Add a common subexpression elimination pass after loop optimizations
1044
1045 frerun-loop-opt
1046 Common
1047 Does nothing.  Preserved for backward compatibility.
1048
1049 frounding-math
1050 Common Report Var(flag_rounding_math) Optimization
1051 Disable optimizations that assume default FP rounding behavior
1052
1053 fsched-interblock
1054 Common Report Var(flag_schedule_interblock) Init(1) Optimization
1055 Enable scheduling across basic blocks
1056
1057 fsched-pressure
1058 Common Report Var(flag_sched_pressure) Init(0) Optimization
1059 Enable register pressure sensitive insn scheduling
1060
1061 fsched-spec
1062 Common Report Var(flag_schedule_speculative) Init(1) Optimization
1063 Allow speculative motion of non-loads
1064
1065 fsched-spec-load
1066 Common Report Var(flag_schedule_speculative_load) Optimization
1067 Allow speculative motion of some loads
1068
1069 fsched-spec-load-dangerous
1070 Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
1071 Allow speculative motion of more loads
1072
1073 fsched-verbose=
1074 Common RejectNegative Joined
1075 -fsched-verbose=<number>        Set the verbosity level of the scheduler
1076
1077 fsched2-use-superblocks
1078 Common Report Var(flag_sched2_use_superblocks) Optimization
1079 If scheduling post reload, do superblock scheduling
1080
1081 fsched2-use-traces
1082 Common
1083 Does nothing.  Preserved for backward compatibility.
1084
1085 fschedule-insns
1086 Common Report Var(flag_schedule_insns) Optimization
1087 Reschedule instructions before register allocation
1088
1089 fschedule-insns2
1090 Common Report Var(flag_schedule_insns_after_reload) Optimization
1091 Reschedule instructions after register allocation
1092
1093 ; This flag should be on when a target implements non-trivial
1094 ; scheduling hooks, maybe saving some information for its own sake.
1095 ; On IA64, for example, this is used for correct bundling. 
1096 fselective-scheduling
1097 Common Report Var(flag_selective_scheduling) Optimization
1098 Schedule instructions using selective scheduling algorithm
1099
1100 fselective-scheduling2
1101 Common Report Var(flag_selective_scheduling2) Optimization 
1102 Run selective scheduling after reload
1103
1104 fsel-sched-pipelining
1105 Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
1106 Perform software pipelining of inner loops during selective scheduling
1107
1108 fsel-sched-pipelining-outer-loops
1109 Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
1110 Perform software pipelining of outer loops during selective scheduling
1111
1112 fsel-sched-reschedule-pipelined
1113 Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
1114 Reschedule pipelined regions without pipelining
1115
1116 ; sched_stalled_insns means that insns can be moved prematurely from the queue
1117 ; of stalled insns into the ready list.
1118 fsched-stalled-insns
1119 Common Report Var(flag_sched_stalled_insns) Optimization UInteger
1120 Allow premature scheduling of queued insns
1121
1122 fsched-stalled-insns=
1123 Common RejectNegative Joined UInteger
1124 -fsched-stalled-insns=<number>  Set number of queued insns that can be prematurely scheduled
1125
1126 ; sched_stalled_insns_dep controls how many recently scheduled cycles will
1127 ; be examined for a dependency on a stalled insn that is candidate for
1128 ; premature removal from the queue of stalled insns into the ready list (has
1129 ; an effect only if the flag 'sched_stalled_insns' is set).
1130 fsched-stalled-insns-dep
1131 Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
1132 Set dependence distance checking in premature scheduling of queued insns
1133
1134 fsched-stalled-insns-dep=
1135 Common RejectNegative Joined UInteger
1136 -fsched-stalled-insns-dep=<number>      Set dependence distance checking in premature scheduling of queued insns
1137
1138 fsched-group-heuristic
1139 Common Report Var(flag_sched_group_heuristic) Init(1) Optimization
1140 Enable the group heuristic in the scheduler
1141
1142 fsched-critical-path-heuristic
1143 Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization
1144 Enable the critical path heuristic in the scheduler
1145
1146 fsched-spec-insn-heuristic
1147 Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
1148 Enable the speculative instruction heuristic in the scheduler
1149
1150 fsched-rank-heuristic
1151 Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization
1152 Enable the rank heuristic in the scheduler
1153
1154 fsched-last-insn-heuristic
1155 Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization
1156 Enable the last instruction heuristic in the scheduler
1157
1158 fsched-dep-count-heuristic
1159 Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization
1160 Enable the dependent count heuristic in the scheduler
1161
1162 fsection-anchors
1163 Common Report Var(flag_section_anchors) Optimization
1164 Access data in the same section from shared anchor points
1165
1166 fsee
1167 Common
1168 Does nothing.  Preserved for backward compatibility.
1169
1170 fzee
1171 Common Report Var(flag_zee) Init(0)
1172 Eliminate redundant zero extensions on targets that support implicit extensions.
1173
1174 fshow-column
1175 Common Report Var(flag_show_column) Init(1)
1176 Show column numbers in diagnostics, when available.  Default on
1177
1178 fsignaling-nans
1179 Common Report Var(flag_signaling_nans) Optimization
1180 Disable optimizations observable by IEEE signaling NaNs
1181
1182 fsigned-zeros
1183 Common Report Var(flag_signed_zeros) Init(1) Optimization
1184 Disable floating point optimizations that ignore the IEEE signedness of zero
1185
1186 fsingle-precision-constant
1187 Common Report Var(flag_single_precision_constant) Optimization
1188 Convert floating point constants to single precision constants
1189
1190 fsplit-ivs-in-unroller
1191 Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
1192 Split lifetimes of induction variables when loops are unrolled
1193
1194 fsplit-wide-types
1195 Common Report Var(flag_split_wide_types) Optimization
1196 Split wide types into independent registers
1197
1198 fvariable-expansion-in-unroller
1199 Common Report Var(flag_variable_expansion_in_unroller) Optimization
1200 Apply variable expansion when loops are unrolled
1201
1202 fstack-check=
1203 Common Report RejectNegative Joined
1204 -fstack-check=[no|generic|specific]     Insert stack checking code into the program
1205
1206 fstack-check
1207 Common Report
1208 Insert stack checking code into the program.  Same as -fstack-check=specific
1209
1210 fstack-limit
1211 Common
1212
1213 fstack-limit-register=
1214 Common RejectNegative Joined
1215 -fstack-limit-register=<register>       Trap if the stack goes past <register>
1216
1217 fstack-limit-symbol=
1218 Common RejectNegative Joined
1219 -fstack-limit-symbol=<name>     Trap if the stack goes past symbol <name>
1220
1221 fstack-protector
1222 Common Report Var(flag_stack_protect, 1)
1223 Use propolice as a stack protection method
1224
1225 fstack-protector-all
1226 Common Report RejectNegative Var(flag_stack_protect, 2) VarExists
1227 Use a stack protection method for every function
1228
1229 fstrength-reduce
1230 Common
1231 Does nothing.  Preserved for backward compatibility.
1232
1233 ; Nonzero if we should do (language-dependent) alias analysis.
1234 ; Typically, this analysis will assume that expressions of certain
1235 ; types do not alias expressions of certain other types.  Only used
1236 ; if alias analysis (in general) is enabled.
1237 fstrict-aliasing
1238 Common Report Var(flag_strict_aliasing) Optimization
1239 Assume strict aliasing rules apply
1240
1241 fstrict-overflow
1242 Common Report Var(flag_strict_overflow)
1243 Treat signed overflow as undefined
1244
1245 fsyntax-only
1246 Common Report Var(flag_syntax_only)
1247 Check for syntax errors, then stop
1248
1249 ftest-coverage
1250 Common Report Var(flag_test_coverage)
1251 Create data files needed by \"gcov\"
1252
1253 fthread-jumps
1254 Common Report Var(flag_thread_jumps) Optimization
1255 Perform jump threading optimizations
1256
1257 ftime-report
1258 Common Report Var(time_report)
1259 Report the time taken by each compiler pass
1260
1261 ftls-model=
1262 Common Joined RejectNegative
1263 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]      Set the default thread-local storage code generation model
1264
1265 ftoplevel-reorder
1266 Common Report Var(flag_toplevel_reorder) Init(2) Optimization
1267 Reorder top level functions, variables, and asms
1268
1269 ftracer
1270 Common Report Var(flag_tracer)
1271 Perform superblock formation via tail duplication
1272
1273 ; Zero means that floating-point math operations cannot generate a
1274 ; (user-visible) trap.  This is the case, for example, in nonstop
1275 ; IEEE 754 arithmetic.
1276 ftrapping-math
1277 Common Report Var(flag_trapping_math) Init(1) Optimization
1278 Assume floating-point operations can trap
1279
1280 ftrapv
1281 Common Report Var(flag_trapv) Optimization
1282 Trap for signed overflow in addition, subtraction and multiplication
1283
1284 ftree-ccp
1285 Common Report Var(flag_tree_ccp) Optimization
1286 Enable SSA-CCP optimization on trees
1287
1288 ftree-store-ccp
1289 Common
1290 Does nothing.  Preserved for backward compatibility.
1291
1292 ftree-ch
1293 Common Report Var(flag_tree_ch) Optimization
1294 Enable loop header copying on trees
1295
1296 ftree-copyrename
1297 Common Report Var(flag_tree_copyrename) Optimization
1298 Replace SSA temporaries with better names in copies
1299
1300 ftree-copy-prop
1301 Common Report Var(flag_tree_copy_prop) Optimization
1302 Enable copy propagation on trees
1303
1304 ftree-store-copy-prop
1305 Common
1306 Does nothing.  Preserved for backward compatibility.
1307
1308 ftree-cselim
1309 Common Report Var(flag_tree_cselim) Init(2) Optimization
1310 Transform condition stores into unconditional ones
1311
1312 ftree-switch-conversion
1313 Common Report Var(flag_tree_switch_conversion) Optimization
1314 Perform conversions of switch initializations.
1315
1316 ftree-dce
1317 Common Report Var(flag_tree_dce) Optimization
1318 Enable SSA dead code elimination optimization on trees
1319
1320 ftree-dominator-opts
1321 Common Report Var(flag_tree_dom) Optimization
1322 Enable dominator optimizations
1323
1324 ftree-dse
1325 Common Report Var(flag_tree_dse) Optimization
1326 Enable dead store elimination
1327
1328 ftree-forwprop
1329 Common Report Var(flag_tree_forwprop) Init(1) Optimization
1330 Enable forward propagation on trees
1331
1332 ftree-fre
1333 Common Report Var(flag_tree_fre) Optimization
1334 Enable Full Redundancy Elimination (FRE) on trees
1335
1336 ftree-loop-distribution
1337 Common Report Var(flag_tree_loop_distribution) Optimization
1338 Enable loop distribution on trees
1339
1340 ftree-loop-im
1341 Common Report Var(flag_tree_loop_im) Init(1) Optimization
1342 Enable loop invariant motion on trees
1343
1344 ftree-loop-linear
1345 Common Report Var(flag_tree_loop_linear) Optimization
1346 Enable linear loop transforms on trees
1347
1348 ftree-loop-ivcanon
1349 Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
1350 Create canonical induction variables in loops
1351
1352 ftree-loop-optimize
1353 Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
1354 Enable loop optimizations on tree level
1355
1356 ftree-parallelize-loops=
1357 Common Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1)
1358 Enable automatic parallelization of loops
1359
1360 ftree-phiprop
1361 Common Report Var(flag_tree_phiprop) Init(1) Optimization
1362 Enable hoisting loads from conditional pointers.
1363
1364 ftree-pre
1365 Common Report Var(flag_tree_pre) Optimization
1366 Enable SSA-PRE optimization on trees
1367
1368 ftree-pta
1369 Common Report Var(flag_tree_pta) Init(1) Optimization
1370 Perform function-local points-to analysis on trees.
1371
1372 ftree-reassoc
1373 Common Report Var(flag_tree_reassoc) Init(1) Optimization
1374 Enable reassociation on tree level
1375
1376 ftree-salias
1377 Common
1378 Does nothing.  Preserved for backward compatibility.
1379
1380 ftree-sink
1381 Common Report Var(flag_tree_sink) Optimization
1382 Enable SSA code sinking on trees
1383
1384 ftree-sra
1385 Common Report Var(flag_tree_sra) Optimization
1386 Perform scalar replacement of aggregates
1387
1388 ftree-ter
1389 Common Report Var(flag_tree_ter) Init(1) Optimization
1390 Replace temporary expressions in the SSA->normal pass
1391
1392 ftree-lrs
1393 Common Report Var(flag_tree_live_range_split) Optimization
1394 Perform live range splitting during the SSA->normal pass
1395
1396 ftree-vrp
1397 Common Report Var(flag_tree_vrp) Init(0) Optimization
1398 Perform Value Range Propagation on trees
1399
1400 funit-at-a-time
1401 Common Report Var(flag_unit_at_a_time) Init(1) Optimization
1402 Compile whole compilation unit at a time
1403
1404 funroll-loops
1405 Common Report Var(flag_unroll_loops) Optimization
1406 Perform loop unrolling when iteration count is known
1407
1408 funroll-all-loops
1409 Common Report Var(flag_unroll_all_loops) Optimization
1410 Perform loop unrolling for all loops
1411
1412 ; Nonzero means that loop optimizer may assume that the induction variables
1413 ; that control loops do not overflow and that the loops with nontrivial
1414 ; exit condition are not infinite
1415 funsafe-loop-optimizations
1416 Common Report Var(flag_unsafe_loop_optimizations) Optimization
1417 Allow loop optimizations to assume that the loops behave in normal way
1418
1419 fassociative-math
1420 Common Report Var(flag_associative_math)
1421 Allow optimization for floating-point arithmetic which may change the
1422 result of the operation due to rounding.
1423
1424 freciprocal-math
1425 Common Report Var(flag_reciprocal_math)
1426 Same as -fassociative-math for expressions which include division.
1427
1428 ; Nonzero means that unsafe floating-point math optimizations are allowed
1429 ; for the sake of speed.  IEEE compliance is not guaranteed, and operations
1430 ; are allowed to assume that their arguments and results are "normal"
1431 ; (e.g., nonnegative for SQRT).
1432 funsafe-math-optimizations
1433 Common Report Var(flag_unsafe_math_optimizations) Optimization
1434 Allow math optimizations that may violate IEEE or ISO standards
1435
1436 funswitch-loops
1437 Common Report Var(flag_unswitch_loops) Optimization
1438 Perform loop unswitching
1439
1440 funwind-tables
1441 Common Report Var(flag_unwind_tables) Optimization
1442 Just generate unwind tables for exception handling
1443
1444 fuse-linker-plugin
1445 Common Undocumented
1446
1447 fvar-tracking
1448 Common Report Var(flag_var_tracking) VarExists Optimization
1449 Perform variable tracking
1450
1451 fvar-tracking-assignments
1452 Common Report Var(flag_var_tracking_assignments) VarExists Optimization
1453 Perform variable tracking by annotating assignments
1454
1455 fvar-tracking-assignments-toggle
1456 Common Report Var(flag_var_tracking_assignments_toggle) VarExists Optimization
1457 Toggle -fvar-tracking-assignments
1458
1459 fvar-tracking-uninit
1460 Common Report Var(flag_var_tracking_uninit) Optimization
1461 Perform variable tracking and also tag variables that are uninitialized
1462
1463 ftree-vectorize
1464 Common Report Var(flag_tree_vectorize) Optimization
1465 Enable loop vectorization on trees
1466
1467 ftree-slp-vectorize
1468 Common Report Var(flag_tree_slp_vectorize) Init(2) Optimization
1469 Enable basic block vectorization (SLP) on trees
1470
1471 fvect-cost-model
1472 Common Report Var(flag_vect_cost_model) Optimization
1473 Enable use of cost model in vectorization
1474
1475 ftree-vect-loop-version
1476 Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization
1477 Enable loop versioning when doing loop vectorization on trees
1478
1479 ftree-vectorizer-verbose=
1480 Common RejectNegative Joined
1481 -ftree-vectorizer-verbose=<number>      Set the verbosity level of the vectorizer
1482
1483 ftree-scev-cprop
1484 Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
1485 Enable copy propagation of scalar-evolution information.
1486
1487 ; -fverbose-asm causes extra commentary information to be produced in
1488 ; the generated assembly code (to make it more readable).  This option
1489 ; is generally only of use to those who actually need to read the
1490 ; generated assembly code (perhaps while debugging the compiler itself).
1491 ; -fno-verbose-asm, the default, causes the extra information
1492 ; to not be added and is useful when comparing two assembler files.
1493 fverbose-asm
1494 Common Report Var(flag_verbose_asm)
1495 Add extra commentary to assembler output
1496
1497 fvisibility=
1498 Common Joined RejectNegative
1499 -fvisibility=[default|internal|hidden|protected]        Set the default symbol visibility
1500
1501
1502 fvpt
1503 Common Report Var(flag_value_profile_transformations) Optimization
1504 Use expression value profiles in optimizations
1505
1506 fweb
1507 Common Report Var(flag_web) Init(2) Optimization
1508 Construct webs and split unrelated uses of single variable
1509
1510 fwhopr
1511 Common
1512 Enable partitioned link-time optimization
1513
1514 fwhopr=
1515 Common RejectNegative UInteger Joined Var(flag_whopr)
1516 Enable partitioned link-time optimization with specified number of parallel jobs
1517
1518 ftree-builtin-call-dce
1519 Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
1520 Enable conditional dead code elimination for builtin calls
1521
1522 fwhole-program
1523 Common Report Var(flag_whole_program) Init(0) Optimization
1524 Perform whole program optimizations
1525
1526 fwrapv
1527 Common Report Var(flag_wrapv) Optimization
1528 Assume signed arithmetic overflow wraps around
1529
1530 fzero-initialized-in-bss
1531 Common Report Var(flag_zero_initialized_in_bss) Init(1)
1532 Put zero initialized data in the bss section
1533
1534 g
1535 Common JoinedOrMissing
1536 Generate debug information in default format
1537
1538 gcoff
1539 Common JoinedOrMissing Negative(gdwarf-)
1540 Generate debug information in COFF format
1541
1542 gdwarf-
1543 Common Joined UInteger Var(dwarf_version) Init(2) Negative(gstabs)
1544 Generate debug information in DWARF v2 (or later) format
1545
1546 ggdb
1547 Common JoinedOrMissing
1548 Generate debug information in default extended format
1549
1550 gstabs
1551 Common JoinedOrMissing Negative(gstabs+)
1552 Generate debug information in STABS format
1553
1554 gstabs+
1555 Common JoinedOrMissing Negative(gvms)
1556 Generate debug information in extended STABS format
1557
1558 gno-strict-dwarf
1559 Common RejectNegative Var(dwarf_strict,0) Init(-1)
1560 Emit DWARF additions beyond selected version
1561
1562 gstrict-dwarf
1563 Common Report RejectNegative Var(dwarf_strict,1) VarExists
1564 Don't emit DWARF additions beyond selected version
1565
1566 gtoggle
1567 Common Report Var(flag_gtoggle)
1568 Toggle debug information generation
1569
1570 gvms
1571 Common JoinedOrMissing Negative(gxcoff)
1572 Generate debug information in VMS format
1573
1574 gxcoff
1575 Common JoinedOrMissing Negative(gxcoff+)
1576 Generate debug information in XCOFF format
1577
1578 gxcoff+
1579 Common JoinedOrMissing Negative(gcoff)
1580 Generate debug information in extended XCOFF format
1581
1582 iplugindir=
1583 Common Joined Var(plugindir_string) Init(0)
1584 -iplugindir=<dir>       Set <dir> to be the default plugin directory
1585
1586 o
1587 Common Joined Separate
1588 -o <file>       Place output into <file>
1589
1590 p
1591 Common Var(profile_flag)
1592 Enable function profiling
1593
1594 pedantic
1595 Common Var(pedantic)
1596 Issue warnings needed for strict compliance to the standard
1597
1598 pedantic-errors
1599 Common
1600 Like -pedantic but issue them as errors
1601
1602 quiet
1603 Common Var(quiet_flag)
1604 Do not display functions compiled or elapsed time
1605
1606 version
1607 Common Var(version_flag)
1608 Display the compiler's version
1609
1610 w
1611 Common Var(inhibit_warnings)
1612 Suppress warnings
1613
1614 shared
1615 Common RejectNegative Negative(pie)
1616 Create a shared library
1617
1618 pie
1619 Common RejectNegative Negative(shared)
1620 Create a position independent executable
1621
1622 ; This comment is to ensure we retain the blank line above.