OSDN Git Service

Merge dataflow branch into mainline
[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 Free Software Foundation, Inc.
4 ;
5 ; This file is part of GCC.
6 ;
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 2, or (at your option) any later
10 ; version.
11 ;
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
15 ; for more details.
16 ;
17 ; You should have received a copy of the GNU General Public License
18 ; along with GCC; see the file COPYING.  If not, write to the Free
19 ; Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
20 ; 02110-1301, USA.
21
22 ; See the GCC internals manual 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 three 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
43
44 fhelp=
45 Common Joined
46
47 ftarget-help
48 Common
49
50 -param
51 Common Separate
52 --param <param>=<value> Set parameter <param> to value.  See below for a complete list of parameters
53
54 -version
55 Common
56
57 G
58 Common Joined Separate UInteger
59 -G<number>      Put global and static data smaller than <number> bytes into a special section (on some targets)
60
61 O
62 Common JoinedOrMissing
63 -O<number>      Set optimization level to <number>
64
65 Os
66 Common
67 Optimize for space rather than speed
68
69 W
70 Common RejectNegative
71 This switch is deprecated; use -Wextra instead
72
73 Waggregate-return
74 Common Var(warn_aggregate_return) Warning
75 Warn about returning structures, unions or arrays
76
77 Warray-bounds
78 Common Var(warn_array_bounds) Warning
79 Warn if an array is accessed out of bounds
80
81 Wattributes
82 Common Var(warn_attributes) Init(1) Warning
83 Warn about inappropriate attribute usage
84
85 Wcast-align
86 Common Var(warn_cast_align) Warning
87 Warn about pointer casts which increase alignment
88
89 Wdeprecated-declarations
90 Common Var(warn_deprecated_decl) Init(1) Warning
91 Warn about uses of __attribute__((deprecated)) declarations
92
93 Wdisabled-optimization
94 Common Var(warn_disabled_optimization) Warning
95 Warn when an optimization pass is disabled
96
97 Werror
98 Common Var(warnings_are_errors)
99 Treat all warnings as errors
100
101 Werror=
102 Common Joined
103 Treat specified warning as error
104
105 Wextra
106 Common Warning
107 Print extra (possibly unwanted) warnings
108
109 Wfatal-errors
110 Common Var(flag_fatal_errors)
111 Exit on the first error occurred
112
113 Winline
114 Common Var(warn_inline) Warning
115 Warn when an inlined function cannot be inlined
116
117 Wlarger-than-
118 Common RejectNegative Joined UInteger Warning
119 -Wlarger-than-<number>  Warn if an object is larger than <number> bytes
120
121 Wlogical-op
122 Common Warning Var(warn_logical_op)
123 Warn when a logical operator is suspicously always evaluating to true or false
124
125 Wunsafe-loop-optimizations
126 Common Var(warn_unsafe_loop_optimizations) Warning
127 Warn if the loop cannot be optimized due to nontrivial assumptions.
128
129 Wmissing-noreturn
130 Common Var(warn_missing_noreturn) Warning
131 Warn about functions which might be candidates for __attribute__((noreturn))
132
133 Woverflow
134 Common Var(warn_overflow) Init(1) Warning
135 Warn about overflow in arithmetic expressions
136
137 Wpacked
138 Common Var(warn_packed) Warning
139 Warn when the packed attribute has no effect on struct layout
140
141 Wpadded
142 Common Var(warn_padded) Warning
143 Warn when padding is required to align structure members
144
145 Wshadow
146 Common Var(warn_shadow) Warning
147 Warn when one local variable shadows another
148
149 Wstack-protector
150 Common Var(warn_stack_protect) Warning
151 Warn when not issuing stack smashing protection for some reason
152
153 Wstrict-aliasing
154 Common Warning
155 Warn about code which might break strict aliasing rules
156
157 Wstrict-aliasing=
158 Common Joined UInteger Warning
159 Warn about code which might break strict aliasing rules
160
161 Wstrict-overflow
162 Common Warning
163 Warn about optimizations that assume that signed overflow is undefined
164
165 Wstrict-overflow=
166 Common Joined UInteger Warning
167 Warn about optimizations that assume that signed overflow is undefined
168
169 Wswitch
170 Common Var(warn_switch) Warning
171 Warn about enumerated switches, with no default, missing a case
172
173 Wswitch-default
174 Common Var(warn_switch_default) Warning
175 Warn about enumerated switches missing a \"default:\" statement
176
177 Wswitch-enum
178 Common Var(warn_switch_enum) Warning
179 Warn about all enumerated switches missing a specific case
180
181 Wsystem-headers
182 Common Var(warn_system_headers) Warning
183 Do not suppress warnings from system headers
184
185 Wuninitialized
186 Common Var(warn_uninitialized) Warning
187 Warn about uninitialized automatic variables
188
189 Wunreachable-code
190 Common Var(warn_notreached) Warning
191 Warn about code that will never be executed
192
193 Wunused
194 Common Warning
195 Enable all -Wunused- warnings
196
197 Wunused-function
198 Common Var(warn_unused_function) Warning
199 Warn when a function is unused
200
201 Wunused-label
202 Common Var(warn_unused_label) Warning
203 Warn when a label is unused
204
205 Wunused-parameter
206 Common Var(warn_unused_parameter) Warning
207 Warn when a function parameter is unused
208
209 Wunused-value
210 Common Var(warn_unused_value) Warning
211 Warn when an expression value is unused
212
213 Wunused-variable
214 Common Var(warn_unused_variable) Warning
215 Warn when a variable is unused
216
217 Wvolatile-register-var
218 Common Var(warn_register_var) Warning
219 Warn when a register variable is declared volatile
220
221 Wcoverage-mismatch
222 Common RejectNegative Var(warn_coverage_mismatch) Warning
223 Warn instead of error in case profiles in -fprofile-use do not match
224
225 aux-info
226 Common Separate
227 -aux-info <file>        Emit declaration information into <file>
228
229 aux-info=
230 Common Joined
231
232 auxbase
233 Common Separate
234
235 auxbase-strip
236 Common Separate
237
238 d
239 Common Joined
240 -d<letters>     Enable dumps from specific passes of the compiler
241
242 dumpbase
243 Common Separate
244 -dumpbase <file>        Set the file basename to be used for dumps
245
246 ; The version of the C++ ABI in use.  The following values are allowed:
247 ;
248 ; 0: The version of the ABI believed most conformant with the C++ ABI
249 ;    specification.  This ABI may change as bugs are discovered and fixed.
250 ;    Therefore, 0 will not necessarily indicate the same ABI in different
251 ;    versions of G++.
252 ;
253 ; 1: The version of the ABI first used in G++ 3.2.
254 ;
255 ; Additional positive integers will be assigned as new versions of
256 ; the ABI become the default version of the ABI.
257 fabi-version=
258 Common Joined UInteger Var(flag_abi_version) Init(2)
259
260 falign-functions
261 Common Report Var(align_functions,0)
262 Align the start of functions
263
264 falign-functions=
265 Common RejectNegative Joined UInteger
266
267 falign-jumps
268 Common Report Var(align_jumps,0) Optimization
269 Align labels which are only reached by jumping
270
271 falign-jumps=
272 Common RejectNegative Joined UInteger
273
274 falign-labels
275 Common Report Var(align_labels,0) Optimization
276 Align all labels
277
278 falign-labels=
279 Common RejectNegative Joined UInteger
280
281 falign-loops
282 Common Report Var(align_loops) Optimization
283 Align the start of loops
284
285 falign-loops=
286 Common RejectNegative Joined UInteger
287
288 ; This flag is only tested if alias checking is enabled.
289 ; 0 if pointer arguments may alias each other.  True in C.
290 ; 1 if pointer arguments may not alias each other but may alias
291 ;   global variables.
292 ; 2 if pointer arguments may not alias each other and may not
293 ;   alias global variables.
294 ; 3 if pointer arguments may not alias anything.  True in Fortran.
295 ;   Set by the front end.
296 fargument-alias
297 Common Report Var(flag_argument_noalias,0) Optimization
298 Specify that arguments may alias each other and globals
299
300 fargument-noalias
301 Common Report Var(flag_argument_noalias,1) VarExists Optimization
302 Assume arguments may alias globals but not each other
303
304 fargument-noalias-global
305 Common Report Var(flag_argument_noalias,2) VarExists Optimization
306 Assume arguments alias neither each other nor globals
307
308 fargument-noalias-anything
309 Common Report Var(flag_argument_noalias,3) VarExists Optimization
310 Assume arguments alias no other storage
311
312 fasynchronous-unwind-tables
313 Common Report Var(flag_asynchronous_unwind_tables) Optimization
314 Generate unwind tables that are exact at each instruction boundary
315
316 fauto-inc-dec
317 Common Report Var(flag_auto_inc_dec) Init(1)
318 Generate auto-inc/dec instructions
319
320 ; -fcheck-bounds causes gcc to generate array bounds checks.
321 ; For C, C++ and ObjC: defaults off.
322 ; For Java: defaults to on.
323 ; For Fortran: defaults to off.
324 fbounds-check
325 Common Report Var(flag_bounds_check)
326 Generate code to check bounds before indexing arrays
327
328 fbranch-count-reg
329 Common Report Var(flag_branch_on_count_reg) Init(1) Optimization
330 Replace add, compare, branch with branch on count register
331
332 fbranch-probabilities
333 Common Report Var(flag_branch_probabilities) Optimization
334 Use profiling information for branch probabilities
335
336 fbranch-target-load-optimize
337 Common Report Var(flag_branch_target_load_optimize) Optimization
338 Perform branch target load optimization before prologue / epilogue threading
339
340 fbranch-target-load-optimize2
341 Common Report Var(flag_branch_target_load_optimize2) Optimization
342 Perform branch target load optimization after prologue / epilogue threading
343
344 fbtr-bb-exclusive
345 Common Report Var(flag_btr_bb_exclusive) Optimization
346 Restrict target load migration not to re-use registers in any basic block
347
348 fcall-saved-
349 Common Joined RejectNegative
350 -fcall-saved-<register> Mark <register> as being preserved across functions
351
352 fcall-used-
353 Common Joined RejectNegative
354 -fcall-used-<register>  Mark <register> as being corrupted by function calls
355
356 ; Nonzero for -fcaller-saves: allocate values in regs that need to
357 ; be saved across function calls, if that produces overall better code.
358 ; Optional now, so people can test it.
359 fcaller-saves
360 Common Report Var(flag_caller_saves) Optimization
361 Save registers around function calls
362
363 fcheck-data-deps
364 Common Report Var(flag_check_data_deps)
365 Compare the results of several data dependence analyzers.
366
367 fcommon
368 Common Report Var(flag_no_common,0) Optimization
369 Do not put uninitialized globals in the common section
370
371 fcprop-registers
372 Common Report Var(flag_cprop_registers) Optimization
373 Perform a register copy-propagation optimization pass
374
375 fcrossjumping
376 Common Report Var(flag_crossjumping) Optimization
377 Perform cross-jumping optimization
378
379 fcse-follow-jumps
380 Common Report Var(flag_cse_follow_jumps) Optimization
381 When running CSE, follow jumps to their targets
382
383 fcse-skip-blocks
384 Common Report Var(flag_cse_skip_blocks) Optimization
385 When running CSE, follow conditional jumps
386
387 fcx-limited-range
388 Common Report Var(flag_cx_limited_range) Optimization
389 Omit range reduction step when performing complex division
390
391 fdata-sections
392 Common Report Var(flag_data_sections) Optimization
393 Place data items into their own section
394
395 fdbg-cnt=
396 Common RejectNegative Joined
397 -fdbg-cnt=<counter>:<limit>             Set the debug counter limit.   
398
399 ; Nonzero for -fdefer-pop: don't pop args after each function call
400 ; instead save them up to pop many calls' args with one insns.
401 fdefer-pop
402 Common Report Var(flag_defer_pop) Optimization
403 Defer popping functions args from stack until later
404
405 fdelayed-branch
406 Common Report Var(flag_delayed_branch) Optimization
407 Attempt to fill delay slots of branch instructions
408
409 fdelete-null-pointer-checks
410 Common Report Var(flag_delete_null_pointer_checks) Optimization
411 Delete useless null pointer checks
412
413 fdiagnostics-show-location=
414 Common Joined RejectNegative
415 -fdiagnostics-show-location=[once|every-line]   How often to emit source location at the beginning of line-wrapped diagnostics
416
417 fdiagnostics-show-option
418 Common
419 Amend appropriate diagnostic messages with the command line option that controls them
420
421 fdump-
422 Common Joined RejectNegative
423 -fdump-<type>   Dump various compiler internals to a file
424
425 fdump-noaddr
426 Common Report Var(flag_dump_noaddr)
427 Suppress output of addresses in debugging dumps
428
429 fdump-unnumbered
430 Common Report Var(flag_dump_unnumbered) VarExists
431 Suppress output of instruction numbers, line number notes and addresses in debugging dumps
432
433 fearly-inlining
434 Common Report Var(flag_early_inlining) Init(1) Optimization
435 Perform early inlining
436
437 feliminate-dwarf2-dups
438 Common Report Var(flag_eliminate_dwarf2_dups)
439 Perform DWARF2 duplicate elimination
440
441 feliminate-unused-debug-symbols
442 Common Report Var(flag_debug_only_used_symbols)
443 Perform unused type elimination in debug info
444
445 feliminate-unused-debug-types
446 Common Report Var(flag_eliminate_unused_debug_types) Init(1)
447 Perform unused type elimination in debug info
448
449 femit-class-debug-always
450 Common Report Var(flag_emit_class_debug_always) Init(1)
451 Do not suppress C++ class debug information.
452
453 fexceptions
454 Common Report Var(flag_exceptions) Optimization
455 Enable exception handling
456
457 fexpensive-optimizations
458 Common Report Var(flag_expensive_optimizations) Optimization
459 Perform a number of minor, expensive optimizations
460
461 ffast-math
462 Common
463
464 ffinite-math-only
465 Common Report Var(flag_finite_math_only) Optimization
466 Assume no NaNs or infinities are generated
467
468 ffixed-
469 Common Joined RejectNegative
470 -ffixed-<register>      Mark <register> as being unavailable to the compiler
471
472 ffloat-store
473 Common Report Var(flag_float_store) Optimization
474 Don't allocate floats and doubles in extended-precision registers
475
476 ; Nonzero for -fforce-addr: load memory address into a register before
477 ; reference to memory.  This makes better cse but slower compilation.
478 fforce-addr
479 Common Report Var(flag_force_addr) Optimization
480 Copy memory address constants into registers before use
481
482 fforward-propagate
483 Common Report Var(flag_forward_propagate) Optimization
484 Perform a forward propagation pass on RTL
485
486 ; Nonzero means don't put addresses of constant functions in registers.
487 ; Used for compiling the Unix kernel, where strange substitutions are
488 ; done on the assembly output.
489 ffunction-cse
490 Common Report Var(flag_no_function_cse,0)
491 Allow function addresses to be held in registers
492
493 ffunction-sections
494 Common Report Var(flag_function_sections)
495 Place each function into its own section
496
497 fgcse
498 Common Report Var(flag_gcse) Optimization
499 Perform global common subexpression elimination
500
501 fgcse-lm
502 Common Report Var(flag_gcse_lm) Init(1) Optimization
503 Perform enhanced load motion during global common subexpression elimination
504
505 fgcse-sm
506 Common Report Var(flag_gcse_sm) Init(0) Optimization
507 Perform store motion after global common subexpression elimination
508
509 fgcse-las
510 Common Report Var(flag_gcse_las) Init(0) Optimization
511 Perform redundant load after store elimination in global common subexpression
512 elimination
513
514 fgcse-after-reload
515 Common Report Var(flag_gcse_after_reload) Optimization
516 Perform global common subexpression elimination after register allocation
517 has finished
518
519 fguess-branch-probability
520 Common Report Var(flag_guess_branch_prob) Optimization
521 Enable guessing of branch probabilities
522
523 ; Nonzero means ignore `#ident' directives.  0 means handle them.
524 ; Generate position-independent code for executables if possible
525 ; On SVR4 targets, it also controls whether or not to emit a
526 ; string identifying the compiler.
527 fident
528 Common Report Var(flag_no_ident,0)
529 Process #ident directives
530
531 fif-conversion
532 Common Report Var(flag_if_conversion) Optimization
533 Perform conversion of conditional jumps to branchless equivalents
534
535 fif-conversion2
536 Common Report Var(flag_if_conversion2) Optimization
537 Perform conversion of conditional jumps to conditional execution
538
539 ; -finhibit-size-directive inhibits output of .size for ELF.
540 ; This is used only for compiling crtstuff.c,
541 ; and it may be extended to other effects
542 ; needed for crtstuff.c on other systems.
543 finhibit-size-directive
544 Common Report Var(flag_inhibit_size_directive)
545 Do not generate .size directives
546
547 ; Nonzero means that functions declared `inline' will be treated
548 ; as `static'.  Prevents generation of zillions of copies of unused
549 ; static inline functions; instead, `inlines' are written out
550 ; only when actually used.  Used in conjunction with -g.  Also
551 ; does the right thing with #pragma interface.
552 finline
553 Common Report Var(flag_no_inline,0) Init(2)
554 Pay attention to the \"inline\" keyword
555
556 finline-functions
557 Common Report Var(flag_inline_functions) Optimization
558 Integrate simple functions into their callers
559
560 finline-functions-called-once
561 Common Report Var(flag_inline_functions_called_once) Init(1) Optimization
562 Integrate functions called once into their callers
563
564 finline-limit-
565 Common RejectNegative Joined UInteger
566
567 finline-limit=
568 Common RejectNegative Joined UInteger
569 -finline-limit=<number> Limit the size of inlined functions to <number>
570
571 finstrument-functions
572 Common Report Var(flag_instrument_function_entry_exit)
573 Instrument function entry and exit with profiling calls
574
575 fipa-cp
576 Common Report Var(flag_ipa_cp) Optimization
577 Perform Interprocedural constant propagation
578
579 fipa-pure-const
580 Common Report Var(flag_ipa_pure_const) Init(0) Optimization
581 Discover pure and const functions
582
583 fipa-pta
584 Common Report Var(flag_ipa_pta) Init(0) Optimization
585 Perform interprocedural points-to analysis
586
587 fipa-reference
588 Common Report Var(flag_ipa_reference) Init(0) Optimization
589 Discover readonly and non addressable static variables
590
591 fipa-type-escape
592 Common Report Var(flag_ipa_type_escape) Init(0) Optimization
593 Type based escape and alias analysis
594
595 fipa-matrix-reorg
596 Common Report Var(flag_ipa_matrix_reorg)
597 Perform matrix layout flattening and transposing based
598 on profiling information.
599
600 fivopts
601 Common Report Var(flag_ivopts) Init(1) Optimization
602 Optimize induction variables on trees
603
604 fjump-tables
605 Common Var(flag_jump_tables) Init(1) Optimization
606 Use jump tables for sufficiently large switch statements
607
608 fkeep-inline-functions
609 Common Report Var(flag_keep_inline_functions)
610 Generate code for functions even if they are fully inlined
611
612 fkeep-static-consts
613 Common Report Var(flag_keep_static_consts) Init(1)
614 Emit static const variables even if they are not used
615
616 fleading-underscore
617 Common Report Var(flag_leading_underscore) Init(-1)
618 Give external symbols a leading underscore
619
620 floop-optimize
621 Common
622 Does nothing.  Preserved for backward compatibility.
623
624 fmath-errno
625 Common Report Var(flag_errno_math) Init(1)
626 Set errno after built-in math functions
627
628 fmem-report
629 Common Report Var(mem_report)
630 Report on permanent memory allocation
631
632 ; This will attempt to merge constant section constants, if 1 only
633 ; string constants and constants from constant pool, if 2 also constant
634 ; variables.
635 fmerge-all-constants
636 Common Report Var(flag_merge_constants,2) Init(1) Optimization
637 Attempt to merge identical constants and constant variables
638
639 fmerge-constants
640 Common Report Var(flag_merge_constants,1) VarExists Optimization
641 Attempt to merge identical constants across compilation units
642
643 fmessage-length=
644 Common RejectNegative Joined UInteger
645 -fmessage-length=<number>       Limit diagnostics to <number> characters per line.  0 suppresses line-wrapping
646
647 fmodulo-sched
648 Common Report Var(flag_modulo_sched) Optimization
649 Perform SMS based modulo scheduling before the first scheduling pass
650
651 fmove-loop-invariants
652 Common Report Var(flag_move_loop_invariants) Init(1) Optimization
653 Move loop invariant computations out of loops
654
655 fmudflap
656 Common RejectNegative Report Var(flag_mudflap)
657 Add mudflap bounds-checking instrumentation for single-threaded program
658
659 fmudflapth
660 Common RejectNegative Report VarExists Var(flag_mudflap,2)
661 Add mudflap bounds-checking instrumentation for multi-threaded program
662
663 fmudflapir
664 Common RejectNegative Report Var(flag_mudflap_ignore_reads)
665 Ignore read operations when inserting mudflap instrumentation
666
667 fdce
668 Common Var(flag_dce) Init(1)
669 Use the RTL dead code elimination pass
670
671 fdse
672 Common Var(flag_dse) Init(1)
673 Use the RTL dead store elimination pass
674
675 freschedule-modulo-scheduled-loops
676 Common Report Var(flag_resched_modulo_sched) Optimization
677 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
678
679 fnon-call-exceptions
680 Common Report Var(flag_non_call_exceptions) Optimization
681 Support synchronous non-call exceptions
682
683 fomit-frame-pointer
684 Common Report Var(flag_omit_frame_pointer) Optimization
685 When possible do not generate stack frames
686
687 foptimize-register-move
688 Common Report Var(flag_regmove) Optimization
689 Do the full register move optimization pass
690
691 foptimize-sibling-calls
692 Common Report Var(flag_optimize_sibling_calls) Optimization
693 Optimize sibling and tail recursive calls
694
695 fpre-ipa-mem-report
696 Common Report Var(pre_ipa_mem_report)
697 Report on memory allocation before interprocedural optimization
698
699 fpost-ipa-mem-report
700 Common Report Var(post_ipa_mem_report)
701 Report on memory allocation before interprocedural optimization
702
703 fpack-struct
704 Common Report Var(flag_pack_struct) Optimization
705 Pack structure members together without holes
706
707 fpack-struct=
708 Common RejectNegative Joined UInteger Optimization
709 -fpack-struct=<number>  Set initial maximum structure member alignment
710
711 fpcc-struct-return
712 Common Report Var(flag_pcc_struct_return,1) VarExists
713 Return small aggregates in memory, not registers
714
715 fpeel-loops
716 Common Report Var(flag_peel_loops) Optimization
717 Perform loop peeling
718
719 fpeephole
720 Common Report Var(flag_no_peephole,0) Optimization
721 Enable machine specific peephole optimizations
722
723 fpeephole2
724 Common Report Var(flag_peephole2) Optimization
725 Enable an RTL peephole pass before sched2
726
727 fPIC
728 Common Report Var(flag_pic,2)
729 Generate position-independent code if possible (large mode)
730
731 fPIE
732 Common Report Var(flag_pie,2)
733 Generate position-independent code for executables if possible (large mode)
734
735 fpic
736 Common Report Var(flag_pic,1) VarExists
737 Generate position-independent code if possible (small mode)
738
739 fpie
740 Common Report Var(flag_pie,1) VarExists
741 Generate position-independent code for executables if possible (small mode)
742
743 fpredictive-commoning
744 Common Report Var(flag_predictive_commoning)
745 Run predictive commoning optimization.
746
747 fprefetch-loop-arrays
748 Common Report Var(flag_prefetch_loop_arrays) Optimization
749 Generate prefetch instructions, if available, for arrays in loops
750
751 fprofile
752 Common Report Var(profile_flag)
753 Enable basic program profiling code
754
755 fprofile-arcs
756 Common Report Var(profile_arc_flag)
757 Insert arc-based program profiling code
758
759 fprofile-generate
760 Common
761 Enable common options for generating profile info for profile feedback directed optimizations
762
763 fprofile-use
764 Common
765 Enable common options for performing profile feedback directed optimizations
766
767 fprofile-values
768 Common Report Var(flag_profile_values)
769 Insert code to profile values of expressions
770
771 frandom-seed
772 Common
773
774 frandom-seed=
775 Common Joined RejectNegative
776 -frandom-seed=<string>  Make compile reproducible using <string>
777
778 ; This switch causes the command line that was used to create an
779 ; object file to be recorded into the object file.  The exact format
780 ; of this recording is target and binary file format dependent.
781 ; It is related to the -fverbose-asm switch, but that switch only
782 ; records information in the assembler output file as comments, so
783 ; they never reach the object file.
784 frecord-gcc-switches
785 Common Report Var(flag_record_gcc_switches)
786 Record gcc command line switches in the object file.
787
788 freg-struct-return
789 Common Report Var(flag_pcc_struct_return,0) VarExists Optimization
790 Return small aggregates in registers
791
792 fregmove
793 Common Report Var(flag_regmove) Optimization
794 Enables a register move optimization
795
796 frename-registers
797 Common Report Var(flag_rename_registers) Init(2) Optimization
798 Perform a register renaming optimization pass
799
800 freorder-blocks
801 Common Report Var(flag_reorder_blocks) Optimization
802 Reorder basic blocks to improve code placement
803
804 freorder-blocks-and-partition
805 Common Report Var(flag_reorder_blocks_and_partition) Optimization
806 Reorder basic blocks and partition into hot and cold sections
807
808 freorder-functions
809 Common Report Var(flag_reorder_functions) Optimization
810 Reorder functions to improve code placement
811
812 frerun-cse-after-loop
813 Common Report Var(flag_rerun_cse_after_loop) Init(2) Optimization
814 Add a common subexpression elimination pass after loop optimizations
815
816 frerun-loop-opt
817 Common
818 Does nothing.  Preserved for backward compatibility.
819
820 frounding-math
821 Common Report Var(flag_rounding_math) Optimization
822 Disable optimizations that assume default FP rounding behavior
823
824 fsched-interblock
825 Common Report Var(flag_schedule_interblock) Init(1) Optimization
826 Enable scheduling across basic blocks
827
828 fsched-spec
829 Common Report Var(flag_schedule_speculative) Init(1) Optimization
830 Allow speculative motion of non-loads
831
832 fsched-spec-load
833 Common Report Var(flag_schedule_speculative_load) Optimization
834 Allow speculative motion of some loads
835
836 fsched-spec-load-dangerous
837 Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
838 Allow speculative motion of more loads
839
840 fsched-verbose=
841 Common RejectNegative Joined
842 -fsched-verbose=<number>        Set the verbosity level of the scheduler
843
844 fsched2-use-superblocks
845 Common Report Var(flag_sched2_use_superblocks) Optimization
846 If scheduling post reload, do superblock scheduling
847
848 fsched2-use-traces
849 Common Report Var(flag_sched2_use_traces) Optimization
850 If scheduling post reload, do trace scheduling
851
852 fschedule-insns
853 Common Report Var(flag_schedule_insns) Optimization
854 Reschedule instructions before register allocation
855
856 fschedule-insns2
857 Common Report Var(flag_schedule_insns_after_reload) Optimization
858 Reschedule instructions after register allocation
859
860 ; sched_stalled_insns means that insns can be moved prematurely from the queue
861 ; of stalled insns into the ready list.
862 fsched-stalled-insns
863 Common Report Var(flag_sched_stalled_insns) Optimization
864 Allow premature scheduling of queued insns
865
866 fsched-stalled-insns=
867 Common RejectNegative Joined UInteger
868 -fsched-stalled-insns=<number>  Set number of queued insns that can be prematurely scheduled
869
870 ; sched_stalled_insns_dep controls how many recently scheduled cycles will
871 ; be examined for a dependency on a stalled insn that is candidate for
872 ; premature removal from the queue of stalled insns into the ready list (has
873 ; an effect only if the flag 'sched_stalled_insns' is set).
874 fsched-stalled-insns-dep
875 Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization
876 Set dependence distance checking in premature scheduling of queued insns
877
878 fsched-stalled-insns-dep=
879 Common RejectNegative Joined UInteger
880 -fsched-stalled-insns-dep=<number>      Set dependence distance checking in premature scheduling of queued insns
881
882 fsection-anchors
883 Common Report Var(flag_section_anchors) Optimization
884 Access data in the same section from shared anchor points
885
886 frtl-abstract-sequences
887 Common Report Var(flag_rtl_seqabstr) Optimization
888 Perform sequence abstraction optimization on RTL
889
890 fsee
891 Common Report Var(flag_see) Init(0)
892 Eliminate redundant sign extensions using LCM.
893
894 fshow-column
895 Common C ObjC C++ ObjC++ Report Var(flag_show_column) Init(1)
896 Show column numbers in diagnostics, when available.  Default on
897
898 fsignaling-nans
899 Common Report Var(flag_signaling_nans) Optimization
900 Disable optimizations observable by IEEE signaling NaNs
901
902 fsigned-zeros
903 Common Report Var(flag_signed_zeros) Init(1) Optimization
904 Disable floating point optimizations that ignore the IEEE signedness of zero
905
906 fsingle-precision-constant
907 Common Report Var(flag_single_precision_constant) Optimization
908 Convert floating point constants to single precision constants
909
910 fsplit-ivs-in-unroller
911 Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
912 Split lifetimes of induction variables when loops are unrolled
913
914 fsplit-wide-types
915 Common Report Var(flag_split_wide_types) Optimization
916 Split wide types into independent registers
917
918 fvariable-expansion-in-unroller
919 Common Report Var(flag_variable_expansion_in_unroller) Optimization
920 Apply variable expansion when loops are unrolled
921
922 ; Emit code to probe the stack, to help detect stack overflow; also
923 ; may cause large objects to be allocated dynamically.
924 fstack-check
925 Common Report Var(flag_stack_check)
926 Insert stack checking code into the program
927
928 fstack-limit
929 Common
930
931 fstack-limit-register=
932 Common RejectNegative Joined
933 -fstack-limit-register=<register>       Trap if the stack goes past <register>
934
935 fstack-limit-symbol=
936 Common RejectNegative Joined
937 -fstack-limit-symbol=<name>     Trap if the stack goes past symbol <name>
938
939 fstack-protector
940 Common Report Var(flag_stack_protect, 1)
941 Use propolice as a stack protection method
942
943 fstack-protector-all
944 Common Report RejectNegative Var(flag_stack_protect, 2) VarExists
945 Use a stack protection method for every function
946
947 fstrength-reduce
948 Common
949 Does nothing.  Preserved for backward compatibility.
950
951 ; Nonzero if we should do (language-dependent) alias analysis.
952 ; Typically, this analysis will assume that expressions of certain
953 ; types do not alias expressions of certain other types.  Only used
954 ; if alias analysis (in general) is enabled.
955 fstrict-aliasing
956 Common Report Var(flag_strict_aliasing) Optimization
957 Assume strict aliasing rules apply
958
959 fstrict-overflow
960 Common Report Var(flag_strict_overflow)
961 Treat signed overflow as undefined
962
963 fsyntax-only
964 Common Report Var(flag_syntax_only)
965 Check for syntax errors, then stop
966
967 ftest-coverage
968 Common Report Var(flag_test_coverage)
969 Create data files needed by \"gcov\"
970
971 fthread-jumps
972 Common Report Var(flag_thread_jumps) Optimization
973 Perform jump threading optimizations
974
975 ftime-report
976 Common Report Var(time_report)
977 Report the time taken by each compiler pass
978
979 ftls-model=
980 Common Joined RejectNegative
981 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]      Set the default thread-local storage code generation model
982
983 ftoplevel-reorder
984 Common Report Var(flag_toplevel_reorder) Init(1) Optimization
985 Reorder top level functions, variables, and asms
986
987 ftracer
988 Common Report Var(flag_tracer)
989 Perform superblock formation via tail duplication
990
991 ; Zero means that floating-point math operations cannot generate a
992 ; (user-visible) trap.  This is the case, for example, in nonstop
993 ; IEEE 754 arithmetic.
994 ftrapping-math
995 Common Report Var(flag_trapping_math) Init(1) Optimization
996 Assume floating-point operations can trap
997
998 ftrapv
999 Common Report Var(flag_trapv) Optimization
1000 Trap for signed overflow in addition, subtraction and multiplication
1001
1002 ftree-ccp
1003 Common Report Var(flag_tree_ccp) Optimization
1004 Enable SSA-CCP optimization on trees
1005
1006 ftree-store-ccp
1007 Common Report Var(flag_tree_store_ccp) Optimization
1008 Enable SSA-CCP optimization for stores and loads
1009
1010 ftree-ch
1011 Common Report Var(flag_tree_ch) Optimization
1012 Enable loop header copying on trees
1013
1014 ftree-copyrename
1015 Common Report Var(flag_tree_copyrename) Optimization
1016 Replace SSA temporaries with better names in copies
1017
1018 ftree-copy-prop
1019 Common Report Var(flag_tree_copy_prop) Optimization
1020 Enable copy propagation on trees
1021
1022 ftree-store-copy-prop
1023 Common Report Var(flag_tree_store_copy_prop) Optimization
1024 Enable copy propagation for stores and loads
1025
1026 ftree-dce
1027 Common Report Var(flag_tree_dce) Optimization
1028 Enable SSA dead code elimination optimization on trees
1029
1030 ftree-dominator-opts
1031 Common Report Var(flag_tree_dom) Optimization
1032 Enable dominator optimizations
1033
1034 ftree-dse
1035 Common Report Var(flag_tree_dse) Optimization
1036 Enable dead store elimination
1037
1038 ftree-fre
1039 Common Report Var(flag_tree_fre) Optimization
1040 Enable Full Redundancy Elimination (FRE) on trees
1041
1042 ftree-loop-im
1043 Common Report Var(flag_tree_loop_im) Init(1) Optimization
1044 Enable loop invariant motion on trees
1045
1046 ftree-loop-linear
1047 Common Report Var(flag_tree_loop_linear) Optimization
1048 Enable linear loop transforms on trees
1049
1050 ftree-loop-ivcanon
1051 Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
1052 Create canonical induction variables in loops
1053
1054 ftree-loop-optimize
1055 Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
1056 Enable loop optimizations on tree level
1057
1058 ftree-pre
1059 Common Report Var(flag_tree_pre) Optimization
1060 Enable SSA-PRE optimization on trees
1061
1062 ftree-salias
1063 Common Report Var(flag_tree_salias) Optimization
1064 Perform structural alias analysis
1065
1066 ftree-sink
1067 Common Report Var(flag_tree_sink) Optimization
1068 Enable SSA code sinking on trees
1069
1070 ftree-sra
1071 Common Report Var(flag_tree_sra) Optimization
1072 Perform scalar replacement of aggregates
1073
1074 ftree-ter
1075 Common Report Var(flag_tree_ter) Optimization
1076 Replace temporary expressions in the SSA->normal pass
1077
1078 ftree-lrs
1079 Common Report Var(flag_tree_live_range_split) Optimization
1080 Perform live range splitting during the SSA->normal pass
1081
1082 ftree-vrp
1083 Common Report Var(flag_tree_vrp) Init(0) Optimization
1084 Perform Value Range Propagation on trees
1085
1086 funit-at-a-time
1087 Common Report Var(flag_unit_at_a_time) Optimization
1088 Compile whole compilation unit at a time
1089
1090 funroll-loops
1091 Common Report Var(flag_unroll_loops) Optimization
1092 Perform loop unrolling when iteration count is known
1093
1094 funroll-all-loops
1095 Common Report Var(flag_unroll_all_loops) Optimization
1096 Perform loop unrolling for all loops
1097
1098 ; Nonzero means that loop optimizer may assume that the induction variables
1099 ; that control loops do not overflow and that the loops with nontrivial
1100 ; exit condition are not infinite
1101 funsafe-loop-optimizations
1102 Common Report Var(flag_unsafe_loop_optimizations) Optimization
1103 Allow loop optimizations to assume that the loops behave in normal way
1104
1105 ; Nonzero means that unsafe floating-point math optimizations are allowed
1106 ; for the sake of speed.  IEEE compliance is not guaranteed, and operations
1107 ; are allowed to assume that their arguments and results are "normal"
1108 ; (e.g., nonnegative for SQRT).
1109 funsafe-math-optimizations
1110 Common Report Var(flag_unsafe_math_optimizations) Optimization
1111 Allow math optimizations that may violate IEEE or ISO standards
1112
1113 funswitch-loops
1114 Common Report Var(flag_unswitch_loops) Optimization
1115 Perform loop unswitching
1116
1117 funwind-tables
1118 Common Report Var(flag_unwind_tables) Optimization
1119 Just generate unwind tables for exception handling
1120
1121 fvar-tracking
1122 Common Report Var(flag_var_tracking) VarExists Optimization
1123 Perform variable tracking
1124
1125 ftree-vectorize
1126 Common Report Var(flag_tree_vectorize) Optimization
1127 Enable loop vectorization on trees
1128
1129 fvect-cost-model
1130 Common Report Var(flag_vect_cost_model) Optimization
1131 Enable use of cost model in vectorization
1132
1133 ftree-vect-loop-version
1134 Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization
1135 Enable loop versioning when doing loop vectorization on trees
1136
1137 ftree-vectorizer-verbose=
1138 Common RejectNegative Joined
1139 -ftree-vectorizer-verbose=<number>      Set the verbosity level of the vectorizer
1140
1141 ftree-scev-cprop
1142 Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
1143 Enable copy propagation of scalar-evolution information.
1144
1145 ; -fverbose-asm causes extra commentary information to be produced in
1146 ; the generated assembly code (to make it more readable).  This option
1147 ; is generally only of use to those who actually need to read the
1148 ; generated assembly code (perhaps while debugging the compiler itself).
1149 ; -fno-verbose-asm, the default, causes the extra information
1150 ; to not be added and is useful when comparing two assembler files.
1151 fverbose-asm
1152 Common Report Var(flag_verbose_asm)
1153 Add extra commentary to assembler output
1154
1155 fvisibility=
1156 Common Joined RejectNegative
1157 -fvisibility=[default|internal|hidden|protected]        Set the default symbol visibility
1158
1159
1160 fvpt
1161 Common Report Var(flag_value_profile_transformations) Optimization
1162 Use expression value profiles in optimizations
1163
1164 fweb
1165 Common Report Var(flag_web) Init(2) Optimization
1166 Construct webs and split unrelated uses of single variable
1167
1168 fwhole-program
1169 Common Report Var(flag_whole_program) Init(0) Optimization
1170 Perform whole program optimizations
1171
1172 fwrapv
1173 Common Report Var(flag_wrapv) Optimization
1174 Assume signed arithmetic overflow wraps around
1175
1176 fzero-initialized-in-bss
1177 Common Report Var(flag_zero_initialized_in_bss) Init(1)
1178 Put zero initialized data in the bss section
1179
1180 g
1181 Common JoinedOrMissing
1182 Generate debug information in default format
1183
1184 gcoff
1185 Common JoinedOrMissing Negative(gdwarf-2)
1186 Generate debug information in COFF format
1187
1188 gdwarf-2
1189 Common JoinedOrMissing Negative(gstabs)
1190 Generate debug information in DWARF v2 format
1191
1192 ggdb
1193 Common JoinedOrMissing
1194 Generate debug information in default extended format
1195
1196 gstabs
1197 Common JoinedOrMissing Negative(gstabs+)
1198 Generate debug information in STABS format
1199
1200 gstabs+
1201 Common JoinedOrMissing Negative(gvms)
1202 Generate debug information in extended STABS format
1203
1204 gvms
1205 Common JoinedOrMissing Negative(gxcoff)
1206 Generate debug information in VMS format
1207
1208 gxcoff
1209 Common JoinedOrMissing Negative(gxcoff+)
1210 Generate debug information in XCOFF format
1211
1212 gxcoff+
1213 Common JoinedOrMissing Negative(gcoff)
1214 Generate debug information in extended XCOFF format
1215
1216 o
1217 Common Joined Separate
1218 -o <file>       Place output into <file>
1219
1220 p
1221 Common Var(profile_flag)
1222 Enable function profiling
1223
1224 pedantic
1225 Common Var(pedantic)
1226 Issue warnings needed for strict compliance to the standard
1227
1228 pedantic-errors
1229 Common
1230 Like -pedantic but issue them as errors
1231
1232 quiet
1233 Common Var(quiet_flag)
1234 Do not display functions compiled or elapsed time
1235
1236 version
1237 Common Var(version_flag)
1238 Display the compiler's version
1239
1240 w
1241 Common Var(inhibit_warnings)
1242 Suppress warnings
1243
1244 ; This comment is to ensure we retain the blank line above.