comparison gcc/common.opt @ 16:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents f6334be47118
children 84e7813d76e9
comparison
equal deleted inserted replaced
15:561a7518be6b 16:04ced10e8804
1 ; Options for the language- and target-independent parts of the compiler. 1 ; Options for the language- and target-independent parts of the compiler.
2 2
3 ; Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 3 ; Copyright (C) 2003-2017 Free Software Foundation, Inc.
4 ; Free Software Foundation, Inc.
5 ; 4 ;
6 ; This file is part of GCC. 5 ; This file is part of GCC.
7 ; 6 ;
8 ; GCC is free software; you can redistribute it and/or modify it under 7 ; 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 8 ; the terms of the GNU General Public License as published by the Free
30 int optimize 29 int optimize
31 30
32 Variable 31 Variable
33 int optimize_size 32 int optimize_size
34 33
34 Variable
35 int optimize_debug
36
35 ; Not used directly to control optimizations, only to save -Ofast 37 ; Not used directly to control optimizations, only to save -Ofast
36 ; setting for "optimize" attributes. 38 ; setting for "optimize" attributes.
37 Variable 39 Variable
38 int optimize_fast 40 int optimize_fast
41
42 ; True if this is the lto front end. This is used to disable gimple
43 ; generation and lowering passes that are normally run on the output
44 ; of a front end. These passes must be bypassed for lto since they
45 ; have already been done before the gimple was written.
46 Variable
47 bool in_lto_p = false
48
49 ; This variable is set to non-0 only by LTO front-end. 1 indicates that
50 ; the output produced will be used for incrmeental linking (thus weak symbols
51 ; can still be bound).
52 Variable
53 int flag_incremental_link = 0
39 54
40 ; 0 means straightforward implementation of complex divide acceptable. 55 ; 0 means straightforward implementation of complex divide acceptable.
41 ; 1 means wide ranges of inputs must work for complex divide. 56 ; 1 means wide ranges of inputs must work for complex divide.
42 ; 2 means C99-like requirements for complex multiply and divide. 57 ; 2 means C99-like requirements for complex multiply and divide.
43 Variable 58 Variable
44 int flag_complex_method = 1 59 int flag_complex_method = 1
45 60
46 ; Nonzero if subexpressions must be evaluated from left-to-right.
47 Variable
48 int flag_evaluation_order = 0
49
50 ; Language specific warning pass for unused results. 61 ; Language specific warning pass for unused results.
51 Variable 62 Variable
52 bool flag_warn_unused_result = false 63 bool flag_warn_unused_result = false
53 64
54 Variable 65 Variable
55 int *param_values 66 int *param_values
56 67
57 ; Nonzero if we should write GIMPLE bytecode for link-time optimization. 68 ; Nonzero if we should write GIMPLE bytecode for link-time optimization.
58 Variable 69 Variable
59 int flag_generate_lto 70 int flag_generate_lto
71
72 ; Nonzero if we should write GIMPLE bytecode for offload compilation.
73 Variable
74 int flag_generate_offload = 0
60 75
61 ; True to warn about any objects definitions whose size is larger 76 ; True to warn about any objects definitions whose size is larger
62 ; than N bytes. Also want about function definitions whose returned 77 ; than N bytes. Also want about function definitions whose returned
63 ; values are larger than N bytes, where N is 'larger_than_size'. 78 ; values are larger than N bytes, where N is 'larger_than_size'.
64 Variable 79 Variable
129 ; Original value of maximum field alignment in bytes, specified via 144 ; Original value of maximum field alignment in bytes, specified via
130 ; -fpack-struct=<value>. 145 ; -fpack-struct=<value>.
131 Variable 146 Variable
132 unsigned int initial_max_fld_align = TARGET_DEFAULT_PACK_STRUCT 147 unsigned int initial_max_fld_align = TARGET_DEFAULT_PACK_STRUCT
133 148
134 Variable
135 enum vect_verbosity_levels user_vect_verbosity_level = MAX_VERBOSITY_LEVEL
136
137 ; Type of stack check. 149 ; Type of stack check.
138 Variable 150 Variable
139 enum stack_check_type flag_stack_check = NO_STACK_CHECK 151 enum stack_check_type flag_stack_check = NO_STACK_CHECK
152
153 ; True if stack usage information needs to be computed.
154 Variable
155 bool flag_stack_usage_info = false
140 156
141 ; -dA causes debug commentary information to be produced in 157 ; -dA causes debug commentary information to be produced in
142 ; the generated assembly code (to make it more readable). This option 158 ; the generated assembly code (to make it more readable). This option
143 ; is generally only of use to those who actually need to read the 159 ; is generally only of use to those who actually need to read the
144 ; generated assembly code (perhaps while debugging the compiler itself). 160 ; generated assembly code (perhaps while debugging the compiler itself).
145 ; Currently, this switch is only used by dwarf2out.c; however, it is intended 161 ; Currently, this switch is only used by dwarf2out.c; however, it is intended
146 ; to be a catchall for printing debug information in the assembler file. 162 ; to be a catchall for printing debug information in the assembler file.
147 Variable 163 Variable
148 int flag_debug_asm 164 int flag_debug_asm
149 165
166 ; How many NOP insns to place at each function entry by default
167 Variable
168 HOST_WIDE_INT function_entry_patch_area_size
169
170 ; And how far the real asm entry point is into this area
171 Variable
172 HOST_WIDE_INT function_entry_patch_area_start
173
174 ; Balance between GNAT encodings and standard DWARF to emit.
175 Variable
176 enum dwarf_gnat_encodings gnat_encodings = DWARF_GNAT_ENCODINGS_DEFAULT
177
150 ; -dP causes the rtl to be emitted as a comment in assembly. 178 ; -dP causes the rtl to be emitted as a comment in assembly.
151 Variable 179 Variable
152 int flag_dump_rtl_in_asm 180 int flag_dump_rtl_in_asm
153 181
154 ; Whether -da was passed (used only in handle_common_deferred_options). 182 ; Whether -da was passed (used only in handle_common_deferred_options).
160 Variable 188 Variable
161 int rtl_dump_and_exit 189 int rtl_dump_and_exit
162 190
163 Variable 191 Variable
164 int flag_print_asm_name 192 int flag_print_asm_name
165
166 Variable
167 enum graph_dump_types graph_dump_format = no_graph
168 193
169 ; Name of top-level original source file (what was input to cpp). 194 ; Name of top-level original source file (what was input to cpp).
170 ; This comes from the #-command at the beginning of the actual input. 195 ; This comes from the #-command at the beginning of the actual input.
171 ; If there isn't any there, then this is the cc1 input file name. 196 ; If there isn't any there, then this is the cc1 input file name.
172 Variable 197 Variable
198 223
199 ; Whether this options structure has been through finish_options 224 ; Whether this options structure has been through finish_options
200 Variable 225 Variable
201 bool flag_opts_finished 226 bool flag_opts_finished
202 227
228 ; What the sanitizer should instrument
229 Variable
230 unsigned int flag_sanitize
231
232 ; What sanitizers should recover from errors
233 Variable
234 unsigned int flag_sanitize_recover = (SANITIZE_UNDEFINED | SANITIZE_UNDEFINED_NONDEFAULT | SANITIZE_KERNEL_ADDRESS) & ~(SANITIZE_UNREACHABLE | SANITIZE_RETURN)
235
236 ; What the coverage sanitizers should instrument
237 Variable
238 unsigned int flag_sanitize_coverage
239
240 ; Flag whether a prefix has been added to dump_base_name
241 Variable
242 bool dump_base_name_prefixed = false
243
244 ; Flag whether HSA generation has been explicitely disabled
245 Variable
246 bool flag_disable_hsa = false
247
203 ### 248 ###
204 Driver 249 Driver
205 250
206 -assemble 251 -assemble
207 Driver Alias(S) 252 Driver Alias(S)
254 -force-link= 299 -force-link=
255 Driver Joined Alias(u) 300 Driver Joined Alias(u)
256 301
257 -help 302 -help
258 Common Driver Var(help_flag) 303 Common Driver Var(help_flag)
259 Display this information 304 Display this information.
260 305
261 -help= 306 -help=
262 Common Driver Report Joined 307 Common Driver Report Joined
263 --help=<class> Display descriptions of a specific class of options. <class> is one or more of optimizers, target, warnings, undocumented, params 308 --help=<class> Display descriptions of a specific class of options. <class> is one or more of optimizers, target, warnings, undocumented, params.
264 309
265 -language 310 -language
266 Driver Separate Alias(x) 311 Driver Separate Alias(x)
267 312
268 -language= 313 -language=
278 Driver Alias(no-canonical-prefixes) 323 Driver Alias(no-canonical-prefixes)
279 324
280 -no-standard-libraries 325 -no-standard-libraries
281 Driver Alias(nostdlib) 326 Driver Alias(nostdlib)
282 327
328 -no-sysroot-suffix
329 Driver Var(no_sysroot_suffix)
330
283 -no-warnings 331 -no-warnings
284 Common Alias(w) 332 Common Alias(w)
285 333
286 -optimize 334 -optimize
287 Common Alias(O) 335 Common Alias(O)
294 342
295 -pass-exit-codes 343 -pass-exit-codes
296 Driver Alias(pass-exit-codes) 344 Driver Alias(pass-exit-codes)
297 345
298 -pedantic 346 -pedantic
299 Common Alias(pedantic) 347 Common Alias(Wpedantic)
300 348
301 -pedantic-errors 349 -pedantic-errors
302 Common Alias(pedantic-errors) 350 Common Alias(pedantic-errors)
303 351
304 -pie 352 -pie
305 Common Alias(pie) 353 Driver Alias(pie)
354
355 -static-pie
356 Driver Alias(static-pie)
306 357
307 -pipe 358 -pipe
308 Driver Alias(pipe) 359 Driver Alias(pipe)
309 360
310 -prefix 361 -prefix
332 Driver Alias(print-multi-lib) 383 Driver Alias(print-multi-lib)
333 384
334 -print-multi-os-directory 385 -print-multi-os-directory
335 Driver Alias(print-multi-os-directory) 386 Driver Alias(print-multi-os-directory)
336 387
388 -print-multiarch
389 Driver Alias(print-multiarch)
390
337 -print-prog-name 391 -print-prog-name
338 Driver Separate Alias(print-prog-name=) 392 Driver Separate Alias(print-prog-name=)
339 393
340 -print-prog-name= 394 -print-prog-name=
341 Driver JoinedOrMissing Alias(print-prog-name=) 395 Driver JoinedOrMissing Alias(print-prog-name=)
354 408
355 -save-temps 409 -save-temps
356 Driver Alias(save-temps) 410 Driver Alias(save-temps)
357 411
358 -shared 412 -shared
359 Common Alias(shared) 413 Driver Alias(shared)
360 414
361 -specs 415 -specs
362 Driver Separate Alias(specs=) 416 Driver Separate Alias(specs=)
363 417
364 -specs= 418 -specs=
370 -symbolic 424 -symbolic
371 Driver Alias(symbolic) 425 Driver Alias(symbolic)
372 426
373 -target-help 427 -target-help
374 Common Driver 428 Common Driver
375 Alias for --help=target 429 Alias for --help=target.
376 430
377 -time 431 -time
378 Driver Alias(time) 432 Driver Alias(time)
379 433
380 -verbose 434 -verbose
395 fversion 449 fversion
396 Common Driver Alias(-version) 450 Common Driver Alias(-version)
397 451
398 -param 452 -param
399 Common Separate 453 Common Separate
400 --param <param>=<value> Set parameter <param> to value. See below for a complete list of parameters 454 --param <param>=<value> Set parameter <param> to value. See below for a complete list of parameters.
401 455
402 -param= 456 -param=
403 Common Joined Alias(-param) 457 Common Joined Alias(-param)
404 458
405 -sysroot 459 -sysroot
423 N 477 N
424 Driver 478 Driver
425 479
426 O 480 O
427 Common JoinedOrMissing Optimization 481 Common JoinedOrMissing Optimization
428 -O<number> Set optimization level to <number> 482 -O<number> Set optimization level to <number>.
429 483
430 Os 484 Os
431 Common Optimization 485 Common Optimization
432 Optimize for space rather than speed 486 Optimize for space rather than speed.
433 487
434 Ofast 488 Ofast
435 Common Optimization 489 Common Optimization
436 Optimize for speed disregarding exact standards compliance 490 Optimize for speed disregarding exact standards compliance.
491
492 Og
493 Common Optimization
494 Optimize for debugging experience rather than speed or size.
437 495
438 Q 496 Q
439 Driver 497 Driver
440 498
441 Qn 499 Qn
454 Driver Joined Separate 512 Driver Joined Separate
455 513
456 Tbss 514 Tbss
457 Driver Separate 515 Driver Separate
458 516
517 Tbss=
518 Driver Joined
519
459 Tdata 520 Tdata
460 Driver Separate 521 Driver Separate
461 522
523 Tdata=
524 Driver Joined
525
462 Ttext 526 Ttext
463 Driver Separate 527 Driver Separate
464 528
529 Ttext=
530 Driver Joined
531
465 W 532 W
466 Common RejectNegative Warning Alias(Wextra) 533 Common RejectNegative Warning Alias(Wextra)
467 This switch is deprecated; use -Wextra instead 534 This switch is deprecated; use -Wextra instead.
468 535
469 Wa, 536 Wa,
470 Driver JoinedOrMissing 537 Driver JoinedOrMissing RejectNegative
471 538
472 Wl, 539 Wl,
473 Driver JoinedOrMissing 540 Driver JoinedOrMissing RejectNegative
474 541
475 Wp, 542 Wp,
476 Driver JoinedOrMissing 543 Driver JoinedOrMissing RejectNegative
477 544
478 Waggregate-return 545 Waggregate-return
479 Common Var(warn_aggregate_return) Warning 546 Common Var(warn_aggregate_return) Warning
480 Warn about returning structures, unions or arrays 547 Warn about returning structures, unions or arrays.
548
549 Waggressive-loop-optimizations
550 Common Var(warn_aggressive_loop_optimizations) Init(1) Warning
551 Warn if a loop with constant number of iterations triggers undefined behavior.
481 552
482 Warray-bounds 553 Warray-bounds
483 Common Var(warn_array_bounds) Warning 554 Common Var(warn_array_bounds) Warning
484 Warn if an array is accessed out of bounds 555 Warn if an array is accessed out of bounds.
556
557 Warray-bounds=
558 Common Joined RejectNegative UInteger Var(warn_array_bounds) Warning IntegerRange(0, 2)
559 Warn if an array is accessed out of bounds.
485 560
486 Wattributes 561 Wattributes
487 Common Var(warn_attributes) Init(1) Warning 562 Common Var(warn_attributes) Init(1) Warning
488 Warn about inappropriate attribute usage 563 Warn about inappropriate attribute usage.
564
565 Wattribute-alias
566 Common Var(warn_attributes) Init(1) Warning
567 Warn about type safety and similar errors in attribute alias and related.
489 568
490 Wcast-align 569 Wcast-align
491 Common Var(warn_cast_align) Warning 570 Common Var(warn_cast_align) Warning
492 Warn about pointer casts which increase alignment 571 Warn about pointer casts which increase alignment.
572
573 Wcast-align=strict
574 Common Var(warn_cast_align,2) Warning
575 Warn about pointer casts which increase alignment.
493 576
494 Wcpp 577 Wcpp
495 Common Var(warn_cpp) Init(1) Warning 578 Common Var(warn_cpp) Init(1) Warning
496 Warn when a #warning directive is encountered 579 Warn when a #warning directive is encountered.
497 580
498 Wdeprecated-declarations 581 Wdeprecated-declarations
499 Common Var(warn_deprecated_decl) Init(1) Warning 582 Common Var(warn_deprecated_decl) Init(1) Warning
500 Warn about uses of __attribute__((deprecated)) declarations 583 Warn about uses of __attribute__((deprecated)) declarations.
501 584
502 Wdisabled-optimization 585 Wdisabled-optimization
503 Common Var(warn_disabled_optimization) Warning 586 Common Var(warn_disabled_optimization) Warning
504 Warn when an optimization pass is disabled 587 Warn when an optimization pass is disabled.
505 588
506 Werror 589 Werror
507 Common Var(warnings_are_errors) 590 Common Var(warnings_are_errors)
508 Treat all warnings as errors 591 Treat all warnings as errors.
509 592
510 Werror= 593 Werror=
511 Common Joined 594 Common Joined
512 Treat specified warning as error 595 Treat specified warning as error.
513 596
514 Wextra 597 Wextra
515 Common Var(extra_warnings) Warning 598 Common Var(extra_warnings) Warning
516 Print extra (possibly unwanted) warnings 599 Print extra (possibly unwanted) warnings.
517 600
518 Wfatal-errors 601 Wfatal-errors
519 Common Var(flag_fatal_errors) 602 Common Var(flag_fatal_errors)
520 Exit on the first error occurred 603 Exit on the first error occurred.
521 604
522 Wframe-larger-than= 605 Wframe-larger-than=
523 Common RejectNegative Joined UInteger 606 Common RejectNegative Joined UInteger Warning
524 -Wframe-larger-than=<number> Warn if a function's stack frame requires more than <number> bytes 607 -Wframe-larger-than=<number> Warn if a function's stack frame requires more than <number> bytes.
608
609 Wfree-nonheap-object
610 Common Var(warn_free_nonheap_object) Init(1) Warning
611 Warn when attempting to free a non-heap object.
612
613 Whsa
614 Common Var(warn_hsa) Init(1) Warning
615 Warn when a function cannot be expanded to HSAIL.
616
617 Wimplicit-fallthrough
618 Common Alias(Wimplicit-fallthrough=,3,0) Warning
619
620 Wimplicit-fallthrough=
621 Common Var(warn_implicit_fallthrough) RejectNegative Joined UInteger Warning IntegerRange(0, 5)
622 Warn when a switch case falls through.
525 623
526 Winline 624 Winline
527 Common Var(warn_inline) Warning 625 Common Var(warn_inline) Warning
528 Warn when an inlined function cannot be inlined 626 Warn when an inlined function cannot be inlined.
627
628 Winvalid-memory-model
629 Common Var(warn_invalid_memory_model) Init(1) Warning
630 Warn when an atomic memory model parameter is known to be outside the valid range.
529 631
530 Wlarger-than- 632 Wlarger-than-
531 Common RejectNegative Joined Warning Undocumented Alias(Wlarger-than=) 633 Common RejectNegative Joined Warning Undocumented Alias(Wlarger-than=)
532 634
533 Wlarger-than= 635 Wlarger-than=
534 Common RejectNegative Joined UInteger Warning 636 Common RejectNegative Joined UInteger Warning
535 -Wlarger-than=<number> Warn if an object is larger than <number> bytes 637 -Wlarger-than=<number> Warn if an object is larger than <number> bytes.
638
639 Wnonnull-compare
640 Var(warn_nonnull_compare) Warning
641 Warn if comparing pointer parameter with nonnull attribute with NULL.
642
643 Wnull-dereference
644 Common Var(warn_null_dereference) Warning
645 Warn if dereferencing a NULL pointer may lead to erroneous or undefined behavior.
536 646
537 Wunsafe-loop-optimizations 647 Wunsafe-loop-optimizations
538 Common Var(warn_unsafe_loop_optimizations) Warning 648 Common Var(warn_unsafe_loop_optimizations) Warning
539 Warn if the loop cannot be optimized due to nontrivial assumptions. 649 Warn if the loop cannot be optimized due to nontrivial assumptions.
540 650
541 Wmissing-noreturn 651 Wmissing-noreturn
542 Common Var(warn_missing_noreturn) Warning 652 Common Warning Alias(Wsuggest-attribute=noreturn)
543 Warn about functions which might be candidates for __attribute__((noreturn)) 653
544 654 Wodr
545 Wmudflap 655 Common Var(warn_odr_violations) Init(1) Warning
546 Common Var(warn_mudflap) Init(1) Warning 656 Warn about some C++ One Definition Rule violations during link time optimization.
547 Warn about constructs not instrumented by -fmudflap
548 657
549 Woverflow 658 Woverflow
550 Common Var(warn_overflow) Init(1) Warning 659 Common Var(warn_overflow) Init(1) Warning
551 Warn about overflow in arithmetic expressions 660 Warn about overflow in arithmetic expressions.
661
662 Wlto-type-mismatch
663 Common Var(warn_lto_type_mismatch) Init(1) Warning
664 During link time optimization warn about mismatched types of global declarations.
552 665
553 Wpacked 666 Wpacked
554 Common Var(warn_packed) Warning 667 Common Var(warn_packed) Warning
555 Warn when the packed attribute has no effect on struct layout 668 Warn when the packed attribute has no effect on struct layout.
556 669
557 Wpadded 670 Wpadded
558 Common Var(warn_padded) Warning 671 Common Var(warn_padded) Warning
559 Warn when padding is required to align structure members 672 Warn when padding is required to align structure members.
673
674 Wpedantic
675 Common Var(pedantic) Init(0) Warning
676 Issue warnings needed for strict compliance to the standard.
677
678 Wreturn-local-addr
679 Common Var(warn_return_local_addr) Init(1) Warning
680 Warn about returning a pointer/reference to a local or temporary variable.
560 681
561 Wshadow 682 Wshadow
562 Common Var(warn_shadow) Warning 683 Common Var(warn_shadow) Warning
563 Warn when one local variable shadows another 684 Warn when one variable shadows another. Same as -Wshadow=global.
685
686 Wshadow=global
687 Common Warning Alias(Wshadow)
688 Warn when one variable shadows another (globally).
689
690 Wshadow=local
691 Common Var(warn_shadow_local) Warning EnabledBy(Wshadow)
692 Warn when one local variable shadows another local variable or parameter.
693
694 Wshadow-local
695 Common Warning Undocumented Alias(Wshadow=local)
696
697 Wshadow=compatible-local
698 Common Var(warn_shadow_compatible_local) Warning EnabledBy(Wshadow=local)
699 Warn when one local variable shadows another local variable or parameter of compatible type.
700
701 Wshadow-compatible-local
702 Common Warning Undocumented Alias(Wshadow=compatible-local)
564 703
565 Wstack-protector 704 Wstack-protector
566 Common Var(warn_stack_protect) Warning 705 Common Var(warn_stack_protect) Warning
567 Warn when not issuing stack smashing protection for some reason 706 Warn when not issuing stack smashing protection for some reason.
707
708 Wstack-usage=
709 Common Joined RejectNegative UInteger Var(warn_stack_usage) Warning
710 -Wstack-usage=<number> Warn if stack usage might be larger than specified amount.
568 711
569 Wstrict-aliasing 712 Wstrict-aliasing
570 Common Warning 713 Common Warning
571 Warn about code which might break strict aliasing rules 714 Warn about code which might break strict aliasing rules.
572 715
573 Wstrict-aliasing= 716 Wstrict-aliasing=
574 Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Init(-1) Warning 717 Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Warning
575 Warn about code which might break strict aliasing rules 718 Warn about code which might break strict aliasing rules.
576 719
577 Wstrict-overflow 720 Wstrict-overflow
578 Common Warning 721 Common Warning
579 Warn about optimizations that assume that signed overflow is undefined 722 Warn about optimizations that assume that signed overflow is undefined.
580 723
581 Wstrict-overflow= 724 Wstrict-overflow=
582 Common Joined RejectNegative UInteger Var(warn_strict_overflow) Init(-1) Warning 725 Common Joined RejectNegative UInteger Var(warn_strict_overflow) Warning
583 Warn about optimizations that assume that signed overflow is undefined 726 Warn about optimizations that assume that signed overflow is undefined.
727
728 Wsuggest-attribute=cold
729 Common Var(warn_suggest_attribute_cold) Warning
730 Warn about functions which might be candidates for __attribute__((cold)).
584 731
585 Wsuggest-attribute=const 732 Wsuggest-attribute=const
586 Common Var(warn_suggest_attribute_const) Warning 733 Common Var(warn_suggest_attribute_const) Warning
587 Warn about functions which might be candidates for __attribute__((const)) 734 Warn about functions which might be candidates for __attribute__((const)).
588 735
589 Wsuggest-attribute=pure 736 Wsuggest-attribute=pure
590 Common Var(warn_suggest_attribute_pure) Warning 737 Common Var(warn_suggest_attribute_pure) Warning
591 Warn about functions which might be candidates for __attribute__((pure)) 738 Warn about functions which might be candidates for __attribute__((pure)).
592 739
593 Wsuggest-attribute=noreturn 740 Wsuggest-attribute=noreturn
594 Common Var(warn_suggest_attribute_noreturn) Warning 741 Common Var(warn_suggest_attribute_noreturn) Warning
595 Warn about functions which might be candidates for __attribute__((noreturn)) 742 Warn about functions which might be candidates for __attribute__((noreturn)).
596 743
597 Wswitch 744 Wsuggest-final-types
598 Common Var(warn_switch) Warning 745 Common Var(warn_suggest_final_types) Warning
599 Warn about enumerated switches, with no default, missing a case 746 Warn about C++ polymorphic types where adding final keyword would improve code quality.
600 747
601 Wswitch-default 748 Wsuggest-final-methods
602 Common Var(warn_switch_default) Warning 749 Common Var(warn_suggest_final_methods) Warning
603 Warn about enumerated switches missing a \"default:\" statement 750 Warn about C++ virtual methods where adding final keyword would improve code quality.
604 751
605 Wswitch-enum 752 Wswitch-unreachable
606 Common Var(warn_switch_enum) Warning 753 Common Var(warn_switch_unreachable) Warning Init(1)
607 Warn about all enumerated switches missing a specific case 754 Warn about statements between switch's controlling expression and the first
755 case.
608 756
609 Wsystem-headers 757 Wsystem-headers
610 Common Var(warn_system_headers) Warning 758 Common Var(warn_system_headers) Warning
611 Do not suppress warnings from system headers 759 Do not suppress warnings from system headers.
612 760
613 Wtrampolines 761 Wtrampolines
614 Common Var(warn_trampolines) Warning 762 Common Var(warn_trampolines) Warning
615 Warn whenever a trampoline is generated 763 Warn whenever a trampoline is generated.
616 764
617 Wtype-limits 765 Wtype-limits
618 Common Var(warn_type_limits) Init(-1) Warning 766 Common Var(warn_type_limits) Warning EnabledBy(Wextra)
619 Warn if a comparison is always true or always false due to the limited range of the data type 767 Warn if a comparison is always true or always false due to the limited range of the data type.
620 768
621 Wuninitialized 769 Wuninitialized
622 Common Var(warn_uninitialized) Init(-1) Warning 770 Common Var(warn_uninitialized) Warning EnabledBy(Wextra)
623 Warn about uninitialized automatic variables 771 Warn about uninitialized automatic variables.
772
773 Wmaybe-uninitialized
774 Common Var(warn_maybe_uninitialized) Warning EnabledBy(Wuninitialized)
775 Warn about maybe uninitialized automatic variables.
624 776
625 Wunreachable-code 777 Wunreachable-code
626 Common Ignore 778 Common Ignore Warning
627 Does nothing. Preserved for backward compatibility. 779 Does nothing. Preserved for backward compatibility.
628 780
629 Wunused 781 Wunused
630 Common Var(warn_unused) Init(0) Warning 782 Common Var(warn_unused) Init(0) Warning
631 Enable all -Wunused- warnings 783 Enable all -Wunused- warnings.
632 784
633 Wunused-but-set-parameter 785 Wunused-but-set-parameter
634 Common Var(warn_unused_but_set_parameter) Init(-1) Warning 786 Common Var(warn_unused_but_set_parameter) Warning EnabledBy(Wunused && Wextra)
635 Warn when a function parameter is only set, otherwise unused 787 Warn when a function parameter is only set, otherwise unused.
636 788
637 Wunused-but-set-variable 789 Wunused-but-set-variable
638 Common Var(warn_unused_but_set_variable) Init(-1) Warning 790 Common Var(warn_unused_but_set_variable) Warning EnabledBy(Wunused)
639 Warn when a variable is only set, otherwise unused 791 Warn when a variable is only set, otherwise unused.
640 792
641 Wunused-function 793 Wunused-function
642 Common Var(warn_unused_function) Init(-1) Warning 794 Common Var(warn_unused_function) Warning EnabledBy(Wunused)
643 Warn when a function is unused 795 Warn when a function is unused.
644 796
645 Wunused-label 797 Wunused-label
646 Common Var(warn_unused_label) Init(-1) Warning 798 Common Var(warn_unused_label) Warning EnabledBy(Wunused)
647 Warn when a label is unused 799 Warn when a label is unused.
648 800
649 Wunused-parameter 801 Wunused-parameter
650 Common Var(warn_unused_parameter) Init(-1) Warning 802 Common Var(warn_unused_parameter) Warning EnabledBy(Wunused && Wextra)
651 Warn when a function parameter is unused 803 Warn when a function parameter is unused.
652 804
653 Wunused-value 805 Wunused-value
654 Common Var(warn_unused_value) Init(-1) Warning 806 Common Var(warn_unused_value) Warning EnabledBy(Wunused)
655 Warn when an expression value is unused 807 Warn when an expression value is unused.
656 808
657 Wunused-variable 809 Wunused-variable
658 Common Var(warn_unused_variable) Init(-1) Warning 810 Common Var(warn_unused_variable) Warning EnabledBy(Wunused)
659 Warn when a variable is unused 811 Warn when a variable is unused.
660 812
661 Wcoverage-mismatch 813 Wcoverage-mismatch
662 Common Var(warn_coverage_mismatch) Init(1) Warning 814 Common Var(warn_coverage_mismatch) Init(1) Warning
663 Warn in case profiles in -fprofile-use do not match 815 Warn in case profiles in -fprofile-use do not match.
816
817 Wvector-operation-performance
818 Common Var(warn_vector_operation_performance) Warning
819 Warn when a vector operation is compiled outside the SIMD.
664 820
665 Xassembler 821 Xassembler
666 Driver Separate 822 Driver Separate
667 823
668 Xlinker 824 Xlinker
674 Z 830 Z
675 Driver 831 Driver
676 832
677 aux-info 833 aux-info
678 Common Separate Var(aux_info_file_name) 834 Common Separate Var(aux_info_file_name)
679 -aux-info <file> Emit declaration information into <file> 835 -aux-info <file> Emit declaration information into <file>.
680 836
681 aux-info= 837 aux-info=
682 Common Joined Alias(aux-info) 838 Common Joined Alias(aux-info)
683 839
684 auxbase 840 auxbase
693 c 849 c
694 Driver 850 Driver
695 851
696 d 852 d
697 Common Joined 853 Common Joined
698 -d<letters> Enable dumps from specific passes of the compiler 854 -d<letters> Enable dumps from specific passes of the compiler.
699 855
700 dumpbase 856 dumpbase
701 Common Separate Var(dump_base_name) 857 Common Separate Var(dump_base_name)
702 -dumpbase <file> Set the file basename to be used for dumps 858 -dumpbase <file> Set the file basename to be used for dumps.
703 859
704 dumpdir 860 dumpdir
705 Common Separate Var(dump_dir_name) 861 Common Separate Var(dump_dir_name)
706 -dumpdir <dir> Set the directory name to be used for dumps 862 -dumpdir <dir> Set the directory name to be used for dumps.
707 863
708 dumpmachine 864 dumpmachine
709 Driver 865 Driver
710 866
711 dumpspecs 867 dumpspecs
712 Driver 868 Driver
713 869
714 dumpversion 870 dumpversion
871 Driver
872
873 dumpfullversion
715 Driver 874 Driver
716 875
717 e 876 e
718 Driver Joined Separate 877 Driver Joined Separate
719 878
729 ; 0: The version of the ABI believed most conformant with the C++ ABI 888 ; 0: The version of the ABI believed most conformant with the C++ ABI
730 ; specification. This ABI may change as bugs are discovered and fixed. 889 ; specification. This ABI may change as bugs are discovered and fixed.
731 ; Therefore, 0 will not necessarily indicate the same ABI in different 890 ; Therefore, 0 will not necessarily indicate the same ABI in different
732 ; versions of G++. 891 ; versions of G++.
733 ; 892 ;
734 ; 1: The version of the ABI first used in G++ 3.2. 893 ; 1: The version of the ABI first used in G++ 3.2. No longer selectable.
735 ; 894 ;
736 ; 2: The version of the ABI first used in G++ 3.4 (and current default). 895 ; 2: The version of the ABI first used in G++ 3.4, and the default
896 ; until GCC 4.9.
737 ; 897 ;
738 ; 3: The version of the ABI that fixes the missing underscore 898 ; 3: The version of the ABI that fixes the missing underscore
739 ; in template non-type arguments of pointer type. 899 ; in template non-type arguments of pointer type.
740 ; 900 ;
741 ; 4: The version of the ABI that introduces unambiguous mangling of 901 ; 4: The version of the ABI that introduces unambiguous mangling of
744 ; 5: The version of the ABI that ignores attribute const/noreturn 904 ; 5: The version of the ABI that ignores attribute const/noreturn
745 ; in function pointer mangling, and corrects mangling of decltype and 905 ; in function pointer mangling, and corrects mangling of decltype and
746 ; function parameters used in other parameters and the return type. 906 ; function parameters used in other parameters and the return type.
747 ; First selectable in G++ 4.6. 907 ; First selectable in G++ 4.6.
748 ; 908 ;
909 ; 6: The version of the ABI that doesn't promote scoped enums to int and
910 ; changes the mangling of template argument packs, const/static_cast,
911 ; prefix ++ and --, and a class scope function used as a template
912 ; argument.
913 ; First selectable in G++ 4.7.
914 ;
915 ; 7: The version of the ABI that treats nullptr_t as a builtin type and
916 ; corrects the mangling of lambdas in default argument scope.
917 ; First selectable in G++ 4.8.
918 ;
919 ; 8: The version of the ABI that corrects the substitution behavior of
920 ; function types with function-cv-qualifiers.
921 ; First selectable in G++ 4.9 and default in G++ 5.
922 ;
923 ; 9: The version of the ABI that corrects the alignment of nullptr_t.
924 ; First selectable and default in G++ 5.2.
925 ;
926 ; 10: The version of the ABI that mangles attributes that affect type
927 ; identity, such as ia32 calling convention attributes (stdcall, etc.)
928 ; Default in G++ 6 (set in c_common_post_options).
929 ;
930 ; 11: The version of the ABI that corrects mangling of sizeof... expressions
931 ; and introduces new inheriting constructor handling.
932 ; Default in G++ 7.
933 ;
934 ; 12: Corrects the calling convention for classes with only deleted copy/move
935 ; constructors.
936 ; Default in G++ 8.
937 ;
749 ; Additional positive integers will be assigned as new versions of 938 ; Additional positive integers will be assigned as new versions of
750 ; the ABI become the default version of the ABI. 939 ; the ABI become the default version of the ABI.
751 fabi-version= 940 fabi-version=
752 Common Joined RejectNegative UInteger Var(flag_abi_version) Init(2) 941 Common Joined RejectNegative UInteger Var(flag_abi_version) Init(0)
942 The version of the C++ ABI in use.
943
944 faggressive-loop-optimizations
945 Common Report Var(flag_aggressive_loop_optimizations) Optimization Init(1)
946 Aggressively optimize loops using language constraints.
753 947
754 falign-functions 948 falign-functions
755 Common Report Var(align_functions,0) Optimization UInteger 949 Common Report Var(align_functions,0) Optimization UInteger
756 Align the start of functions 950 Align the start of functions.
757 951
758 falign-functions= 952 falign-functions=
759 Common RejectNegative Joined UInteger Var(align_functions) 953 Common RejectNegative Joined UInteger Var(align_functions)
760 954
955 flimit-function-alignment
956 Common Report Var(flag_limit_function_alignment) Optimization Init(0)
957
761 falign-jumps 958 falign-jumps
762 Common Report Var(align_jumps,0) Optimization UInteger 959 Common Report Var(align_jumps,0) Optimization UInteger
763 Align labels which are only reached by jumping 960 Align labels which are only reached by jumping.
764 961
765 falign-jumps= 962 falign-jumps=
766 Common RejectNegative Joined UInteger Var(align_jumps) 963 Common RejectNegative Joined UInteger Var(align_jumps)
767 964
768 falign-labels 965 falign-labels
769 Common Report Var(align_labels,0) Optimization UInteger 966 Common Report Var(align_labels,0) Optimization UInteger
770 Align all labels 967 Align all labels.
771 968
772 falign-labels= 969 falign-labels=
773 Common RejectNegative Joined UInteger Var(align_labels) 970 Common RejectNegative Joined UInteger Var(align_labels)
774 971
775 falign-loops 972 falign-loops
776 Common Report Var(align_loops,0) Optimization UInteger 973 Common Report Var(align_loops,0) Optimization UInteger
777 Align the start of loops 974 Align the start of loops.
778 975
779 falign-loops= 976 falign-loops=
780 Common RejectNegative Joined UInteger Var(align_loops) 977 Common RejectNegative Joined UInteger Var(align_loops)
781 978
782 fargument-alias 979 fargument-alias
793 990
794 fargument-noalias-anything 991 fargument-noalias-anything
795 Common Ignore 992 Common Ignore
796 Does nothing. Preserved for backward compatibility. 993 Does nothing. Preserved for backward compatibility.
797 994
995 fsanitize=
996 Common Driver Report Joined
997 Select what to sanitize.
998
999 fsanitize-coverage=
1000 Common Report Joined
1001 Select what to coverage sanitize.
1002
1003 fasan-shadow-offset=
1004 Common Joined RejectNegative Var(common_deferred_options) Defer
1005 -fasan-shadow-offset=<number> Use custom shadow memory offset.
1006
1007 fsanitize-sections=
1008 Common Joined RejectNegative Var(common_deferred_options) Defer
1009 -fsanitize-sections=<sec1,sec2,...> Sanitize global variables
1010 in user-defined sections.
1011
1012 fsanitize-recover=
1013 Common Report Joined
1014 After diagnosing undefined behavior attempt to continue execution.
1015
1016 fsanitize-recover
1017 Common Report
1018 This switch is deprecated; use -fsanitize-recover= instead.
1019
1020 fsanitize-address-use-after-scope
1021 Common Driver Report Var(flag_sanitize_address_use_after_scope) Init(0)
1022
1023 fsanitize-undefined-trap-on-error
1024 Common Driver Report Var(flag_sanitize_undefined_trap_on_error) Init(0)
1025 Use trap instead of a library function for undefined behavior sanitization.
1026
798 fasynchronous-unwind-tables 1027 fasynchronous-unwind-tables
799 Common Report Var(flag_asynchronous_unwind_tables) Optimization 1028 Common Report Var(flag_asynchronous_unwind_tables) Optimization
800 Generate unwind tables that are exact at each instruction boundary 1029 Generate unwind tables that are exact at each instruction boundary.
801 1030
802 fauto-inc-dec 1031 fauto-inc-dec
803 Common Report Var(flag_auto_inc_dec) Init(1) 1032 Common Report Var(flag_auto_inc_dec) Init(1) Optimization
804 Generate auto-inc/dec instructions 1033 Generate auto-inc/dec instructions.
1034
1035 fauto-profile
1036 Common Report Var(flag_auto_profile)
1037 Use sample profile information for call graph node weights. The default
1038 profile file is fbdata.afdo in 'pwd'.
1039
1040 fauto-profile=
1041 Common Joined RejectNegative Var(auto_profile_file)
1042 Use sample profile information for call graph node weights. The profile
1043 file is specified in the argument.
805 1044
806 ; -fcheck-bounds causes gcc to generate array bounds checks. 1045 ; -fcheck-bounds causes gcc to generate array bounds checks.
807 ; For C, C++ and ObjC: defaults off. 1046 ; For C, C++ and ObjC: defaults off.
808 ; For Java: defaults to on. 1047 ; For Java: defaults to on.
809 ; For Fortran: defaults to off. 1048 ; For Fortran: defaults to off.
810 fbounds-check 1049 fbounds-check
811 Common Report Var(flag_bounds_check) 1050 Common Report Var(flag_bounds_check)
812 Generate code to check bounds before indexing arrays 1051 Generate code to check bounds before indexing arrays.
813 1052
814 fbranch-count-reg 1053 fbranch-count-reg
815 Common Report Var(flag_branch_on_count_reg) Init(1) Optimization 1054 Common Report Var(flag_branch_on_count_reg) Optimization
816 Replace add, compare, branch with branch on count register 1055 Replace add, compare, branch with branch on count register.
817 1056
818 fbranch-probabilities 1057 fbranch-probabilities
819 Common Report Var(flag_branch_probabilities) Optimization 1058 Common Report Var(flag_branch_probabilities) Optimization
820 Use profiling information for branch probabilities 1059 Use profiling information for branch probabilities.
821 1060
822 fbranch-target-load-optimize 1061 fbranch-target-load-optimize
823 Common Report Var(flag_branch_target_load_optimize) Optimization 1062 Common Report Var(flag_branch_target_load_optimize) Optimization
824 Perform branch target load optimization before prologue / epilogue threading 1063 Perform branch target load optimization before prologue / epilogue threading.
825 1064
826 fbranch-target-load-optimize2 1065 fbranch-target-load-optimize2
827 Common Report Var(flag_branch_target_load_optimize2) Optimization 1066 Common Report Var(flag_branch_target_load_optimize2) Optimization
828 Perform branch target load optimization after prologue / epilogue threading 1067 Perform branch target load optimization after prologue / epilogue threading.
829 1068
830 fbtr-bb-exclusive 1069 fbtr-bb-exclusive
831 Common Report Var(flag_btr_bb_exclusive) Optimization 1070 Common Report Var(flag_btr_bb_exclusive) Optimization
832 Restrict target load migration not to re-use registers in any basic block 1071 Restrict target load migration not to re-use registers in any basic block.
833 1072
834 fcall-saved- 1073 fcall-saved-
835 Common Joined RejectNegative Var(common_deferred_options) Defer 1074 Common Joined RejectNegative Var(common_deferred_options) Defer
836 -fcall-saved-<register> Mark <register> as being preserved across functions 1075 -fcall-saved-<register> Mark <register> as being preserved across functions.
837 1076
838 fcall-used- 1077 fcall-used-
839 Common Joined RejectNegative Var(common_deferred_options) Defer 1078 Common Joined RejectNegative Var(common_deferred_options) Defer
840 -fcall-used-<register> Mark <register> as being corrupted by function calls 1079 -fcall-used-<register> Mark <register> as being corrupted by function calls.
841 1080
842 ; Nonzero for -fcaller-saves: allocate values in regs that need to 1081 ; Nonzero for -fcaller-saves: allocate values in regs that need to
843 ; be saved across function calls, if that produces overall better code. 1082 ; be saved across function calls, if that produces overall better code.
844 ; Optional now, so people can test it. 1083 ; Optional now, so people can test it.
845 fcaller-saves 1084 fcaller-saves
846 Common Report Var(flag_caller_saves) Optimization 1085 Common Report Var(flag_caller_saves) Optimization
847 Save registers around function calls 1086 Save registers around function calls.
848 1087
849 fcheck-data-deps 1088 fcheck-data-deps
850 Common Report Var(flag_check_data_deps) 1089 Common Report Var(flag_check_data_deps)
851 Compare the results of several data dependence analyzers. 1090 This switch is deprecated; do not use.
1091
1092 fcheck-new
1093 Common Var(flag_check_new)
1094 Check the return value of new in C++.
1095
1096 fchecking
1097 Common Var(flag_checking) Init(CHECKING_P ? ENABLE_EXTRA_CHECKING ? 2 : 1 : 0)
1098 Perform internal consistency checkings.
1099
1100 fchecking=
1101 Common Joined RejectNegative UInteger Var(flag_checking)
1102 Perform internal consistency checkings.
1103
1104 fcode-hoisting
1105 Common Report Var(flag_code_hoisting) Optimization
1106 Enable code hoisting.
852 1107
853 fcombine-stack-adjustments 1108 fcombine-stack-adjustments
854 Common Report Var(flag_combine_stack_adjustments) Optimization 1109 Common Report Var(flag_combine_stack_adjustments) Optimization
855 Looks for opportunities to reduce stack adjustments and stack references. 1110 Looks for opportunities to reduce stack adjustments and stack references.
856 1111
857 fcommon 1112 fcommon
858 Common Report Var(flag_no_common,0) Optimization 1113 Common Report Var(flag_no_common,0)
859 Do not put uninitialized globals in the common section 1114 Do not put uninitialized globals in the common section.
860 1115
861 fcompare-debug 1116 fcompare-debug
862 Driver 1117 Driver
863 ; Converted by the driver to -fcompare-debug= options. 1118 ; Converted by the driver to -fcompare-debug= options.
864 1119
865 fcompare-debug= 1120 fcompare-debug=
866 Common Driver JoinedOrMissing RejectNegative Var(flag_compare_debug_opt) 1121 Common Driver JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
867 -fcompare-debug[=<opts>] Compile with and without e.g. -gtoggle, and compare the final-insns dump 1122 -fcompare-debug[=<opts>] Compile with and without e.g. -gtoggle, and compare the final-insns dump.
868 1123
869 fcompare-debug-second 1124 fcompare-debug-second
870 Common Driver RejectNegative Var(flag_compare_debug) 1125 Common Driver RejectNegative Var(flag_compare_debug)
871 Run only the second compilation of -fcompare-debug 1126 Run only the second compilation of -fcompare-debug.
872 1127
873 fcompare-elim 1128 fcompare-elim
874 Common Report Var(flag_compare_elim_after_reload) Optimization 1129 Common Report Var(flag_compare_elim_after_reload) Optimization
875 Perform comparison elimination after register allocation has finished 1130 Perform comparison elimination after register allocation has finished.
876 1131
877 fconserve-stack 1132 fconserve-stack
878 Common Var(flag_conserve_stack) Optimization 1133 Common Var(flag_conserve_stack) Optimization
879 Do not perform optimizations increasing noticeably stack usage 1134 Do not perform optimizations increasing noticeably stack usage.
880 1135
881 fcprop-registers 1136 fcprop-registers
882 Common Report Var(flag_cprop_registers) Optimization 1137 Common Report Var(flag_cprop_registers) Optimization
883 Perform a register copy-propagation optimization pass 1138 Perform a register copy-propagation optimization pass.
884 1139
885 fcrossjumping 1140 fcrossjumping
886 Common Report Var(flag_crossjumping) Optimization 1141 Common Report Var(flag_crossjumping) Optimization
887 Perform cross-jumping optimization 1142 Perform cross-jumping optimization.
888 1143
889 fcse-follow-jumps 1144 fcse-follow-jumps
890 Common Report Var(flag_cse_follow_jumps) Optimization 1145 Common Report Var(flag_cse_follow_jumps) Optimization
891 When running CSE, follow jumps to their targets 1146 When running CSE, follow jumps to their targets.
892 1147
893 fcse-skip-blocks 1148 fcse-skip-blocks
894 Common Ignore 1149 Common Ignore
895 Does nothing. Preserved for backward compatibility. 1150 Does nothing. Preserved for backward compatibility.
896 1151
897 fcx-limited-range 1152 fcx-limited-range
898 Common Report Var(flag_cx_limited_range) Optimization SetByCombined 1153 Common Report Var(flag_cx_limited_range) Optimization SetByCombined
899 Omit range reduction step when performing complex division 1154 Omit range reduction step when performing complex division.
900 1155
901 fcx-fortran-rules 1156 fcx-fortran-rules
902 Common Report Var(flag_cx_fortran_rules) Optimization 1157 Common Report Var(flag_cx_fortran_rules) Optimization
903 Complex multiplication and division follow Fortran rules 1158 Complex multiplication and division follow Fortran rules.
904 1159
905 fdata-sections 1160 fdata-sections
906 Common Report Var(flag_data_sections) Optimization 1161 Common Report Var(flag_data_sections)
907 Place data items into their own section 1162 Place data items into their own section.
908 1163
909 fdbg-cnt-list 1164 fdbg-cnt-list
910 Common Report Var(common_deferred_options) Defer 1165 Common Report Var(common_deferred_options) Defer
911 List all available debugging counters with their limits and counts. 1166 List all available debugging counters with their limits and counts.
912 1167
913 fdbg-cnt= 1168 fdbg-cnt=
914 Common RejectNegative Joined Var(common_deferred_options) Defer 1169 Common RejectNegative Joined Var(common_deferred_options) Defer
915 -fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...] Set the debug counter limit. 1170 -fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...] Set the debug counter limit.
916 1171
917 fdebug-prefix-map= 1172 fdebug-prefix-map=
918 Common Joined RejectNegative Var(common_deferred_options) Defer 1173 Common Joined RejectNegative Var(common_deferred_options) Defer
919 Map one directory name to another in debug information 1174 Map one directory name to another in debug information.
1175
1176 fdebug-types-section
1177 Common Report Var(flag_debug_types_section) Init(0)
1178 Output .debug_types section when using DWARF v4 debuginfo.
920 1179
921 ; Nonzero for -fdefer-pop: don't pop args after each function call 1180 ; Nonzero for -fdefer-pop: don't pop args after each function call
922 ; instead save them up to pop many calls' args with one insns. 1181 ; instead save them up to pop many calls' args with one insns.
923 fdefer-pop 1182 fdefer-pop
924 Common Report Var(flag_defer_pop) Optimization 1183 Common Report Var(flag_defer_pop) Optimization
925 Defer popping functions args from stack until later 1184 Defer popping functions args from stack until later.
926 1185
927 fdelayed-branch 1186 fdelayed-branch
928 Common Report Var(flag_delayed_branch) Optimization 1187 Common Report Var(flag_delayed_branch) Optimization
929 Attempt to fill delay slots of branch instructions 1188 Attempt to fill delay slots of branch instructions.
1189
1190 fdelete-dead-exceptions
1191 Common Report Var(flag_delete_dead_exceptions) Init(0) Optimization
1192 Delete dead instructions that may throw exceptions.
930 1193
931 fdelete-null-pointer-checks 1194 fdelete-null-pointer-checks
932 Common Report Var(flag_delete_null_pointer_checks) Init(1) Optimization 1195 Common Report Var(flag_delete_null_pointer_checks) Init(-1) Optimization
933 Delete useless null pointer checks 1196 Delete useless null pointer checks.
1197
1198 fdevirtualize-at-ltrans
1199 Common Report Var(flag_ltrans_devirtualize)
1200 Stream extra data to support more aggressive devirtualization in LTO local transformation mode.
1201
1202 fdevirtualize-speculatively
1203 Common Report Var(flag_devirtualize_speculatively) Optimization
1204 Perform speculative devirtualization.
934 1205
935 fdevirtualize 1206 fdevirtualize
936 Common Report Var(flag_devirtualize) Optimization 1207 Common Report Var(flag_devirtualize) Optimization
937 Try to convert virtual calls to direct ones. 1208 Try to convert virtual calls to direct ones.
938 1209
939 fdiagnostics-show-location= 1210 fdiagnostics-show-location=
940 Common Joined RejectNegative Enum(diagnostic_prefixing_rule) 1211 Common Joined RejectNegative Enum(diagnostic_prefixing_rule)
941 -fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics 1212 -fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics.
942 1213
943 ; Required for these enum values. 1214 ; Required for these enum values.
944 SourceInclude 1215 SourceInclude
945 pretty-print.h 1216 pretty-print.h
946 1217
951 Enum(diagnostic_prefixing_rule) String(once) Value(DIAGNOSTICS_SHOW_PREFIX_ONCE) 1222 Enum(diagnostic_prefixing_rule) String(once) Value(DIAGNOSTICS_SHOW_PREFIX_ONCE)
952 1223
953 EnumValue 1224 EnumValue
954 Enum(diagnostic_prefixing_rule) String(every-line) Value(DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE) 1225 Enum(diagnostic_prefixing_rule) String(every-line) Value(DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE)
955 1226
1227 fdiagnostics-show-caret
1228 Common Var(flag_diagnostics_show_caret) Init(1)
1229 Show the source line with a caret indicating the column.
1230
1231 fdiagnostics-color
1232 Common Alias(fdiagnostics-color=,always,never)
1233 ;
1234
1235 fdiagnostics-color=
1236 Driver Common Joined RejectNegative Var(flag_diagnostics_show_color) Enum(diagnostic_color_rule) Init(DIAGNOSTICS_COLOR_NO)
1237 -fdiagnostics-color=[never|always|auto] Colorize diagnostics.
1238
1239 ; Required for these enum values.
1240 SourceInclude
1241 diagnostic-color.h
1242
1243 Enum
1244 Name(diagnostic_color_rule) Type(int)
1245
1246 EnumValue
1247 Enum(diagnostic_color_rule) String(never) Value(DIAGNOSTICS_COLOR_NO)
1248
1249 EnumValue
1250 Enum(diagnostic_color_rule) String(always) Value(DIAGNOSTICS_COLOR_YES)
1251
1252 EnumValue
1253 Enum(diagnostic_color_rule) String(auto) Value(DIAGNOSTICS_COLOR_AUTO)
1254
1255 fdiagnostics-parseable-fixits
1256 Common Var(flag_diagnostics_parseable_fixits)
1257 Print fix-it hints in machine-readable form.
1258
1259 fdiagnostics-generate-patch
1260 Common Var(flag_diagnostics_generate_patch)
1261 Print fix-it hints to stderr in unified diff format.
1262
956 fdiagnostics-show-option 1263 fdiagnostics-show-option
957 Common Var(flag_diagnostics_show_option) Init(1) 1264 Common Var(flag_diagnostics_show_option) Init(1)
958 Amend appropriate diagnostic messages with the command line option that controls them 1265 Amend appropriate diagnostic messages with the command line option that controls them.
1266
1267 fdisable-
1268 Common Joined RejectNegative Var(common_deferred_options) Defer
1269 -fdisable-[tree|rtl|ipa]-<pass>=range1+range2 disables an optimization pass.
1270
1271 fenable-
1272 Common Joined RejectNegative Var(common_deferred_options) Defer
1273 -fenable-[tree|rtl|ipa]-<pass>=range1+range2 enables an optimization pass.
959 1274
960 fdump- 1275 fdump-
961 Common Joined RejectNegative Var(common_deferred_options) Defer 1276 Common Joined RejectNegative Var(common_deferred_options) Defer
962 -fdump-<type> Dump various compiler internals to a file 1277 -fdump-<type> Dump various compiler internals to a file.
963 1278
964 fdump-final-insns 1279 fdump-final-insns
965 Driver RejectNegative 1280 Driver RejectNegative
966 1281
967 fdump-final-insns= 1282 fdump-final-insns=
968 Common RejectNegative Joined Var(flag_dump_final_insns) 1283 Common RejectNegative Joined Var(flag_dump_final_insns)
969 -fdump-final-insns=filename Dump to filename the insns at the end of translation 1284 -fdump-final-insns=filename Dump to filename the insns at the end of translation.
970 1285
971 fdump-go-spec= 1286 fdump-go-spec=
972 Common RejectNegative Joined Var(flag_dump_go_spec) 1287 Common RejectNegative Joined Var(flag_dump_go_spec)
973 -fdump-go-spec=filename Write all declarations to file as Go code 1288 -fdump-go-spec=filename Write all declarations to file as Go code.
974 1289
975 fdump-noaddr 1290 fdump-noaddr
976 Common Report Var(flag_dump_noaddr) 1291 Common Report Var(flag_dump_noaddr)
977 Suppress output of addresses in debugging dumps 1292 Suppress output of addresses in debugging dumps.
1293
1294 freport-bug
1295 Common Driver Var(flag_report_bug)
1296 Collect and dump debug information into temporary file if ICE in C/C++
1297 compiler occurred.
1298
1299 fdump-internal-locations
1300 Common Var(flag_dump_locations) Init(0)
1301 Dump detailed information on GCC's internal representation of source code locations.
1302
1303 fdump-passes
1304 Common Var(flag_dump_passes) Init(0)
1305 Dump optimization passes.
978 1306
979 fdump-unnumbered 1307 fdump-unnumbered
980 Common Report Var(flag_dump_unnumbered) 1308 Common Report Var(flag_dump_unnumbered)
981 Suppress output of instruction numbers, line number notes and addresses in debugging dumps 1309 Suppress output of instruction numbers, line number notes and addresses in debugging dumps.
982 1310
983 fdump-unnumbered-links 1311 fdump-unnumbered-links
984 Common Report Var(flag_dump_unnumbered_links) 1312 Common Report Var(flag_dump_unnumbered_links)
985 Suppress output of previous and next insn numbers in debugging dumps 1313 Suppress output of previous and next insn numbers in debugging dumps.
986 1314
987 fdwarf2-cfi-asm 1315 fdwarf2-cfi-asm
988 Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE) 1316 Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
989 Enable CFI tables via GAS assembler directives. 1317 Enable CFI tables via GAS assembler directives.
990 1318
991 fearly-inlining 1319 fearly-inlining
992 Common Report Var(flag_early_inlining) Init(1) Optimization 1320 Common Report Var(flag_early_inlining) Init(1) Optimization
993 Perform early inlining 1321 Perform early inlining.
994 1322
995 feliminate-dwarf2-dups 1323 feliminate-dwarf2-dups
996 Common Report Var(flag_eliminate_dwarf2_dups) 1324 Common Ignore
997 Perform DWARF2 duplicate elimination 1325 Does nothing. Preserved for backward compatibility.
998 1326
999 fipa-sra 1327 fipa-sra
1000 Common Report Var(flag_ipa_sra) Init(0) Optimization 1328 Common Report Var(flag_ipa_sra) Init(0) Optimization
1001 Perform interprocedural reduction of aggregates 1329 Perform interprocedural reduction of aggregates.
1002 1330
1003 feliminate-unused-debug-symbols 1331 feliminate-unused-debug-symbols
1004 Common Report Var(flag_debug_only_used_symbols) 1332 Common Report Var(flag_debug_only_used_symbols)
1005 Perform unused type elimination in debug info 1333 Perform unused symbol elimination in debug info.
1006 1334
1007 feliminate-unused-debug-types 1335 feliminate-unused-debug-types
1008 Common Report Var(flag_eliminate_unused_debug_types) Init(1) 1336 Common Report Var(flag_eliminate_unused_debug_types) Init(1)
1009 Perform unused type elimination in debug info 1337 Perform unused type elimination in debug info.
1010 1338
1011 femit-class-debug-always 1339 femit-class-debug-always
1012 Common Report Var(flag_emit_class_debug_always) Init(0) 1340 Common Report Var(flag_emit_class_debug_always) Init(0)
1013 Do not suppress C++ class debug information. 1341 Do not suppress C++ class debug information.
1014 1342
1015 fenable-icf-debug
1016 Common Report Var(flag_enable_icf_debug)
1017 Generate debug information to support Identical Code Folding (ICF)
1018
1019 fexceptions 1343 fexceptions
1020 Common Report Var(flag_exceptions) Optimization 1344 Common Report Var(flag_exceptions) Optimization
1021 Enable exception handling 1345 Enable exception handling.
1022 1346
1023 fexpensive-optimizations 1347 fexpensive-optimizations
1024 Common Report Var(flag_expensive_optimizations) Optimization 1348 Common Report Var(flag_expensive_optimizations) Optimization
1025 Perform a number of minor, expensive optimizations 1349 Perform a number of minor, expensive optimizations.
1026 1350
1027 fexcess-precision= 1351 fexcess-precision=
1028 Common Joined RejectNegative Enum(excess_precision) Var(flag_excess_precision_cmdline) Init(EXCESS_PRECISION_DEFAULT) 1352 Common Joined RejectNegative Enum(excess_precision) Var(flag_excess_precision_cmdline) Init(EXCESS_PRECISION_DEFAULT) SetByCombined
1029 -fexcess-precision=[fast|standard] Specify handling of excess floating-point precision 1353 -fexcess-precision=[fast|standard] Specify handling of excess floating-point precision.
1030 1354
1031 Enum 1355 Enum
1032 Name(excess_precision) Type(enum excess_precision) UnknownError(unknown excess precision style %qs) 1356 Name(excess_precision) Type(enum excess_precision) UnknownError(unknown excess precision style %qs)
1033 1357
1034 EnumValue 1358 EnumValue
1035 Enum(excess_precision) String(fast) Value(EXCESS_PRECISION_FAST) 1359 Enum(excess_precision) String(fast) Value(EXCESS_PRECISION_FAST)
1036 1360
1037 EnumValue 1361 EnumValue
1038 Enum(excess_precision) String(standard) Value(EXCESS_PRECISION_STANDARD) 1362 Enum(excess_precision) String(standard) Value(EXCESS_PRECISION_STANDARD)
1039 1363
1364 ; Whether we permit the extended set of values for FLT_EVAL_METHOD
1365 ; introduced in ISO/IEC TS 18661-3, or limit ourselves to those in C99/C11.
1366 fpermitted-flt-eval-methods=
1367 Common Joined RejectNegative Enum(permitted_flt_eval_methods) Var(flag_permitted_flt_eval_methods) Init(PERMITTED_FLT_EVAL_METHODS_DEFAULT)
1368 -fpermitted-flt-eval-methods=[c11|ts-18661] Specify which values of FLT_EVAL_METHOD are permitted.
1369
1370 Enum
1371 Name(permitted_flt_eval_methods) Type(enum permitted_flt_eval_methods) UnknownError(unknown specification for the set of FLT_EVAL_METHOD values to permit %qs)
1372
1373 EnumValue
1374 Enum(permitted_flt_eval_methods) String(c11) Value(PERMITTED_FLT_EVAL_METHODS_C11)
1375
1376 EnumValue
1377 Enum(permitted_flt_eval_methods) String(ts-18661-3) Value(PERMITTED_FLT_EVAL_METHODS_TS_18661)
1378
1040 ffast-math 1379 ffast-math
1041 Common 1380 Common Optimization
1381
1382 ffat-lto-objects
1383 Common Var(flag_fat_lto_objects)
1384 Output lto objects containing both the intermediate language and binary output.
1042 1385
1043 ffinite-math-only 1386 ffinite-math-only
1044 Common Report Var(flag_finite_math_only) Optimization SetByCombined 1387 Common Report Var(flag_finite_math_only) Optimization SetByCombined
1045 Assume no NaNs or infinities are generated 1388 Assume no NaNs or infinities are generated.
1046 1389
1047 ffixed- 1390 ffixed-
1048 Common Joined RejectNegative Var(common_deferred_options) Defer 1391 Common Joined RejectNegative Var(common_deferred_options) Defer
1049 -ffixed-<register> Mark <register> as being unavailable to the compiler 1392 -ffixed-<register> Mark <register> as being unavailable to the compiler.
1050 1393
1051 ffloat-store 1394 ffloat-store
1052 Common Report Var(flag_float_store) Optimization 1395 Common Report Var(flag_float_store) Optimization
1053 Don't allocate floats and doubles in extended-precision registers 1396 Don't allocate floats and doubles in extended-precision registers.
1054 1397
1055 fforce-addr 1398 fforce-addr
1056 Common Ignore 1399 Common Ignore
1057 Does nothing. Preserved for backward compatibility. 1400 Does nothing. Preserved for backward compatibility.
1058 1401
1059 fforward-propagate 1402 fforward-propagate
1060 Common Report Var(flag_forward_propagate) Optimization 1403 Common Report Var(flag_forward_propagate) Optimization
1061 Perform a forward propagation pass on RTL 1404 Perform a forward propagation pass on RTL.
1062 1405
1063 ffp-contract= 1406 ffp-contract=
1064 Common Joined RejectNegative Enum(fp_contract_mode) Var(flag_fp_contract_mode) Init(FP_CONTRACT_FAST) 1407 Common Joined RejectNegative Enum(fp_contract_mode) Var(flag_fp_contract_mode) Init(FP_CONTRACT_FAST) Optimization
1065 -ffp-contract=[off|on|fast] Perform floating-point expression contraction. 1408 -ffp-contract=[off|on|fast] Perform floating-point expression contraction.
1066 1409
1067 Enum 1410 Enum
1068 Name(fp_contract_mode) Type(enum fp_contract_mode) UnknownError(unknown floating point contraction style %qs) 1411 Name(fp_contract_mode) Type(enum fp_contract_mode) UnknownError(unknown floating point contraction style %qs)
1069 1412
1070 EnumValue 1413 EnumValue
1074 EnumValue 1417 EnumValue
1075 Enum(fp_contract_mode) String(on) Value(FP_CONTRACT_OFF) 1418 Enum(fp_contract_mode) String(on) Value(FP_CONTRACT_OFF)
1076 1419
1077 EnumValue 1420 EnumValue
1078 Enum(fp_contract_mode) String(fast) Value(FP_CONTRACT_FAST) 1421 Enum(fp_contract_mode) String(fast) Value(FP_CONTRACT_FAST)
1422
1423 ffp-int-builtin-inexact
1424 Common Report Var(flag_fp_int_builtin_inexact) Init(1) Optimization
1425 Allow built-in functions ceil, floor, round, trunc to raise \"inexact\" exceptions.
1079 1426
1080 ; Nonzero means don't put addresses of constant functions in registers. 1427 ; Nonzero means don't put addresses of constant functions in registers.
1081 ; Used for compiling the Unix kernel, where strange substitutions are 1428 ; Used for compiling the Unix kernel, where strange substitutions are
1082 ; done on the assembly output. 1429 ; done on the assembly output.
1083 ffunction-cse 1430 ffunction-cse
1084 Common Report Var(flag_no_function_cse,0) 1431 Common Report Var(flag_no_function_cse,0) Optimization
1085 Allow function addresses to be held in registers 1432 Allow function addresses to be held in registers.
1086 1433
1087 ffunction-sections 1434 ffunction-sections
1088 Common Report Var(flag_function_sections) 1435 Common Report Var(flag_function_sections)
1089 Place each function into its own section 1436 Place each function into its own section.
1090 1437
1091 fgcse 1438 fgcse
1092 Common Report Var(flag_gcse) Optimization 1439 Common Report Var(flag_gcse) Optimization
1093 Perform global common subexpression elimination 1440 Perform global common subexpression elimination.
1094 1441
1095 fgcse-lm 1442 fgcse-lm
1096 Common Report Var(flag_gcse_lm) Init(1) Optimization 1443 Common Report Var(flag_gcse_lm) Init(1) Optimization
1097 Perform enhanced load motion during global common subexpression elimination 1444 Perform enhanced load motion during global common subexpression elimination.
1098 1445
1099 fgcse-sm 1446 fgcse-sm
1100 Common Report Var(flag_gcse_sm) Init(0) Optimization 1447 Common Report Var(flag_gcse_sm) Init(0) Optimization
1101 Perform store motion after global common subexpression elimination 1448 Perform store motion after global common subexpression elimination.
1102 1449
1103 fgcse-las 1450 fgcse-las
1104 Common Report Var(flag_gcse_las) Init(0) Optimization 1451 Common Report Var(flag_gcse_las) Init(0) Optimization
1105 Perform redundant load after store elimination in global common subexpression 1452 Perform redundant load after store elimination in global common subexpression
1106 elimination 1453 elimination.
1107 1454
1108 fgcse-after-reload 1455 fgcse-after-reload
1109 Common Report Var(flag_gcse_after_reload) Optimization 1456 Common Report Var(flag_gcse_after_reload) Optimization
1110 Perform global common subexpression elimination after register allocation 1457 Perform global common subexpression elimination after register allocation has
1111 has finished 1458 finished.
1459
1460 Enum
1461 Name(dwarf_gnat_encodings) Type(int)
1462
1463 EnumValue
1464 Enum(dwarf_gnat_encodings) String(all) Value(DWARF_GNAT_ENCODINGS_ALL)
1465
1466 EnumValue
1467 Enum(dwarf_gnat_encodings) String(gdb) Value(DWARF_GNAT_ENCODINGS_GDB)
1468
1469 EnumValue
1470 Enum(dwarf_gnat_encodings) String(minimal) Value(DWARF_GNAT_ENCODINGS_MINIMAL)
1471
1472 fgnat-encodings=
1473 Common Enum(dwarf_gnat_encodings) Joined RejectNegative Report Undocumented Var(gnat_encodings)
1474 -fgnat-encodings=[all|gdb|minimal] Select the balance between GNAT encodings and standard DWARF emitted in the debug information
1112 1475
1113 ; This option is not documented yet as its semantics will change. 1476 ; This option is not documented yet as its semantics will change.
1114 fgraphite 1477 fgraphite
1115 Common Report Var(flag_graphite) 1478 Common Report Var(flag_graphite) Optimization
1116 Enable in and out of Graphite representation 1479 Enable in and out of Graphite representation.
1117 1480
1118 fgraphite-identity 1481 fgraphite-identity
1119 Common Report Var(flag_graphite_identity) Optimization 1482 Common Report Var(flag_graphite_identity) Optimization
1120 Enable Graphite Identity transformation 1483 Enable Graphite Identity transformation.
1484
1485 fhoist-adjacent-loads
1486 Common Report Var(flag_hoist_adjacent_loads) Optimization
1487 Enable hoisting adjacent loads to encourage generating conditional move
1488 instructions.
1489
1490 fkeep-gc-roots-live
1491 Common Undocumented Report Var(flag_keep_gc_roots_live) Optimization
1492 ; Always keep a pointer to a live memory block
1121 1493
1122 floop-parallelize-all 1494 floop-parallelize-all
1123 Common Report Var(flag_loop_parallelize_all) Optimization 1495 Common Report Var(flag_loop_parallelize_all) Optimization
1124 Mark all loops as parallel 1496 Mark all loops as parallel.
1125 1497
1126 floop-strip-mine 1498 floop-strip-mine
1127 Common Report Var(flag_loop_strip_mine) Optimization 1499 Common Alias(floop-nest-optimize)
1128 Enable Loop Strip Mining transformation 1500 Enable loop nest transforms. Same as -floop-nest-optimize.
1129 1501
1130 floop-interchange 1502 floop-interchange
1131 Common Report Var(flag_loop_interchange) Optimization 1503 Common Alias(floop-nest-optimize)
1132 Enable Loop Interchange transformation 1504 Enable loop nest transforms. Same as -floop-nest-optimize.
1133 1505
1134 floop-block 1506 floop-block
1135 Common Report Var(flag_loop_block) Optimization 1507 Common Alias(floop-nest-optimize)
1136 Enable Loop Blocking transformation 1508 Enable loop nest transforms. Same as -floop-nest-optimize.
1509
1510 floop-unroll-and-jam
1511 Common Alias(floop-nest-optimize)
1512 Enable loop nest transforms. Same as -floop-nest-optimize.
1513
1514 fgnu-tm
1515 Common Report Var(flag_tm)
1516 Enable support for GNU transactional memory.
1517
1518 fgnu-unique
1519 Common Report Var(flag_gnu_unique) Init(1)
1520 Use STB_GNU_UNIQUE if supported by the assembler.
1137 1521
1138 floop-flatten 1522 floop-flatten
1139 Common Report Var(flag_loop_flatten) Optimization 1523 Common Ignore
1140 Enable Loop Flattening transformation 1524 Does nothing. Preserved for backward compatibility.
1525
1526 floop-nest-optimize
1527 Common Report Var(flag_loop_nest_optimize) Optimization
1528 Enable the loop nest optimizer.
1141 1529
1142 fstrict-volatile-bitfields 1530 fstrict-volatile-bitfields
1143 Common Report Var(flag_strict_volatile_bitfields) Init(-1) 1531 Common Report Var(flag_strict_volatile_bitfields) Init(-1) Optimization
1144 Force bitfield accesses to match their type width 1532 Force bitfield accesses to match their type width.
1533
1534 fstore-merging
1535 Common Report Var(flag_store_merging) Optimization
1536 Merge adjacent stores.
1145 1537
1146 fguess-branch-probability 1538 fguess-branch-probability
1147 Common Report Var(flag_guess_branch_prob) Optimization 1539 Common Report Var(flag_guess_branch_prob) Optimization
1148 Enable guessing of branch probabilities 1540 Enable guessing of branch probabilities.
1149 1541
1150 ; Nonzero means ignore `#ident' directives. 0 means handle them. 1542 ; Nonzero means ignore `#ident' directives. 0 means handle them.
1151 ; Generate position-independent code for executables if possible 1543 ; Generate position-independent code for executables if possible
1152 ; On SVR4 targets, it also controls whether or not to emit a 1544 ; On SVR4 targets, it also controls whether or not to emit a
1153 ; string identifying the compiler. 1545 ; string identifying the compiler.
1154 fident 1546 fident
1155 Common Report Var(flag_no_ident,0) 1547 Common Report Var(flag_no_ident,0)
1156 Process #ident directives 1548 Process #ident directives.
1157 1549
1158 fif-conversion 1550 fif-conversion
1159 Common Report Var(flag_if_conversion) Optimization 1551 Common Report Var(flag_if_conversion) Optimization
1160 Perform conversion of conditional jumps to branchless equivalents 1552 Perform conversion of conditional jumps to branchless equivalents.
1161 1553
1162 fif-conversion2 1554 fif-conversion2
1163 Common Report Var(flag_if_conversion2) Optimization 1555 Common Report Var(flag_if_conversion2) Optimization
1164 Perform conversion of conditional jumps to conditional execution 1556 Perform conversion of conditional jumps to conditional execution.
1557
1558 fstack-reuse=
1559 Common Joined RejectNegative Enum(stack_reuse_level) Var(flag_stack_reuse) Init(SR_ALL) Optimization
1560 -fstack-reuse=[all|named_vars|none] Set stack reuse level for local variables.
1561
1562 Enum
1563 Name(stack_reuse_level) Type(enum stack_reuse_level) UnknownError(unknown Stack Reuse Level %qs)
1564
1565 EnumValue
1566 Enum(stack_reuse_level) String(all) Value(SR_ALL)
1567
1568 EnumValue
1569 Enum(stack_reuse_level) String(named_vars) Value(SR_NAMED_VARS)
1570
1571 EnumValue
1572 Enum(stack_reuse_level) String(none) Value(SR_NONE)
1165 1573
1166 ftree-loop-if-convert 1574 ftree-loop-if-convert
1167 Common Report Var(flag_tree_loop_if_convert) Init(-1) Optimization 1575 Common Report Var(flag_tree_loop_if_convert) Init(-1) Optimization
1168 Convert conditional jumps in innermost loops to branchless equivalents 1576 Convert conditional jumps in innermost loops to branchless equivalents.
1169 1577
1170 ftree-loop-if-convert-stores 1578 ftree-loop-if-convert-stores
1171 Common Report Var(flag_tree_loop_if_convert_stores) Optimization 1579 Common Ignore
1172 Also if-convert conditional jumps containing memory writes 1580 Does nothing. Preserved for backward compatibility.
1173 1581
1174 ; -finhibit-size-directive inhibits output of .size for ELF. 1582 ; -finhibit-size-directive inhibits output of .size for ELF.
1175 ; This is used only for compiling crtstuff.c, 1583 ; This is used only for compiling crtstuff.c,
1176 ; and it may be extended to other effects 1584 ; and it may be extended to other effects
1177 ; needed for crtstuff.c on other systems. 1585 ; needed for crtstuff.c on other systems.
1178 finhibit-size-directive 1586 finhibit-size-directive
1179 Common Report Var(flag_inhibit_size_directive) 1587 Common Report Var(flag_inhibit_size_directive)
1180 Do not generate .size directives 1588 Do not generate .size directives.
1181 1589
1182 findirect-inlining 1590 findirect-inlining
1183 Common Report Var(flag_indirect_inlining) 1591 Common Report Var(flag_indirect_inlining) Optimization
1184 Perform indirect inlining 1592 Perform indirect inlining.
1185 1593
1186 ; Nonzero means that functions declared `inline' will be treated 1594 ; General flag to enable inlining. Specifying -fno-inline will disable
1187 ; as `static'. Prevents generation of zillions of copies of unused 1595 ; all inlining apart from always-inline functions.
1188 ; static inline functions; instead, `inlines' are written out
1189 ; only when actually used. Used in conjunction with -g. Also
1190 ; does the right thing with #pragma interface.
1191 finline 1596 finline
1192 Common Report Var(flag_no_inline,0) Init(0) 1597 Common Report Var(flag_no_inline,0) Init(0) Optimization
1193 Pay attention to the \"inline\" keyword 1598 Enable inlining of function declared \"inline\", disabling disables all inlining.
1194 1599
1195 finline-small-functions 1600 finline-small-functions
1196 Common Report Var(flag_inline_small_functions) Optimization 1601 Common Report Var(flag_inline_small_functions) Optimization
1197 Integrate simple functions into their callers when code size is known to not growth 1602 Integrate functions into their callers when code size is known not to grow.
1198 1603
1199 finline-functions 1604 finline-functions
1200 Common Report Var(flag_inline_functions) Optimization 1605 Common Report Var(flag_inline_functions) Optimization
1201 Integrate simple functions into their callers 1606 Integrate functions not declared \"inline\" into their callers when profitable.
1202 1607
1203 finline-functions-called-once 1608 finline-functions-called-once
1204 Common Report Var(flag_inline_functions_called_once) Init(1) Optimization 1609 Common Report Var(flag_inline_functions_called_once) Optimization
1205 Integrate functions called once into their callers 1610 Integrate functions only required by their single caller.
1206 1611
1207 finline-limit- 1612 finline-limit-
1208 Common RejectNegative Joined Alias(finline-limit=) 1613 Common RejectNegative Joined Alias(finline-limit=)
1209 1614
1210 finline-limit= 1615 finline-limit=
1211 Common RejectNegative Joined UInteger 1616 Common RejectNegative Joined UInteger
1212 -finline-limit=<number> Limit the size of inlined functions to <number> 1617 -finline-limit=<number> Limit the size of inlined functions to <number>.
1618
1619 finline-atomics
1620 Common Report Var(flag_inline_atomics) Init(1) Optimization
1621 Inline __atomic operations when a lock free instruction sequence is available.
1622
1623 fcf-protection
1624 Common RejectNegative Alias(fcf-protection=,full)
1625
1626 fcf-protection=
1627 Common Report Joined RejectNegative Enum(cf_protection_level) Var(flag_cf_protection) Init(CF_NONE)
1628 -fcf-protection=[full|branch|return|none] Instrument functions with checks to verify jump/call/return control-flow transfer
1629 instructions have valid targets.
1630
1631 Enum
1632 Name(cf_protection_level) Type(enum cf_protection_level) UnknownError(unknown Cotrol-Flow Protection Level %qs)
1633
1634 EnumValue
1635 Enum(cf_protection_level) String(full) Value(CF_FULL)
1636
1637 EnumValue
1638 Enum(cf_protection_level) String(branch) Value(CF_BRANCH)
1639
1640 EnumValue
1641 Enum(cf_protection_level) String(return) Value(CF_RETURN)
1642
1643 EnumValue
1644 Enum(cf_protection_level) String(none) Value(CF_NONE)
1213 1645
1214 finstrument-functions 1646 finstrument-functions
1215 Common Report Var(flag_instrument_function_entry_exit) 1647 Common Report Var(flag_instrument_function_entry_exit)
1216 Instrument function entry and exit with profiling calls 1648 Instrument function entry and exit with profiling calls.
1217 1649
1218 finstrument-functions-exclude-function-list= 1650 finstrument-functions-exclude-function-list=
1219 Common RejectNegative Joined 1651 Common RejectNegative Joined
1220 -finstrument-functions-exclude-function-list=name,... Do not instrument listed functions 1652 -finstrument-functions-exclude-function-list=name,... Do not instrument listed functions.
1221 1653
1222 finstrument-functions-exclude-file-list= 1654 finstrument-functions-exclude-file-list=
1223 Common RejectNegative Joined 1655 Common RejectNegative Joined
1224 -finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files 1656 -finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files.
1225 1657
1226 fipa-cp 1658 fipa-cp
1227 Common Report Var(flag_ipa_cp) Optimization 1659 Common Report Var(flag_ipa_cp) Optimization
1228 Perform Interprocedural constant propagation 1660 Perform interprocedural constant propagation.
1229 1661
1230 fipa-cp-clone 1662 fipa-cp-clone
1231 Common Report Var(flag_ipa_cp_clone) Optimization 1663 Common Report Var(flag_ipa_cp_clone) Optimization
1232 Perform cloning to make Interprocedural constant propagation stronger 1664 Perform cloning to make Interprocedural constant propagation stronger.
1665
1666 fipa-cp-alignment
1667 Common Ignore
1668 Does nothing. Preserved for backward compatibility.
1669
1670 fipa-bit-cp
1671 Common Report Var(flag_ipa_bit_cp) Optimization
1672 Perform interprocedural bitwise constant propagation.
1233 1673
1234 fipa-profile 1674 fipa-profile
1235 Common Report Var(flag_ipa_profile) Init(0) Optimization 1675 Common Report Var(flag_ipa_profile) Init(0) Optimization
1236 Perform interprocedural profile propagation 1676 Perform interprocedural profile propagation.
1237 1677
1238 fipa-pta 1678 fipa-pta
1239 Common Report Var(flag_ipa_pta) Init(0) Optimization 1679 Common Report Var(flag_ipa_pta) Init(0) Optimization
1240 Perform interprocedural points-to analysis 1680 Perform interprocedural points-to analysis.
1241 1681
1242 fipa-pure-const 1682 fipa-pure-const
1243 Common Report Var(flag_ipa_pure_const) Init(0) Optimization 1683 Common Report Var(flag_ipa_pure_const) Init(0) Optimization
1244 Discover pure and const functions 1684 Discover pure and const functions.
1685
1686 fipa-icf
1687 Common Report Var(flag_ipa_icf) Optimization
1688 Perform Identical Code Folding for functions and read-only variables.
1689
1690 fipa-icf-functions
1691 Common Report Var(flag_ipa_icf_functions) Optimization
1692 Perform Identical Code Folding for functions.
1693
1694 fipa-icf-variables
1695 Common Report Var(flag_ipa_icf_variables) Optimization
1696 Perform Identical Code Folding for variables.
1245 1697
1246 fipa-reference 1698 fipa-reference
1247 Common Report Var(flag_ipa_reference) Init(0) Optimization 1699 Common Report Var(flag_ipa_reference) Init(0) Optimization
1248 Discover readonly and non addressable static variables 1700 Discover readonly and non addressable static variables.
1249 1701
1250 fipa-matrix-reorg 1702 fipa-matrix-reorg
1251 Common Report Var(flag_ipa_matrix_reorg) Optimization 1703 Common Ignore
1252 Perform matrix layout flattening and transposing based 1704 Does nothing. Preserved for backward compatibility.
1253 on profiling information.
1254 1705
1255 fipa-struct-reorg 1706 fipa-struct-reorg
1256 Common Report Var(flag_ipa_struct_reorg) 1707 Common Ignore
1257 Perform structure layout optimizations based 1708 Does nothing. Preserved for backward compatibility.
1258 on profiling information. 1709
1710 fipa-vrp
1711 Common Report Var(flag_ipa_vrp) Optimization
1712 Perform IPA Value Range Propagation.
1259 1713
1260 fira-algorithm= 1714 fira-algorithm=
1261 Common Joined RejectNegative Enum(ira_algorithm) Var(flag_ira_algorithm) Init(IRA_ALGORITHM_CB) 1715 Common Joined RejectNegative Enum(ira_algorithm) Var(flag_ira_algorithm) Init(IRA_ALGORITHM_CB) Optimization
1262 -fira-algorithm=[CB|priority] Set the used IRA algorithm 1716 -fira-algorithm=[CB|priority] Set the used IRA algorithm.
1263 1717
1264 Enum 1718 Enum
1265 Name(ira_algorithm) Type(enum ira_algorithm) UnknownError(unknown IRA algorithm %qs) 1719 Name(ira_algorithm) Type(enum ira_algorithm) UnknownError(unknown IRA algorithm %qs)
1266 1720
1267 EnumValue 1721 EnumValue
1269 1723
1270 EnumValue 1724 EnumValue
1271 Enum(ira_algorithm) String(priority) Value(IRA_ALGORITHM_PRIORITY) 1725 Enum(ira_algorithm) String(priority) Value(IRA_ALGORITHM_PRIORITY)
1272 1726
1273 fira-region= 1727 fira-region=
1274 Common Joined RejectNegative Enum(ira_region) Var(flag_ira_region) Init(IRA_REGION_MIXED) 1728 Common Joined RejectNegative Enum(ira_region) Var(flag_ira_region) Init(IRA_REGION_AUTODETECT) Optimization
1275 -fira-region=[one|all|mixed] Set regions for IRA 1729 -fira-region=[one|all|mixed] Set regions for IRA.
1276 1730
1277 Enum 1731 Enum
1278 Name(ira_region) Type(enum ira_region) UnknownError(unknown IRA region %qs) 1732 Name(ira_region) Type(enum ira_region) UnknownError(unknown IRA region %qs)
1279 1733
1280 EnumValue 1734 EnumValue
1284 Enum(ira_region) String(all) Value(IRA_REGION_ALL) 1738 Enum(ira_region) String(all) Value(IRA_REGION_ALL)
1285 1739
1286 EnumValue 1740 EnumValue
1287 Enum(ira_region) String(mixed) Value(IRA_REGION_MIXED) 1741 Enum(ira_region) String(mixed) Value(IRA_REGION_MIXED)
1288 1742
1743 fira-hoist-pressure
1744 Common Report Var(flag_ira_hoist_pressure) Init(1) Optimization
1745 Use IRA based register pressure calculation
1746 in RTL hoist optimizations.
1747
1289 fira-loop-pressure 1748 fira-loop-pressure
1290 Common Report Var(flag_ira_loop_pressure) 1749 Common Report Var(flag_ira_loop_pressure) Optimization
1291 Use IRA based register pressure calculation 1750 Use IRA based register pressure calculation
1292 in RTL loop optimizations. 1751 in RTL loop optimizations.
1293 1752
1294 fira-share-save-slots 1753 fira-share-save-slots
1295 Common Report Var(flag_ira_share_save_slots) Init(1) 1754 Common Report Var(flag_ira_share_save_slots) Init(1) Optimization
1296 Share slots for saving different hard registers. 1755 Share slots for saving different hard registers.
1297 1756
1298 fira-share-spill-slots 1757 fira-share-spill-slots
1299 Common Report Var(flag_ira_share_spill_slots) Init(1) 1758 Common Report Var(flag_ira_share_spill_slots) Init(1) Optimization
1300 Share stack slots for spilled pseudo-registers. 1759 Share stack slots for spilled pseudo-registers.
1301 1760
1302 fira-verbose= 1761 fira-verbose=
1303 Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5) 1762 Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
1304 -fira-verbose=<number> Control IRA's level of diagnostic messages. 1763 -fira-verbose=<number> Control IRA's level of diagnostic messages.
1305 1764
1306 fivopts 1765 fivopts
1307 Common Report Var(flag_ivopts) Init(1) Optimization 1766 Common Report Var(flag_ivopts) Init(1) Optimization
1308 Optimize induction variables on trees 1767 Optimize induction variables on trees.
1309 1768
1310 fjump-tables 1769 fjump-tables
1311 Common Var(flag_jump_tables) Init(1) Optimization 1770 Common Var(flag_jump_tables) Init(1) Optimization
1312 Use jump tables for sufficiently large switch statements 1771 Use jump tables for sufficiently large switch statements.
1313 1772
1314 fkeep-inline-functions 1773 fkeep-inline-functions
1315 Common Report Var(flag_keep_inline_functions) 1774 Common Report Var(flag_keep_inline_functions)
1316 Generate code for functions even if they are fully inlined 1775 Generate code for functions even if they are fully inlined.
1776
1777 fkeep-static-functions
1778 Common Report Var(flag_keep_static_functions)
1779 Generate code for static functions even if they are never called.
1317 1780
1318 fkeep-static-consts 1781 fkeep-static-consts
1319 Common Report Var(flag_keep_static_consts) Init(1) 1782 Common Report Var(flag_keep_static_consts) Init(1)
1320 Emit static const variables even if they are not used 1783 Emit static const variables even if they are not used.
1321 1784
1322 fleading-underscore 1785 fleading-underscore
1323 Common Report Var(flag_leading_underscore) Init(-1) 1786 Common Report Var(flag_leading_underscore) Init(-1)
1324 Give external symbols a leading underscore 1787 Give external symbols a leading underscore.
1325 1788
1326 floop-optimize 1789 floop-optimize
1327 Common Ignore 1790 Common Ignore
1328 Does nothing. Preserved for backward compatibility. 1791 Does nothing. Preserved for backward compatibility.
1329 1792
1793 flra-remat
1794 Common Report Var(flag_lra_remat) Optimization
1795 Do CFG-sensitive rematerialization in LRA.
1796
1330 flto 1797 flto
1331 Common 1798 Common
1332 Enable link-time optimization. 1799 Enable link-time optimization.
1333 1800
1334 flto= 1801 flto=
1335 Common RejectNegative Joined Var(flag_lto) 1802 Common RejectNegative Joined Var(flag_lto)
1336 Link-time optimization with number of parallel jobs or jobserver. 1803 Link-time optimization with number of parallel jobs or jobserver.
1337 1804
1338 flto-partition=1to1 1805 Enum
1339 Common Var(flag_lto_partition_1to1) 1806 Name(lto_partition_model) Type(enum lto_partition_model) UnknownError(unknown LTO partitioning model %qs)
1340 Partition functions and vars at linktime based on object files they originate from 1807
1341 1808 EnumValue
1342 flto-partition=balanced 1809 Enum(lto_partition_model) String(none) Value(LTO_PARTITION_NONE)
1343 Common Var(flag_lto_partition_balanced) 1810
1344 Partition functions and vars at linktime into approximately same sized buckets 1811 EnumValue
1345 1812 Enum(lto_partition_model) String(one) Value(LTO_PARTITION_ONE)
1346 flto-partition=none 1813
1347 Common Var(flag_lto_partition_none) 1814 EnumValue
1348 Disable partioning and streaming 1815 Enum(lto_partition_model) String(balanced) Value(LTO_PARTITION_BALANCED)
1816
1817 EnumValue
1818 Enum(lto_partition_model) String(1to1) Value(LTO_PARTITION_1TO1)
1819
1820 EnumValue
1821 Enum(lto_partition_model) String(max) Value(LTO_PARTITION_MAX)
1822
1823 flto-partition=
1824 Common Joined RejectNegative Enum(lto_partition_model) Var(flag_lto_partition) Init(LTO_PARTITION_BALANCED)
1825 Specify the algorithm to partition symbols and vars at linktime.
1349 1826
1350 ; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h. 1827 ; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
1351 flto-compression-level= 1828 flto-compression-level=
1352 Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1) 1829 Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1) IntegerRange(0, 9)
1353 -flto-compression-level=<number> Use zlib compression level <number> for IL 1830 -flto-compression-level=<number> Use zlib compression level <number> for IL.
1831
1832 flto-odr-type-merging
1833 Common Report Var(flag_lto_odr_type_mering) Init(1)
1834 Merge C++ types using One Definition Rule.
1354 1835
1355 flto-report 1836 flto-report
1356 Common Report Var(flag_lto_report) Init(0) Optimization 1837 Common Report Var(flag_lto_report) Init(0)
1357 Report various link-time optimization statistics 1838 Report various link-time optimization statistics.
1839
1840 flto-report-wpa
1841 Common Report Var(flag_lto_report_wpa) Init(0)
1842 Report various link-time optimization statistics for WPA only.
1358 1843
1359 fmath-errno 1844 fmath-errno
1360 Common Report Var(flag_errno_math) Init(1) Optimization SetByCombined 1845 Common Report Var(flag_errno_math) Init(1) Optimization SetByCombined
1361 Set errno after built-in math functions 1846 Set errno after built-in math functions.
1362 1847
1363 fmax-errors= 1848 fmax-errors=
1364 Common Joined RejectNegative UInteger Var(flag_max_errors) 1849 Common Joined RejectNegative UInteger Var(flag_max_errors)
1365 -fmax-errors=<number> Maximum number of errors to report 1850 -fmax-errors=<number> Maximum number of errors to report.
1366 1851
1367 fmem-report 1852 fmem-report
1368 Common Report Var(mem_report) 1853 Common Report Var(mem_report)
1369 Report on permanent memory allocation 1854 Report on permanent memory allocation.
1855
1856 fmem-report-wpa
1857 Common Report Var(mem_report_wpa)
1858 Report on permanent memory allocation in WPA only.
1370 1859
1371 ; This will attempt to merge constant section constants, if 1 only 1860 ; This will attempt to merge constant section constants, if 1 only
1372 ; string constants and constants from constant pool, if 2 also constant 1861 ; string constants and constants from constant pool, if 2 also constant
1373 ; variables. 1862 ; variables.
1374 fmerge-all-constants 1863 fmerge-all-constants
1375 Common Report Var(flag_merge_constants,2) Init(1) Optimization 1864 Common Report Var(flag_merge_constants,2) Init(1)
1376 Attempt to merge identical constants and constant variables 1865 Attempt to merge identical constants and constant variables.
1377 1866
1378 fmerge-constants 1867 fmerge-constants
1379 Common Report Var(flag_merge_constants,1) Optimization 1868 Common Report Var(flag_merge_constants,1)
1380 Attempt to merge identical constants across compilation units 1869 Attempt to merge identical constants across compilation units.
1381 1870
1382 fmerge-debug-strings 1871 fmerge-debug-strings
1383 Common Report Var(flag_merge_debug_strings) Init(1) 1872 Common Report Var(flag_merge_debug_strings) Init(1)
1384 Attempt to merge identical debug strings across compilation units 1873 Attempt to merge identical debug strings across compilation units.
1385 1874
1386 fmessage-length= 1875 fmessage-length=
1387 Common RejectNegative Joined UInteger 1876 Common RejectNegative Joined UInteger
1388 -fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping 1877 -fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping.
1389 1878
1390 fmodulo-sched 1879 fmodulo-sched
1391 Common Report Var(flag_modulo_sched) Optimization 1880 Common Report Var(flag_modulo_sched) Optimization
1392 Perform SMS based modulo scheduling before the first scheduling pass 1881 Perform SMS based modulo scheduling before the first scheduling pass.
1393 1882
1394 fmodulo-sched-allow-regmoves 1883 fmodulo-sched-allow-regmoves
1395 Common Report Var(flag_modulo_sched_allow_regmoves) 1884 Common Report Var(flag_modulo_sched_allow_regmoves) Optimization
1396 Perform SMS based modulo scheduling with register moves allowed 1885 Perform SMS based modulo scheduling with register moves allowed.
1397 1886
1398 fmove-loop-invariants 1887 fmove-loop-invariants
1399 Common Report Var(flag_move_loop_invariants) Init(1) Optimization 1888 Common Report Var(flag_move_loop_invariants) Optimization
1400 Move loop invariant computations out of loops 1889 Move loop invariant computations out of loops.
1401
1402 fmudflap
1403 Common RejectNegative Report Var(flag_mudflap)
1404 Add mudflap bounds-checking instrumentation for single-threaded program
1405
1406 fmudflapth
1407 Common RejectNegative Report Var(flag_mudflap,2)
1408 Add mudflap bounds-checking instrumentation for multi-threaded program
1409
1410 fmudflapir
1411 Common RejectNegative Report Var(flag_mudflap_ignore_reads)
1412 Ignore read operations when inserting mudflap instrumentation
1413 1890
1414 fdce 1891 fdce
1415 Common Var(flag_dce) Init(1) Optimization 1892 Common Var(flag_dce) Init(1) Optimization
1416 Use the RTL dead code elimination pass 1893 Use the RTL dead code elimination pass.
1417 1894
1418 fdse 1895 fdse
1419 Common Var(flag_dse) Init(1) Optimization 1896 Common Var(flag_dse) Init(1) Optimization
1420 Use the RTL dead store elimination pass 1897 Use the RTL dead store elimination pass.
1421 1898
1422 freschedule-modulo-scheduled-loops 1899 freschedule-modulo-scheduled-loops
1423 Common Report Var(flag_resched_modulo_sched) Optimization 1900 Common Report Var(flag_resched_modulo_sched) Optimization
1424 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling 1901 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling.
1425 1902
1426 fnon-call-exceptions 1903 fnon-call-exceptions
1427 Common Report Var(flag_non_call_exceptions) Optimization 1904 Common Report Var(flag_non_call_exceptions) Optimization
1428 Support synchronous non-call exceptions 1905 Support synchronous non-call exceptions.
1906
1907 foffload=
1908 Common Driver Joined MissingArgError(options or targets missing after %qs)
1909 -foffload=<targets>=<options> Specify offloading targets and options for them.
1910
1911 foffload-abi=
1912 Common Joined RejectNegative Enum(offload_abi) Var(flag_offload_abi) Init(OFFLOAD_ABI_UNSET)
1913 -foffload-abi=[lp64|ilp32] Set the ABI to use in an offload compiler.
1914
1915 Enum
1916 Name(offload_abi) Type(enum offload_abi) UnknownError(unknown offload ABI %qs)
1917
1918 EnumValue
1919 Enum(offload_abi) String(ilp32) Value(OFFLOAD_ABI_ILP32)
1920
1921 EnumValue
1922 Enum(offload_abi) String(lp64) Value(OFFLOAD_ABI_LP64)
1429 1923
1430 fomit-frame-pointer 1924 fomit-frame-pointer
1431 Common Report Var(flag_omit_frame_pointer) Optimization 1925 Common Report Var(flag_omit_frame_pointer) Optimization
1432 When possible do not generate stack frames 1926 When possible do not generate stack frames.
1927
1928 fopt-info
1929 Common Report Var(flag_opt_info) Optimization
1930 Enable all optimization info dumps on stderr.
1931
1932 fopt-info-
1933 Common Joined RejectNegative Var(common_deferred_options) Defer
1934 -fopt-info[-<type>=filename] Dump compiler optimization details.
1433 1935
1434 foptimize-register-move 1936 foptimize-register-move
1435 Common Report Var(flag_regmove) Optimization 1937 Common Ignore
1436 Do the full register move optimization pass 1938 Does nothing. Preserved for backward compatibility.
1437 1939
1438 foptimize-sibling-calls 1940 foptimize-sibling-calls
1439 Common Report Var(flag_optimize_sibling_calls) Optimization 1941 Common Report Var(flag_optimize_sibling_calls) Optimization
1440 Optimize sibling and tail recursive calls 1942 Optimize sibling and tail recursive calls.
1441 1943
1442 fpartial-inlining 1944 fpartial-inlining
1443 Common Report Var(flag_partial_inlining) 1945 Common Report Var(flag_partial_inlining) Optimization
1444 Perform partial inlining 1946 Perform partial inlining.
1445 1947
1446 fpre-ipa-mem-report 1948 fpre-ipa-mem-report
1447 Common Report Var(pre_ipa_mem_report) 1949 Common Report Var(pre_ipa_mem_report)
1448 Report on memory allocation before interprocedural optimization 1950 Report on memory allocation before interprocedural optimization.
1449 1951
1450 fpost-ipa-mem-report 1952 fpost-ipa-mem-report
1451 Common Report Var(post_ipa_mem_report) 1953 Common Report Var(post_ipa_mem_report)
1452 Report on memory allocation before interprocedural optimization 1954 Report on memory allocation before interprocedural optimization.
1453 1955
1454 fpack-struct 1956 fpack-struct
1455 Common Report Var(flag_pack_struct) Optimization 1957 Common Report Var(flag_pack_struct) Optimization
1456 Pack structure members together without holes 1958 Pack structure members together without holes.
1457 1959
1458 fpack-struct= 1960 fpack-struct=
1459 Common RejectNegative Joined UInteger Optimization 1961 Common RejectNegative Joined UInteger Optimization
1460 -fpack-struct=<number> Set initial maximum structure member alignment 1962 -fpack-struct=<number> Set initial maximum structure member alignment.
1461 1963
1462 fpcc-struct-return 1964 fpcc-struct-return
1463 Common Report Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN) 1965 Common Report Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
1464 Return small aggregates in memory, not registers 1966 Return small aggregates in memory, not registers.
1465 1967
1466 fpeel-loops 1968 fpeel-loops
1467 Common Report Var(flag_peel_loops) Optimization 1969 Common Report Var(flag_peel_loops) Optimization
1468 Perform loop peeling 1970 Perform loop peeling.
1469 1971
1470 fpeephole 1972 fpeephole
1471 Common Report Var(flag_no_peephole,0) Optimization 1973 Common Report Var(flag_no_peephole,0) Optimization
1472 Enable machine specific peephole optimizations 1974 Enable machine specific peephole optimizations.
1473 1975
1474 fpeephole2 1976 fpeephole2
1475 Common Report Var(flag_peephole2) Optimization 1977 Common Report Var(flag_peephole2) Optimization
1476 Enable an RTL peephole pass before sched2 1978 Enable an RTL peephole pass before sched2.
1477 1979
1478 fPIC 1980 fPIC
1479 Common Report Var(flag_pic,2) 1981 Common Report Var(flag_pic,2) Negative(fPIE) Init(-1)
1480 Generate position-independent code if possible (large mode) 1982 Generate position-independent code if possible (large mode).
1481 1983
1482 fPIE 1984 fPIE
1483 Common Report Var(flag_pie,2) 1985 Common Report Var(flag_pie,2) Negative(fpic) Init(-1)
1484 Generate position-independent code for executables if possible (large mode) 1986 Generate position-independent code for executables if possible (large mode).
1485 1987
1486 fpic 1988 fpic
1487 Common Report Var(flag_pic,1) 1989 Common Report Var(flag_pic,1) Negative(fpie) Init(-1)
1488 Generate position-independent code if possible (small mode) 1990 Generate position-independent code if possible (small mode).
1489 1991
1490 fpie 1992 fpie
1491 Common Report Var(flag_pie,1) 1993 Common Report Var(flag_pie,1) Negative(fPIC) Init(-1)
1492 Generate position-independent code for executables if possible (small mode) 1994 Generate position-independent code for executables if possible (small mode).
1995
1996 fplt
1997 Common Report Var(flag_plt) Init(1) Optimization
1998 Use PLT for PIC calls (-fno-plt: load the address from GOT at call site).
1493 1999
1494 fplugin= 2000 fplugin=
1495 Common Joined RejectNegative Var(common_deferred_options) Defer 2001 Common Joined RejectNegative Var(common_deferred_options) Defer
1496 Specify a plugin to load 2002 Specify a plugin to load.
1497 2003
1498 fplugin-arg- 2004 fplugin-arg-
1499 Common Joined RejectNegative Var(common_deferred_options) Defer 2005 Common Joined RejectNegative Var(common_deferred_options) Defer
1500 -fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name> 2006 -fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>.
1501 2007
1502 fpredictive-commoning 2008 fpredictive-commoning
1503 Common Report Var(flag_predictive_commoning) Optimization 2009 Common Report Var(flag_predictive_commoning) Optimization
1504 Run predictive commoning optimization. 2010 Run predictive commoning optimization.
1505 2011
1506 fprefetch-loop-arrays 2012 fprefetch-loop-arrays
1507 Common Report Var(flag_prefetch_loop_arrays) Init(-1) Optimization 2013 Common Report Var(flag_prefetch_loop_arrays) Init(-1) Optimization
1508 Generate prefetch instructions, if available, for arrays in loops 2014 Generate prefetch instructions, if available, for arrays in loops.
1509 2015
1510 fprofile 2016 fprofile
1511 Common Report Var(profile_flag) 2017 Common Report Var(profile_flag)
1512 Enable basic program profiling code 2018 Enable basic program profiling code.
2019
2020 fprofile-abs-path
2021 Common Report Var(profile_abs_path_flag)
2022 Generate absolute source path names for gcov.
1513 2023
1514 fprofile-arcs 2024 fprofile-arcs
1515 Common Report Var(profile_arc_flag) 2025 Common Report Var(profile_arc_flag)
1516 Insert arc-based program profiling code 2026 Insert arc-based program profiling code.
1517 2027
1518 fprofile-dir= 2028 fprofile-dir=
1519 Common Joined RejectNegative Var(profile_data_prefix) 2029 Common Joined RejectNegative Var(profile_data_prefix)
1520 Set the top-level directory for storing the profile data. 2030 Set the top-level directory for storing the profile data.
1521 The default is 'pwd'. 2031 The default is 'pwd'.
1522 2032
1523 fprofile-correction 2033 fprofile-correction
1524 Common Report Var(flag_profile_correction) 2034 Common Report Var(flag_profile_correction)
1525 Enable correction of flow inconsistent profile data input 2035 Enable correction of flow inconsistent profile data input.
2036
2037 fprofile-update=
2038 Common Joined RejectNegative Enum(profile_update) Var(flag_profile_update) Init(PROFILE_UPDATE_SINGLE)
2039 -fprofile-update=[single|atomic|prefer-atomic] Set the profile update method.
2040
2041 Enum
2042 Name(profile_update) Type(enum profile_update) UnknownError(unknown profile update method %qs)
2043
2044 EnumValue
2045 Enum(profile_update) String(single) Value(PROFILE_UPDATE_SINGLE)
2046
2047 EnumValue
2048 Enum(profile_update) String(atomic) Value(PROFILE_UPDATE_ATOMIC)
2049
2050 EnumValue
2051 Enum(profile_update) String(prefer-atomic) Value(PROFILE_UPDATE_PREFER_ATOMIC)
1526 2052
1527 fprofile-generate 2053 fprofile-generate
1528 Common 2054 Common
1529 Enable common options for generating profile info for profile feedback directed optimizations 2055 Enable common options for generating profile info for profile feedback directed optimizations.
1530 2056
1531 fprofile-generate= 2057 fprofile-generate=
1532 Common Joined RejectNegative 2058 Common Joined RejectNegative
1533 Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir= 2059 Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=.
1534 2060
1535 fprofile-use 2061 fprofile-use
1536 Common Var(flag_profile_use) 2062 Common Var(flag_profile_use)
1537 Enable common options for performing profile feedback directed optimizations 2063 Enable common options for performing profile feedback directed optimizations.
1538 2064
1539 fprofile-use= 2065 fprofile-use=
1540 Common Joined RejectNegative 2066 Common Joined RejectNegative
1541 Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir= 2067 Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=.
1542 2068
1543 fprofile-values 2069 fprofile-values
1544 Common Report Var(flag_profile_values) 2070 Common Report Var(flag_profile_values)
1545 Insert code to profile values of expressions 2071 Insert code to profile values of expressions.
2072
2073 fprofile-report
2074 Common Report Var(profile_report)
2075 Report on consistency of profile.
2076
2077 fprofile-reorder-functions
2078 Common Report Var(flag_profile_reorder_functions)
2079 Enable function reordering that improves code placement.
2080
2081 fpatchable-function-entry=
2082 Common Joined Optimization
2083 Insert NOP instructions at each function entry.
1546 2084
1547 frandom-seed 2085 frandom-seed
1548 Common Var(common_deferred_options) Defer 2086 Common Var(common_deferred_options) Defer
1549 2087
1550 frandom-seed= 2088 frandom-seed=
1551 Common Joined RejectNegative Var(common_deferred_options) Defer 2089 Common Joined RejectNegative Var(common_deferred_options) Defer
1552 -frandom-seed=<string> Make compile reproducible using <string> 2090 -frandom-seed=<string> Make compile reproducible using <string>.
1553 2091
1554 ; This switch causes the command line that was used to create an 2092 ; This switch causes the command line that was used to create an
1555 ; object file to be recorded into the object file. The exact format 2093 ; object file to be recorded into the object file. The exact format
1556 ; of this recording is target and binary file format dependent. 2094 ; of this recording is target and binary file format dependent.
1557 ; It is related to the -fverbose-asm switch, but that switch only 2095 ; It is related to the -fverbose-asm switch, but that switch only
1561 Common Report Var(flag_record_gcc_switches) 2099 Common Report Var(flag_record_gcc_switches)
1562 Record gcc command line switches in the object file. 2100 Record gcc command line switches in the object file.
1563 2101
1564 freg-struct-return 2102 freg-struct-return
1565 Common Report Var(flag_pcc_struct_return,0) Optimization 2103 Common Report Var(flag_pcc_struct_return,0) Optimization
1566 Return small aggregates in registers 2104 Return small aggregates in registers.
1567 2105
1568 fregmove 2106 fregmove
1569 Common Report Var(flag_regmove) Optimization 2107 Common Ignore
1570 Enables a register move optimization 2108 Does nothing. Preserved for backward compatibility.
2109
2110 flifetime-dse
2111 Common Report Var(flag_lifetime_dse,2) Init(2) Optimization
2112 Tell DSE that the storage for a C++ object is dead when the constructor
2113 starts and when the destructor finishes.
2114
2115 flifetime-dse=
2116 Common Joined RejectNegative UInteger Var(flag_lifetime_dse) Optimization IntegerRange(0, 2)
2117
2118 flive-range-shrinkage
2119 Common Report Var(flag_live_range_shrinkage) Init(0) Optimization
2120 Relief of register pressure through live range shrinkage.
1571 2121
1572 frename-registers 2122 frename-registers
1573 Common Report Var(flag_rename_registers) Init(2) Optimization 2123 Common Report Var(flag_rename_registers) Init(2) Optimization
1574 Perform a register renaming optimization pass 2124 Perform a register renaming optimization pass.
2125
2126 fschedule-fusion
2127 Common Report Var(flag_schedule_fusion) Init(2) Optimization
2128 Perform a target dependent instruction fusion optimization pass.
1575 2129
1576 freorder-blocks 2130 freorder-blocks
1577 Common Report Var(flag_reorder_blocks) Optimization 2131 Common Report Var(flag_reorder_blocks) Optimization
1578 Reorder basic blocks to improve code placement 2132 Reorder basic blocks to improve code placement.
2133
2134 freorder-blocks-algorithm=
2135 Common Joined RejectNegative Enum(reorder_blocks_algorithm) Var(flag_reorder_blocks_algorithm) Init(REORDER_BLOCKS_ALGORITHM_SIMPLE) Optimization
2136 -freorder-blocks-algorithm=[simple|stc] Set the used basic block reordering algorithm.
2137
2138 Enum
2139 Name(reorder_blocks_algorithm) Type(enum reorder_blocks_algorithm) UnknownError(unknown basic block reordering algorithm %qs)
2140
2141 EnumValue
2142 Enum(reorder_blocks_algorithm) String(simple) Value(REORDER_BLOCKS_ALGORITHM_SIMPLE)
2143
2144 EnumValue
2145 Enum(reorder_blocks_algorithm) String(stc) Value(REORDER_BLOCKS_ALGORITHM_STC)
1579 2146
1580 freorder-blocks-and-partition 2147 freorder-blocks-and-partition
1581 Common Report Var(flag_reorder_blocks_and_partition) Optimization 2148 Common Report Var(flag_reorder_blocks_and_partition) Optimization
1582 Reorder basic blocks and partition into hot and cold sections 2149 Reorder basic blocks and partition into hot and cold sections.
1583 2150
1584 freorder-functions 2151 freorder-functions
1585 Common Report Var(flag_reorder_functions) Optimization 2152 Common Report Var(flag_reorder_functions) Optimization
1586 Reorder functions to improve code placement 2153 Reorder functions to improve code placement.
1587 2154
1588 frerun-cse-after-loop 2155 frerun-cse-after-loop
1589 Common Report Var(flag_rerun_cse_after_loop) Optimization 2156 Common Report Var(flag_rerun_cse_after_loop) Optimization
1590 Add a common subexpression elimination pass after loop optimizations 2157 Add a common subexpression elimination pass after loop optimizations.
1591 2158
1592 frerun-loop-opt 2159 frerun-loop-opt
1593 Common Ignore 2160 Common Ignore
1594 Does nothing. Preserved for backward compatibility. 2161 Does nothing. Preserved for backward compatibility.
1595 2162
1596 frounding-math 2163 frounding-math
1597 Common Report Var(flag_rounding_math) Optimization SetByCombined 2164 Common Report Var(flag_rounding_math) Optimization SetByCombined
1598 Disable optimizations that assume default FP rounding behavior 2165 Disable optimizations that assume default FP rounding behavior.
1599 2166
1600 fsched-interblock 2167 fsched-interblock
1601 Common Report Var(flag_schedule_interblock) Init(1) Optimization 2168 Common Report Var(flag_schedule_interblock) Init(1) Optimization
1602 Enable scheduling across basic blocks 2169 Enable scheduling across basic blocks.
1603 2170
1604 fsched-pressure 2171 fsched-pressure
1605 Common Report Var(flag_sched_pressure) Init(0) Optimization 2172 Common Report Var(flag_sched_pressure) Init(0) Optimization
1606 Enable register pressure sensitive insn scheduling 2173 Enable register pressure sensitive insn scheduling.
1607 2174
1608 fsched-spec 2175 fsched-spec
1609 Common Report Var(flag_schedule_speculative) Init(1) Optimization 2176 Common Report Var(flag_schedule_speculative) Init(1) Optimization
1610 Allow speculative motion of non-loads 2177 Allow speculative motion of non-loads.
1611 2178
1612 fsched-spec-load 2179 fsched-spec-load
1613 Common Report Var(flag_schedule_speculative_load) Optimization 2180 Common Report Var(flag_schedule_speculative_load) Optimization
1614 Allow speculative motion of some loads 2181 Allow speculative motion of some loads.
1615 2182
1616 fsched-spec-load-dangerous 2183 fsched-spec-load-dangerous
1617 Common Report Var(flag_schedule_speculative_load_dangerous) Optimization 2184 Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
1618 Allow speculative motion of more loads 2185 Allow speculative motion of more loads.
1619 2186
1620 fsched-verbose= 2187 fsched-verbose=
1621 Common RejectNegative Joined UInteger Var(sched_verbose_param) 2188 Common RejectNegative Joined UInteger Var(sched_verbose_param) Init(1)
1622 -fsched-verbose=<number> Set the verbosity level of the scheduler 2189 -fsched-verbose=<number> Set the verbosity level of the scheduler.
1623 2190
1624 fsched2-use-superblocks 2191 fsched2-use-superblocks
1625 Common Report Var(flag_sched2_use_superblocks) Optimization 2192 Common Report Var(flag_sched2_use_superblocks) Optimization
1626 If scheduling post reload, do superblock scheduling 2193 If scheduling post reload, do superblock scheduling.
1627 2194
1628 fsched2-use-traces 2195 fsched2-use-traces
1629 Common Ignore 2196 Common Ignore
1630 Does nothing. Preserved for backward compatibility. 2197 Does nothing. Preserved for backward compatibility.
1631 2198
1632 fschedule-insns 2199 fschedule-insns
1633 Common Report Var(flag_schedule_insns) Optimization 2200 Common Report Var(flag_schedule_insns) Optimization
1634 Reschedule instructions before register allocation 2201 Reschedule instructions before register allocation.
1635 2202
1636 fschedule-insns2 2203 fschedule-insns2
1637 Common Report Var(flag_schedule_insns_after_reload) Optimization 2204 Common Report Var(flag_schedule_insns_after_reload) Optimization
1638 Reschedule instructions after register allocation 2205 Reschedule instructions after register allocation.
1639 2206
1640 ; This flag should be on when a target implements non-trivial 2207 ; This flag should be on when a target implements non-trivial
1641 ; scheduling hooks, maybe saving some information for its own sake. 2208 ; scheduling hooks, maybe saving some information for its own sake.
1642 ; On IA64, for example, this is used for correct bundling. 2209 ; On IA64, for example, this is used for correct bundling.
1643 fselective-scheduling 2210 fselective-scheduling
1644 Common Report Var(flag_selective_scheduling) Optimization 2211 Common Report Var(flag_selective_scheduling) Optimization
1645 Schedule instructions using selective scheduling algorithm 2212 Schedule instructions using selective scheduling algorithm.
1646 2213
1647 fselective-scheduling2 2214 fselective-scheduling2
1648 Common Report Var(flag_selective_scheduling2) Optimization 2215 Common Report Var(flag_selective_scheduling2) Optimization
1649 Run selective scheduling after reload 2216 Run selective scheduling after reload.
2217
2218 fself-test=
2219 Common Undocumented Joined Var(flag_self_test)
2220 Run self-tests, using the given path to locate test files.
1650 2221
1651 fsel-sched-pipelining 2222 fsel-sched-pipelining
1652 Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization 2223 Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
1653 Perform software pipelining of inner loops during selective scheduling 2224 Perform software pipelining of inner loops during selective scheduling.
1654 2225
1655 fsel-sched-pipelining-outer-loops 2226 fsel-sched-pipelining-outer-loops
1656 Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization 2227 Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
1657 Perform software pipelining of outer loops during selective scheduling 2228 Perform software pipelining of outer loops during selective scheduling.
1658 2229
1659 fsel-sched-reschedule-pipelined 2230 fsel-sched-reschedule-pipelined
1660 Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization 2231 Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
1661 Reschedule pipelined regions without pipelining 2232 Reschedule pipelined regions without pipelining.
2233
2234 fsemantic-interposition
2235 Common Report Var(flag_semantic_interposition) Init(1)
2236 Allow interposing function (or variables) by ones with different semantics (or initializer) respectively by dynamic linker.
1662 2237
1663 ; sched_stalled_insns means that insns can be moved prematurely from the queue 2238 ; sched_stalled_insns means that insns can be moved prematurely from the queue
1664 ; of stalled insns into the ready list. 2239 ; of stalled insns into the ready list.
1665 fsched-stalled-insns 2240 fsched-stalled-insns
1666 Common Report Var(flag_sched_stalled_insns) Optimization UInteger 2241 Common Report Var(flag_sched_stalled_insns) Optimization UInteger
1667 Allow premature scheduling of queued insns 2242 Allow premature scheduling of queued insns.
1668 2243
1669 fsched-stalled-insns= 2244 fsched-stalled-insns=
1670 Common RejectNegative Joined UInteger 2245 Common RejectNegative Joined UInteger Optimization
1671 -fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled 2246 -fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled.
1672 2247
1673 ; sched_stalled_insns_dep controls how many recently scheduled cycles will 2248 ; sched_stalled_insns_dep controls how many recently scheduled cycles will
1674 ; be examined for a dependency on a stalled insn that is candidate for 2249 ; be examined for a dependency on a stalled insn that is candidate for
1675 ; premature removal from the queue of stalled insns into the ready list (has 2250 ; premature removal from the queue of stalled insns into the ready list (has
1676 ; an effect only if the flag 'sched_stalled_insns' is set). 2251 ; an effect only if the flag 'sched_stalled_insns' is set).
1677 fsched-stalled-insns-dep 2252 fsched-stalled-insns-dep
1678 Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger 2253 Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
1679 Set dependence distance checking in premature scheduling of queued insns 2254 Set dependence distance checking in premature scheduling of queued insns.
1680 2255
1681 fsched-stalled-insns-dep= 2256 fsched-stalled-insns-dep=
1682 Common RejectNegative Joined UInteger 2257 Common RejectNegative Joined UInteger Optimization
1683 -fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns 2258 -fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns.
1684 2259
1685 fsched-group-heuristic 2260 fsched-group-heuristic
1686 Common Report Var(flag_sched_group_heuristic) Init(1) Optimization 2261 Common Report Var(flag_sched_group_heuristic) Init(1) Optimization
1687 Enable the group heuristic in the scheduler 2262 Enable the group heuristic in the scheduler.
1688 2263
1689 fsched-critical-path-heuristic 2264 fsched-critical-path-heuristic
1690 Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization 2265 Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization
1691 Enable the critical path heuristic in the scheduler 2266 Enable the critical path heuristic in the scheduler.
1692 2267
1693 fsched-spec-insn-heuristic 2268 fsched-spec-insn-heuristic
1694 Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization 2269 Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
1695 Enable the speculative instruction heuristic in the scheduler 2270 Enable the speculative instruction heuristic in the scheduler.
1696 2271
1697 fsched-rank-heuristic 2272 fsched-rank-heuristic
1698 Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization 2273 Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization
1699 Enable the rank heuristic in the scheduler 2274 Enable the rank heuristic in the scheduler.
1700 2275
1701 fsched-last-insn-heuristic 2276 fsched-last-insn-heuristic
1702 Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization 2277 Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization
1703 Enable the last instruction heuristic in the scheduler 2278 Enable the last instruction heuristic in the scheduler.
1704 2279
1705 fsched-dep-count-heuristic 2280 fsched-dep-count-heuristic
1706 Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization 2281 Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization
1707 Enable the dependent count heuristic in the scheduler 2282 Enable the dependent count heuristic in the scheduler.
1708 2283
1709 fsection-anchors 2284 fsection-anchors
1710 Common Report Var(flag_section_anchors) Optimization 2285 Common Report Var(flag_section_anchors) Optimization
1711 Access data in the same section from shared anchor points 2286 Access data in the same section from shared anchor points.
1712 2287
1713 fsee 2288 fsee
1714 Common Ignore 2289 Common Ignore
1715 Does nothing. Preserved for backward compatibility. 2290 Does nothing. Preserved for backward compatibility.
1716 2291
1717 fzee 2292 fzee
1718 Common Report Var(flag_zee) Init(0) 2293 Common Ignore
1719 Eliminate redundant zero extensions on targets that support implicit extensions. 2294 Does nothing. Preserved for backward compatibility.
2295
2296 free
2297 Common Report Var(flag_ree) Init(0)
2298 Turn on Redundant Extensions Elimination pass.
1720 2299
1721 fshow-column 2300 fshow-column
1722 Common Report Var(flag_show_column) Init(1) 2301 Common Report Var(flag_show_column) Init(1)
1723 Show column numbers in diagnostics, when available. Default on 2302 Show column numbers in diagnostics, when available. Default on.
2303
2304 fshrink-wrap
2305 Common Report Var(flag_shrink_wrap) Optimization
2306 Emit function prologues only before parts of the function that need it,
2307 rather than at the top of the function.
2308
2309 fshrink-wrap-separate
2310 Common Report Var(flag_shrink_wrap_separate) Init(1) Optimization
2311 Shrink-wrap parts of the prologue and epilogue separately.
1724 2312
1725 fsignaling-nans 2313 fsignaling-nans
1726 Common Report Var(flag_signaling_nans) Optimization SetByCombined 2314 Common Report Var(flag_signaling_nans) Optimization SetByCombined
1727 Disable optimizations observable by IEEE signaling NaNs 2315 Disable optimizations observable by IEEE signaling NaNs.
1728 2316
1729 fsigned-zeros 2317 fsigned-zeros
1730 Common Report Var(flag_signed_zeros) Init(1) Optimization SetByCombined 2318 Common Report Var(flag_signed_zeros) Init(1) Optimization SetByCombined
1731 Disable floating point optimizations that ignore the IEEE signedness of zero 2319 Disable floating point optimizations that ignore the IEEE signedness of zero.
1732 2320
1733 fsingle-precision-constant 2321 fsingle-precision-constant
1734 Common Report Var(flag_single_precision_constant) Optimization 2322 Common Report Var(flag_single_precision_constant) Optimization
1735 Convert floating point constants to single precision constants 2323 Convert floating point constants to single precision constants.
1736 2324
1737 fsplit-ivs-in-unroller 2325 fsplit-ivs-in-unroller
1738 Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization 2326 Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
1739 Split lifetimes of induction variables when loops are unrolled 2327 Split lifetimes of induction variables when loops are unrolled.
1740 2328
1741 fsplit-stack 2329 fsplit-stack
1742 Common Report Var(flag_split_stack) Init(-1) 2330 Common Report Var(flag_split_stack) Init(-1)
1743 Generate discontiguous stack frames 2331 Generate discontiguous stack frames.
1744 2332
1745 fsplit-wide-types 2333 fsplit-wide-types
1746 Common Report Var(flag_split_wide_types) Optimization 2334 Common Report Var(flag_split_wide_types) Optimization
1747 Split wide types into independent registers 2335 Split wide types into independent registers.
2336
2337 fssa-backprop
2338 Common Report Var(flag_ssa_backprop) Init(1) Optimization
2339 Enable backward propagation of use properties at the SSA level.
2340
2341 fssa-phiopt
2342 Common Report Var(flag_ssa_phiopt) Optimization
2343 Optimize conditional patterns using SSA PHI nodes.
2344
2345 fstdarg-opt
2346 Common Report Var(flag_stdarg_opt) Init(1) Optimization
2347 Optimize amount of stdarg registers saved to stack at start of function.
1748 2348
1749 fvariable-expansion-in-unroller 2349 fvariable-expansion-in-unroller
1750 Common Report Var(flag_variable_expansion_in_unroller) Optimization 2350 Common Report Var(flag_variable_expansion_in_unroller) Optimization
1751 Apply variable expansion when loops are unrolled 2351 Apply variable expansion when loops are unrolled.
1752 2352
1753 fstack-check= 2353 fstack-check=
1754 Common Report RejectNegative Joined 2354 Common Report RejectNegative Joined Optimization
1755 -fstack-check=[no|generic|specific] Insert stack checking code into the program 2355 -fstack-check=[no|generic|specific] Insert stack checking code into the program.
1756 2356
1757 fstack-check 2357 fstack-check
1758 Common Alias(fstack-check=, specific, no) 2358 Common Alias(fstack-check=, specific, no)
1759 Insert stack checking code into the program. Same as -fstack-check=specific 2359 Insert stack checking code into the program. Same as -fstack-check=specific.
2360
2361 fstack-clash-protection
2362 Common Report Var(flag_stack_clash_protection) Optimization
2363 Insert code to probe each page of stack space as it is allocated to protect
2364 from stack-clash style attacks.
1760 2365
1761 fstack-limit 2366 fstack-limit
1762 Common Var(common_deferred_options) Defer 2367 Common Var(common_deferred_options) Defer
1763 2368
1764 fstack-limit-register= 2369 fstack-limit-register=
1765 Common RejectNegative Joined Var(common_deferred_options) Defer 2370 Common RejectNegative Joined Var(common_deferred_options) Defer
1766 -fstack-limit-register=<register> Trap if the stack goes past <register> 2371 -fstack-limit-register=<register> Trap if the stack goes past <register>.
1767 2372
1768 fstack-limit-symbol= 2373 fstack-limit-symbol=
1769 Common RejectNegative Joined Var(common_deferred_options) Defer 2374 Common RejectNegative Joined Var(common_deferred_options) Defer
1770 -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name> 2375 -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>.
1771 2376
1772 fstack-protector 2377 fstack-protector
1773 Common Report Var(flag_stack_protect, 1) 2378 Common Report Var(flag_stack_protect, 1) Init(-1) Optimization
1774 Use propolice as a stack protection method 2379 Use propolice as a stack protection method.
1775 2380
1776 fstack-protector-all 2381 fstack-protector-all
1777 Common Report RejectNegative Var(flag_stack_protect, 2) 2382 Common Report RejectNegative Var(flag_stack_protect, 2) Init(-1) Optimization
1778 Use a stack protection method for every function 2383 Use a stack protection method for every function.
2384
2385 fstack-protector-strong
2386 Common Report RejectNegative Var(flag_stack_protect, 3) Init(-1) Optimization
2387 Use a smart stack protection method for certain functions.
2388
2389 fstack-protector-explicit
2390 Common Report RejectNegative Var(flag_stack_protect, 4) Optimization
2391 Use stack protection method only for functions with the stack_protect attribute.
1779 2392
1780 fstack-usage 2393 fstack-usage
1781 Common RejectNegative Var(flag_stack_usage) 2394 Common RejectNegative Var(flag_stack_usage)
1782 Output stack usage information on a per-function basis 2395 Output stack usage information on a per-function basis.
1783 2396
1784 fstrength-reduce 2397 fstrength-reduce
1785 Common Ignore 2398 Common Ignore
1786 Does nothing. Preserved for backward compatibility. 2399 Does nothing. Preserved for backward compatibility.
1787 2400
1789 ; Typically, this analysis will assume that expressions of certain 2402 ; Typically, this analysis will assume that expressions of certain
1790 ; types do not alias expressions of certain other types. Only used 2403 ; types do not alias expressions of certain other types. Only used
1791 ; if alias analysis (in general) is enabled. 2404 ; if alias analysis (in general) is enabled.
1792 fstrict-aliasing 2405 fstrict-aliasing
1793 Common Report Var(flag_strict_aliasing) Optimization 2406 Common Report Var(flag_strict_aliasing) Optimization
1794 Assume strict aliasing rules apply 2407 Assume strict aliasing rules apply.
1795 2408
1796 fstrict-overflow 2409 fstrict-overflow
1797 Common Report Var(flag_strict_overflow) 2410 Common NegativeAlias Alias(fwrapv)
1798 Treat signed overflow as undefined 2411 Treat signed overflow as undefined. Negated as -fwrapv.
2412
2413 fsync-libcalls
2414 Common Report Var(flag_sync_libcalls) Init(1)
2415 Implement __atomic operations via libcalls to legacy __sync functions.
1799 2416
1800 fsyntax-only 2417 fsyntax-only
1801 Common Report Var(flag_syntax_only) 2418 Common Report Var(flag_syntax_only)
1802 Check for syntax errors, then stop 2419 Check for syntax errors, then stop.
1803 2420
1804 ftest-coverage 2421 ftest-coverage
1805 Common Report Var(flag_test_coverage) 2422 Common Report Var(flag_test_coverage)
1806 Create data files needed by \"gcov\" 2423 Create data files needed by \"gcov\".
1807 2424
1808 fthread-jumps 2425 fthread-jumps
1809 Common Report Var(flag_thread_jumps) Optimization 2426 Common Report Var(flag_thread_jumps) Optimization
1810 Perform jump threading optimizations 2427 Perform jump threading optimizations.
1811 2428
1812 ftime-report 2429 ftime-report
1813 Common Report Var(time_report) 2430 Common Report Var(time_report)
1814 Report the time taken by each compiler pass 2431 Report the time taken by each compiler pass.
2432
2433 ftime-report-details
2434 Common Report Var(time_report_details)
2435 Record times taken by sub-phases separately.
1815 2436
1816 ftls-model= 2437 ftls-model=
1817 Common Joined RejectNegative Enum(tls_model) Var(flag_tls_default) Init(TLS_MODEL_GLOBAL_DYNAMIC) 2438 Common Joined RejectNegative Enum(tls_model) Var(flag_tls_default) Init(TLS_MODEL_GLOBAL_DYNAMIC)
1818 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model 2439 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model.
1819 2440
1820 Enum 2441 Enum
1821 Name(tls_model) Type(enum tls_model) UnknownError(unknown TLS model %qs) 2442 Name(tls_model) Type(enum tls_model) UnknownError(unknown TLS model %qs)
1822 2443
1823 EnumValue 2444 EnumValue
1831 2452
1832 EnumValue 2453 EnumValue
1833 Enum(tls_model) String(local-exec) Value(TLS_MODEL_LOCAL_EXEC) 2454 Enum(tls_model) String(local-exec) Value(TLS_MODEL_LOCAL_EXEC)
1834 2455
1835 ftoplevel-reorder 2456 ftoplevel-reorder
1836 Common Report Var(flag_toplevel_reorder) Init(2) Optimization 2457 Common Report Var(flag_toplevel_reorder) Init(2)
1837 Reorder top level functions, variables, and asms 2458 Reorder top level functions, variables, and asms.
1838 2459
1839 ftracer 2460 ftracer
1840 Common Report Var(flag_tracer) 2461 Common Report Var(flag_tracer) Optimization
1841 Perform superblock formation via tail duplication 2462 Perform superblock formation via tail duplication.
2463
2464 ftrampolines
2465 Common Report Var(flag_trampolines) Init(0)
2466 For targets that normally need trampolines for nested functions, always
2467 generate them instead of using descriptors.
1842 2468
1843 ; Zero means that floating-point math operations cannot generate a 2469 ; Zero means that floating-point math operations cannot generate a
1844 ; (user-visible) trap. This is the case, for example, in nonstop 2470 ; (user-visible) trap. This is the case, for example, in nonstop
1845 ; IEEE 754 arithmetic. 2471 ; IEEE 754 arithmetic.
1846 ftrapping-math 2472 ftrapping-math
1847 Common Report Var(flag_trapping_math) Init(1) Optimization SetByCombined 2473 Common Report Var(flag_trapping_math) Init(1) Optimization SetByCombined
1848 Assume floating-point operations can trap 2474 Assume floating-point operations can trap.
1849 2475
1850 ftrapv 2476 ftrapv
1851 Common Report Var(flag_trapv) Optimization 2477 Common Report Var(flag_trapv) Optimization
1852 Trap for signed overflow in addition, subtraction and multiplication 2478 Trap for signed overflow in addition, subtraction and multiplication.
1853 2479
1854 ftree-ccp 2480 ftree-ccp
1855 Common Report Var(flag_tree_ccp) Optimization 2481 Common Report Var(flag_tree_ccp) Optimization
1856 Enable SSA-CCP optimization on trees 2482 Enable SSA-CCP optimization on trees.
1857 2483
1858 ftree-bit-ccp 2484 ftree-bit-ccp
1859 Common Report Var(flag_tree_bit_ccp) Optimization 2485 Common Report Var(flag_tree_bit_ccp) Optimization
1860 Enable SSA-BIT-CCP optimization on trees 2486 Enable SSA-BIT-CCP optimization on trees.
1861 2487
1862 ftree-store-ccp 2488 ftree-store-ccp
1863 Common Ignore 2489 Common Ignore
1864 Does nothing. Preserved for backward compatibility. 2490 Does nothing. Preserved for backward compatibility.
1865 2491
1866 ftree-ch 2492 ftree-ch
1867 Common Report Var(flag_tree_ch) Optimization 2493 Common Report Var(flag_tree_ch) Optimization
1868 Enable loop header copying on trees 2494 Enable loop header copying on trees.
2495
2496 ftree-coalesce-inlined-vars
2497 Common Ignore RejectNegative
2498 Does nothing. Preserved for backward compatibility.
2499
2500 ftree-coalesce-vars
2501 Common Report Var(flag_tree_coalesce_vars) Optimization
2502 Enable SSA coalescing of user variables.
1869 2503
1870 ftree-copyrename 2504 ftree-copyrename
1871 Common Report Var(flag_tree_copyrename) Optimization 2505 Common Ignore
1872 Replace SSA temporaries with better names in copies 2506 Does nothing. Preserved for backward compatibility.
1873 2507
1874 ftree-copy-prop 2508 ftree-copy-prop
1875 Common Report Var(flag_tree_copy_prop) Optimization 2509 Common Report Var(flag_tree_copy_prop) Optimization
1876 Enable copy propagation on trees 2510 Enable copy propagation on trees.
1877 2511
1878 ftree-store-copy-prop 2512 ftree-store-copy-prop
1879 Common Ignore 2513 Common Ignore
1880 Does nothing. Preserved for backward compatibility. 2514 Does nothing. Preserved for backward compatibility.
1881 2515
1882 ftree-cselim 2516 ftree-cselim
1883 Common Report Var(flag_tree_cselim) Init(2) Optimization 2517 Common Report Var(flag_tree_cselim) Init(2) Optimization
1884 Transform condition stores into unconditional ones 2518 Transform condition stores into unconditional ones.
1885 2519
1886 ftree-switch-conversion 2520 ftree-switch-conversion
1887 Common Report Var(flag_tree_switch_conversion) Optimization 2521 Common Report Var(flag_tree_switch_conversion) Optimization
1888 Perform conversions of switch initializations. 2522 Perform conversions of switch initializations.
1889 2523
1890 ftree-dce 2524 ftree-dce
1891 Common Report Var(flag_tree_dce) Optimization 2525 Common Report Var(flag_tree_dce) Optimization
1892 Enable SSA dead code elimination optimization on trees 2526 Enable SSA dead code elimination optimization on trees.
1893 2527
1894 ftree-dominator-opts 2528 ftree-dominator-opts
1895 Common Report Var(flag_tree_dom) Optimization 2529 Common Report Var(flag_tree_dom) Optimization
1896 Enable dominator optimizations 2530 Enable dominator optimizations.
2531
2532 ftree-tail-merge
2533 Common Report Var(flag_tree_tail_merge) Optimization
2534 Enable tail merging on trees.
1897 2535
1898 ftree-dse 2536 ftree-dse
1899 Common Report Var(flag_tree_dse) Optimization 2537 Common Report Var(flag_tree_dse) Optimization
1900 Enable dead store elimination 2538 Enable dead store elimination.
1901 2539
1902 ftree-forwprop 2540 ftree-forwprop
1903 Common Report Var(flag_tree_forwprop) Init(1) Optimization 2541 Common Report Var(flag_tree_forwprop) Init(1) Optimization
1904 Enable forward propagation on trees 2542 Enable forward propagation on trees.
1905 2543
1906 ftree-fre 2544 ftree-fre
1907 Common Report Var(flag_tree_fre) Optimization 2545 Common Report Var(flag_tree_fre) Optimization
1908 Enable Full Redundancy Elimination (FRE) on trees 2546 Enable Full Redundancy Elimination (FRE) on trees.
2547
2548 foptimize-strlen
2549 Common Report Var(flag_optimize_strlen) Optimization
2550 Enable string length optimizations on trees.
2551
2552 fisolate-erroneous-paths-dereference
2553 Common Report Var(flag_isolate_erroneous_paths_dereference) Optimization
2554 Detect paths that trigger erroneous or undefined behavior due to
2555 dereferencing a null pointer. Isolate those paths from the main control
2556 flow and turn the statement with erroneous or undefined behavior into a trap.
2557
2558 fisolate-erroneous-paths-attribute
2559 Common Report Var(flag_isolate_erroneous_paths_attribute) Optimization
2560 Detect paths that trigger erroneous or undefined behavior due to a null value
2561 being used in a way forbidden by a returns_nonnull or nonnull
2562 attribute. Isolate those paths from the main control flow and turn the
2563 statement with erroneous or undefined behavior into a trap.
1909 2564
1910 ftree-loop-distribution 2565 ftree-loop-distribution
1911 Common Report Var(flag_tree_loop_distribution) Optimization 2566 Common Report Var(flag_tree_loop_distribution) Optimization
1912 Enable loop distribution on trees 2567 Enable loop distribution on trees.
1913 2568
1914 ftree-loop-distribute-patterns 2569 ftree-loop-distribute-patterns
1915 Common Report Var(flag_tree_loop_distribute_patterns) Optimization 2570 Common Report Var(flag_tree_loop_distribute_patterns) Optimization
1916 Enable loop distribution for patterns transformed into a library call 2571 Enable loop distribution for patterns transformed into a library call.
1917 2572
1918 ftree-loop-im 2573 ftree-loop-im
1919 Common Report Var(flag_tree_loop_im) Init(1) Optimization 2574 Common Report Var(flag_tree_loop_im) Init(1) Optimization
1920 Enable loop invariant motion on trees 2575 Enable loop invariant motion on trees.
1921 2576
1922 ftree-loop-linear 2577 ftree-loop-linear
1923 Common Alias(floop-interchange) 2578 Common Alias(floop-nest-optimize)
1924 Enable loop interchange transforms. Same as -floop-interchange 2579 Enable loop nest transforms. Same as -floop-nest-optimize.
1925 2580
1926 ftree-loop-ivcanon 2581 ftree-loop-ivcanon
1927 Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization 2582 Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
1928 Create canonical induction variables in loops 2583 Create canonical induction variables in loops.
1929 2584
1930 ftree-loop-optimize 2585 ftree-loop-optimize
1931 Common Report Var(flag_tree_loop_optimize) Init(1) Optimization 2586 Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
1932 Enable loop optimizations on tree level 2587 Enable loop optimizations on tree level.
1933 2588
1934 ftree-parallelize-loops= 2589 ftree-parallelize-loops=
1935 Common Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1) 2590 Common Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1) Optimization
1936 Enable automatic parallelization of loops 2591 -ftree-parallelize-loops=<number> Enable automatic parallelization of loops.
1937 2592
1938 ftree-phiprop 2593 ftree-phiprop
1939 Common Report Var(flag_tree_phiprop) Init(1) Optimization 2594 Common Report Var(flag_tree_phiprop) Init(1) Optimization
1940 Enable hoisting loads from conditional pointers. 2595 Enable hoisting loads from conditional pointers.
1941 2596
1942 ftree-pre 2597 ftree-pre
1943 Common Report Var(flag_tree_pre) Optimization 2598 Common Report Var(flag_tree_pre) Optimization
1944 Enable SSA-PRE optimization on trees 2599 Enable SSA-PRE optimization on trees.
2600
2601 ftree-partial-pre
2602 Common Report Var(flag_tree_partial_pre) Optimization
2603 In SSA-PRE optimization on trees, enable partial-partial redundancy elimination.
1945 2604
1946 ftree-pta 2605 ftree-pta
1947 Common Report Var(flag_tree_pta) Init(1) Optimization 2606 Common Report Var(flag_tree_pta) Optimization
1948 Perform function-local points-to analysis on trees. 2607 Perform function-local points-to analysis on trees.
1949 2608
1950 ftree-reassoc 2609 ftree-reassoc
1951 Common Report Var(flag_tree_reassoc) Init(1) Optimization 2610 Common Report Var(flag_tree_reassoc) Init(1) Optimization
1952 Enable reassociation on tree level 2611 Enable reassociation on tree level.
1953 2612
1954 ftree-salias 2613 ftree-salias
1955 Common Ignore 2614 Common Ignore
1956 Does nothing. Preserved for backward compatibility. 2615 Does nothing. Preserved for backward compatibility.
1957 2616
1958 ftree-sink 2617 ftree-sink
1959 Common Report Var(flag_tree_sink) Optimization 2618 Common Report Var(flag_tree_sink) Optimization
1960 Enable SSA code sinking on trees 2619 Enable SSA code sinking on trees.
2620
2621 ftree-slsr
2622 Common Report Var(flag_tree_slsr) Optimization
2623 Perform straight-line strength reduction.
1961 2624
1962 ftree-sra 2625 ftree-sra
1963 Common Report Var(flag_tree_sra) Optimization 2626 Common Report Var(flag_tree_sra) Optimization
1964 Perform scalar replacement of aggregates 2627 Perform scalar replacement of aggregates.
1965 2628
1966 ftree-ter 2629 ftree-ter
1967 Common Report Var(flag_tree_ter) Optimization 2630 Common Report Var(flag_tree_ter) Optimization
1968 Replace temporary expressions in the SSA->normal pass 2631 Replace temporary expressions in the SSA->normal pass.
1969 2632
1970 ftree-lrs 2633 ftree-lrs
1971 Common Report Var(flag_tree_live_range_split) Optimization 2634 Common Report Var(flag_tree_live_range_split) Optimization
1972 Perform live range splitting during the SSA->normal pass 2635 Perform live range splitting during the SSA->normal pass.
1973 2636
1974 ftree-vrp 2637 ftree-vrp
1975 Common Report Var(flag_tree_vrp) Init(0) Optimization 2638 Common Report Var(flag_tree_vrp) Init(0) Optimization
1976 Perform Value Range Propagation on trees 2639 Perform Value Range Propagation on trees.
2640
2641 fsplit-paths
2642 Common Report Var(flag_split_paths) Init(0) Optimization
2643 Split paths leading to loop backedges.
2644
2645 funconstrained-commons
2646 Common Var(flag_unconstrained_commons) Optimization
2647 Assume common declarations may be overridden with ones with a larger
2648 trailing array.
1977 2649
1978 funit-at-a-time 2650 funit-at-a-time
1979 Common Report Var(flag_unit_at_a_time) Init(1) Optimization 2651 Common Report Var(flag_unit_at_a_time) Init(1)
1980 Compile whole compilation unit at a time 2652 Compile whole compilation unit at a time.
1981 2653
1982 funroll-loops 2654 funroll-loops
1983 Common Report Var(flag_unroll_loops) Optimization 2655 Common Report Var(flag_unroll_loops) Optimization
1984 Perform loop unrolling when iteration count is known 2656 Perform loop unrolling when iteration count is known.
1985 2657
1986 funroll-all-loops 2658 funroll-all-loops
1987 Common Report Var(flag_unroll_all_loops) Optimization 2659 Common Report Var(flag_unroll_all_loops) Optimization
1988 Perform loop unrolling for all loops 2660 Perform loop unrolling for all loops.
1989 2661
1990 ; Nonzero means that loop optimizer may assume that the induction variables 2662 ; Nonzero means that loop optimizer may assume that the induction variables
1991 ; that control loops do not overflow and that the loops with nontrivial 2663 ; that control loops do not overflow and that the loops with nontrivial
1992 ; exit condition are not infinite 2664 ; exit condition are not infinite
1993 funsafe-loop-optimizations 2665 funsafe-loop-optimizations
1994 Common Report Var(flag_unsafe_loop_optimizations) Optimization 2666 Common Ignore
1995 Allow loop optimizations to assume that the loops behave in normal way 2667 Does nothing. Preserved for backward compatibility.
1996 2668
1997 fassociative-math 2669 fassociative-math
1998 Common Report Var(flag_associative_math) SetByCombined 2670 Common Report Var(flag_associative_math) SetByCombined Optimization
1999 Allow optimization for floating-point arithmetic which may change the 2671 Allow optimization for floating-point arithmetic which may change the
2000 result of the operation due to rounding. 2672 result of the operation due to rounding.
2001 2673
2002 freciprocal-math 2674 freciprocal-math
2003 Common Report Var(flag_reciprocal_math) SetByCombined 2675 Common Report Var(flag_reciprocal_math) SetByCombined Optimization
2004 Same as -fassociative-math for expressions which include division. 2676 Same as -fassociative-math for expressions which include division.
2005 2677
2006 ; Nonzero means that unsafe floating-point math optimizations are allowed 2678 ; Nonzero means that unsafe floating-point math optimizations are allowed
2007 ; for the sake of speed. IEEE compliance is not guaranteed, and operations 2679 ; for the sake of speed. IEEE compliance is not guaranteed, and operations
2008 ; are allowed to assume that their arguments and results are "normal" 2680 ; are allowed to assume that their arguments and results are "normal"
2009 ; (e.g., nonnegative for SQRT). 2681 ; (e.g., nonnegative for SQRT).
2010 funsafe-math-optimizations 2682 funsafe-math-optimizations
2011 Common Report Var(flag_unsafe_math_optimizations) Optimization SetByCombined 2683 Common Report Var(flag_unsafe_math_optimizations) Optimization SetByCombined
2012 Allow math optimizations that may violate IEEE or ISO standards 2684 Allow math optimizations that may violate IEEE or ISO standards.
2013 2685
2014 funswitch-loops 2686 funswitch-loops
2015 Common Report Var(flag_unswitch_loops) Optimization 2687 Common Report Var(flag_unswitch_loops) Optimization
2016 Perform loop unswitching 2688 Perform loop unswitching.
2689
2690 fsplit-loops
2691 Common Report Var(flag_split_loops) Optimization
2692 Perform loop splitting.
2017 2693
2018 funwind-tables 2694 funwind-tables
2019 Common Report Var(flag_unwind_tables) Optimization 2695 Common Report Var(flag_unwind_tables) Optimization
2020 Just generate unwind tables for exception handling 2696 Just generate unwind tables for exception handling.
2697
2698 fuse-ld=bfd
2699 Common Driver Negative(fuse-ld=gold)
2700 Use the bfd linker instead of the default linker.
2701
2702 fuse-ld=gold
2703 Common Driver Negative(fuse-ld=bfd)
2704 Use the gold linker instead of the default linker.
2021 2705
2022 fuse-linker-plugin 2706 fuse-linker-plugin
2023 Common Undocumented 2707 Common Undocumented Var(flag_use_linker_plugin)
2024 2708
2025 ; Positive if we should track variables, negative if we should run 2709 ; Positive if we should track variables, negative if we should run
2026 ; the var-tracking pass only to discard debug annotations, zero if 2710 ; the var-tracking pass only to discard debug annotations, zero if
2027 ; we're not to run it. When flag_var_tracking == 2 (AUTODETECT_VALUE) it 2711 ; we're not to run it. When flag_var_tracking == 2 (AUTODETECT_VALUE) it
2028 ; will be set according to optimize, debug_info_level and debug_hooks 2712 ; will be set according to optimize, debug_info_level and debug_hooks
2029 ; in process_options (). 2713 ; in process_options ().
2030 fvar-tracking 2714 fvar-tracking
2031 Common Report Var(flag_var_tracking) Init(2) Optimization 2715 Common Report Var(flag_var_tracking) Init(2) PerFunction
2032 Perform variable tracking 2716 Perform variable tracking.
2033 2717
2034 ; Positive if we should track variables at assignments, negative if 2718 ; Positive if we should track variables at assignments, negative if
2035 ; we should run the var-tracking pass only to discard debug 2719 ; we should run the var-tracking pass only to discard debug
2036 ; annotations. When flag_var_tracking_assignments == 2720 ; annotations. When flag_var_tracking_assignments ==
2037 ; AUTODETECT_VALUE it will be set according to flag_var_tracking. 2721 ; AUTODETECT_VALUE it will be set according to flag_var_tracking.
2038 fvar-tracking-assignments 2722 fvar-tracking-assignments
2039 Common Report Var(flag_var_tracking_assignments) Init(2) Optimization 2723 Common Report Var(flag_var_tracking_assignments) Init(2) PerFunction
2040 Perform variable tracking by annotating assignments 2724 Perform variable tracking by annotating assignments.
2041 2725
2042 ; Nonzero if we should toggle flag_var_tracking_assignments after 2726 ; Nonzero if we should toggle flag_var_tracking_assignments after
2043 ; processing options and computing its default. */ 2727 ; processing options and computing its default. */
2044 fvar-tracking-assignments-toggle 2728 fvar-tracking-assignments-toggle
2045 Common Report Var(flag_var_tracking_assignments_toggle) Optimization 2729 Common Report Var(flag_var_tracking_assignments_toggle) PerFunction
2046 Toggle -fvar-tracking-assignments 2730 Toggle -fvar-tracking-assignments.
2047 2731
2732 ; Positive if we should track uninitialized variables, negative if
2733 ; we should run the var-tracking pass only to discard debug
2734 ; annotations. When flag_var_tracking_uninit == AUTODETECT_VALUE it
2735 ; will be set according to flag_var_tracking.
2048 fvar-tracking-uninit 2736 fvar-tracking-uninit
2049 Common Report Var(flag_var_tracking_uninit) Optimization 2737 Common Report Var(flag_var_tracking_uninit) PerFunction
2050 Perform variable tracking and also tag variables that are uninitialized 2738 Perform variable tracking and also tag variables that are uninitialized.
2051 2739
2740 ; Alias to enable both -ftree-loop-vectorize and -ftree-slp-vectorize.
2052 ftree-vectorize 2741 ftree-vectorize
2053 Common Report Var(flag_tree_vectorize) Optimization 2742 Common Report Optimization
2054 Enable loop vectorization on trees 2743 Enable vectorization on trees.
2744
2745 ftree-vectorizer-verbose=
2746 Common Joined RejectNegative Ignore
2747 Does nothing. Preserved for backward compatibility.
2748
2749 ftree-loop-vectorize
2750 Common Report Var(flag_tree_loop_vectorize) Optimization EnabledBy(ftree-vectorize)
2751 Enable loop vectorization on trees.
2055 2752
2056 ftree-slp-vectorize 2753 ftree-slp-vectorize
2057 Common Report Var(flag_tree_slp_vectorize) Init(2) Optimization 2754 Common Report Var(flag_tree_slp_vectorize) Optimization EnabledBy(ftree-vectorize)
2058 Enable basic block vectorization (SLP) on trees 2755 Enable basic block vectorization (SLP) on trees.
2756
2757 fvect-cost-model=
2758 Common Joined RejectNegative Enum(vect_cost_model) Var(flag_vect_cost_model) Init(VECT_COST_MODEL_DEFAULT) Optimization
2759 Specifies the cost model for vectorization.
2760 -fvect-cost-model=[unlimited|dynamic|cheap] Specifies the cost model for vectorization.
2761
2762 fsimd-cost-model=
2763 Common Joined RejectNegative Enum(vect_cost_model) Var(flag_simd_cost_model) Init(VECT_COST_MODEL_UNLIMITED) Optimization
2764 -fsimd-cost-model=[unlimited|dynamic|cheap] Specifies the vectorization cost model for code marked with a simd directive.
2765
2766 Enum
2767 Name(vect_cost_model) Type(enum vect_cost_model) UnknownError(unknown vectorizer cost model %qs)
2768
2769 EnumValue
2770 Enum(vect_cost_model) String(unlimited) Value(VECT_COST_MODEL_UNLIMITED)
2771
2772 EnumValue
2773 Enum(vect_cost_model) String(dynamic) Value(VECT_COST_MODEL_DYNAMIC)
2774
2775 EnumValue
2776 Enum(vect_cost_model) String(cheap) Value(VECT_COST_MODEL_CHEAP)
2059 2777
2060 fvect-cost-model 2778 fvect-cost-model
2061 Common Report Var(flag_vect_cost_model) Optimization 2779 Common Alias(fvect-cost-model=,dynamic,unlimited)
2062 Enable use of cost model in vectorization 2780 Enables the dynamic vectorizer cost model. Preserved for backward compatibility.
2063 2781
2064 ftree-vect-loop-version 2782 ftree-vect-loop-version
2065 Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization 2783 Common Ignore
2066 Enable loop versioning when doing loop vectorization on trees 2784 Does nothing. Preserved for backward compatibility.
2067
2068 ftree-vectorizer-verbose=
2069 Common RejectNegative Joined UInteger
2070 -ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer
2071 2785
2072 ftree-scev-cprop 2786 ftree-scev-cprop
2073 Common Report Var(flag_tree_scev_cprop) Init(1) Optimization 2787 Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
2074 Enable copy propagation of scalar-evolution information. 2788 Enable copy propagation of scalar-evolution information.
2075 2789
2079 ; generated assembly code (perhaps while debugging the compiler itself). 2793 ; generated assembly code (perhaps while debugging the compiler itself).
2080 ; -fno-verbose-asm, the default, causes the extra information 2794 ; -fno-verbose-asm, the default, causes the extra information
2081 ; to not be added and is useful when comparing two assembler files. 2795 ; to not be added and is useful when comparing two assembler files.
2082 fverbose-asm 2796 fverbose-asm
2083 Common Report Var(flag_verbose_asm) 2797 Common Report Var(flag_verbose_asm)
2084 Add extra commentary to assembler output 2798 Add extra commentary to assembler output.
2085 2799
2086 fvisibility= 2800 fvisibility=
2087 Common Joined RejectNegative Enum(symbol_visibility) Var(default_visibility) Init(VISIBILITY_DEFAULT) 2801 Common Joined RejectNegative Enum(symbol_visibility) Var(default_visibility) Init(VISIBILITY_DEFAULT)
2088 -fvisibility=[default|internal|hidden|protected] Set the default symbol visibility 2802 -fvisibility=[default|internal|hidden|protected] Set the default symbol visibility.
2089 2803
2090 Enum 2804 Enum
2091 Name(symbol_visibility) Type(enum symbol_visibility) UnknownError(unrecognized visibility value %qs) 2805 Name(symbol_visibility) Type(enum symbol_visibility) UnknownError(unrecognized visibility value %qs)
2092 2806
2093 EnumValue 2807 EnumValue
2100 Enum(symbol_visibility) String(hidden) Value(VISIBILITY_HIDDEN) 2814 Enum(symbol_visibility) String(hidden) Value(VISIBILITY_HIDDEN)
2101 2815
2102 EnumValue 2816 EnumValue
2103 Enum(symbol_visibility) String(protected) Value(VISIBILITY_PROTECTED) 2817 Enum(symbol_visibility) String(protected) Value(VISIBILITY_PROTECTED)
2104 2818
2819 fvtable-verify=
2820 Common Joined RejectNegative Enum(vtv_priority) Var(flag_vtable_verify) Init(VTV_NO_PRIORITY)
2821 Validate vtable pointers before using them.
2822
2823 Enum
2824 Name(vtv_priority) Type(enum vtv_priority) UnknownError(unknown vtable verify initialization priority %qs)
2825
2826 EnumValue
2827 Enum(vtv_priority) String(none) Value(VTV_NO_PRIORITY)
2828
2829 EnumValue
2830 Enum(vtv_priority) String(std) Value(VTV_STANDARD_PRIORITY)
2831
2832 EnumValue
2833 Enum(vtv_priority) String(preinit) Value(VTV_PREINIT_PRIORITY)
2834
2835 fvtv-counts
2836 Common Var(flag_vtv_counts)
2837 Output vtable verification counters.
2838
2839 fvtv-debug
2840 Common Var(flag_vtv_debug)
2841 Output vtable verification pointer sets information.
2842
2105 fvpt 2843 fvpt
2106 Common Report Var(flag_value_profile_transformations) Optimization 2844 Common Report Var(flag_value_profile_transformations) Optimization
2107 Use expression value profiles in optimizations 2845 Use expression value profiles in optimizations.
2108 2846
2109 fweb 2847 fweb
2110 Common Report Var(flag_web) Init(2) Optimization 2848 Common Report Var(flag_web) Init(2) Optimization
2111 Construct webs and split unrelated uses of single variable 2849 Construct webs and split unrelated uses of single variable.
2112 2850
2113 ftree-builtin-call-dce 2851 ftree-builtin-call-dce
2114 Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization 2852 Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
2115 Enable conditional dead code elimination for builtin calls 2853 Enable conditional dead code elimination for builtin calls.
2116 2854
2117 fwhole-program 2855 fwhole-program
2118 Common Report Var(flag_whole_program) Init(0) Optimization 2856 Common Report Var(flag_whole_program) Init(0)
2119 Perform whole program optimizations 2857 Perform whole program optimizations.
2120 2858
2121 fwrapv 2859 fwrapv
2122 Common Report Var(flag_wrapv) Optimization 2860 Common Report Var(flag_wrapv) Optimization
2123 Assume signed arithmetic overflow wraps around 2861 Assume signed arithmetic overflow wraps around.
2124 2862
2125 fzero-initialized-in-bss 2863 fzero-initialized-in-bss
2126 Common Report Var(flag_zero_initialized_in_bss) Init(1) 2864 Common Report Var(flag_zero_initialized_in_bss) Init(1)
2127 Put zero initialized data in the bss section 2865 Put zero initialized data in the bss section.
2128 2866
2129 g 2867 g
2130 Common JoinedOrMissing 2868 Common Driver RejectNegative JoinedOrMissing
2131 Generate debug information in default format 2869 Generate debug information in default format.
2132 2870
2133 gcoff 2871 gcoff
2134 Common JoinedOrMissing Negative(gdwarf-) 2872 Common Driver JoinedOrMissing Negative(gdwarf)
2135 Generate debug information in COFF format 2873 Generate debug information in COFF format.
2874
2875 gcolumn-info
2876 Common Driver Var(debug_column_info,1) Init(1)
2877 Record DW_AT_decl_column and DW_AT_call_column in DWARF.
2878
2879 gdwarf
2880 Common Driver JoinedOrMissing Negative(gdwarf-)
2881 Generate debug information in default version of DWARF format.
2136 2882
2137 gdwarf- 2883 gdwarf-
2138 Common Joined UInteger Var(dwarf_version) Init(2) Negative(gstabs) 2884 Common Driver Joined UInteger Var(dwarf_version) Init(4) Negative(gstabs)
2139 Generate debug information in DWARF v2 (or later) format 2885 Generate debug information in DWARF v2 (or later) format.
2140 2886
2141 ggdb 2887 ggdb
2142 Common JoinedOrMissing 2888 Common Driver JoinedOrMissing
2143 Generate debug information in default extended format 2889 Generate debug information in default extended format.
2890
2891 gno-
2892 RejectNegative Joined Undocumented
2893 ; Catch the gno- prefix, so it doesn't backtrack to g<level>.
2894
2895 gno-pubnames
2896 Common Driver Negative(gpubnames) Var(debug_generate_pub_sections, 0) Init(-1)
2897 Don't generate DWARF pubnames and pubtypes sections.
2898
2899 gpubnames
2900 Common Driver Negative(ggnu-pubnames) Var(debug_generate_pub_sections, 1)
2901 Generate DWARF pubnames and pubtypes sections.
2902
2903 ggnu-pubnames
2904 Common Driver Negative(gno-pubnames) Var(debug_generate_pub_sections, 2)
2905 Generate DWARF pubnames and pubtypes sections with GNU extensions.
2906
2907 grecord-gcc-switches
2908 Common Driver Var(dwarf_record_gcc_switches) Init(1)
2909 Record gcc command line switches in DWARF DW_AT_producer.
2910
2911 gsplit-dwarf
2912 Common Driver Var(dwarf_split_debug_info) Init(0)
2913 Generate debug information in separate .dwo files.
2144 2914
2145 gstabs 2915 gstabs
2146 Common JoinedOrMissing Negative(gstabs+) 2916 Common Driver JoinedOrMissing Negative(gstabs+)
2147 Generate debug information in STABS format 2917 Generate debug information in STABS format.
2148 2918
2149 gstabs+ 2919 gstabs+
2150 Common JoinedOrMissing Negative(gvms) 2920 Common Driver JoinedOrMissing Negative(gvms)
2151 Generate debug information in extended STABS format 2921 Generate debug information in extended STABS format.
2152
2153 gno-strict-dwarf
2154 Common RejectNegative Var(dwarf_strict,0) Init(-1)
2155 Emit DWARF additions beyond selected version
2156 2922
2157 gstrict-dwarf 2923 gstrict-dwarf
2158 Common Report RejectNegative Var(dwarf_strict,1) 2924 Common Driver Report Var(dwarf_strict) Init(0)
2159 Don't emit DWARF additions beyond selected version 2925 Don't emit DWARF additions beyond selected version.
2160 2926
2161 gtoggle 2927 gtoggle
2162 Common Report Var(flag_gtoggle) 2928 Common Driver Report Var(flag_gtoggle)
2163 Toggle debug information generation 2929 Toggle debug information generation.
2164 2930
2165 gvms 2931 gvms
2166 Common JoinedOrMissing Negative(gxcoff) 2932 Common Driver JoinedOrMissing Negative(gxcoff)
2167 Generate debug information in VMS format 2933 Generate debug information in VMS format.
2168 2934
2169 gxcoff 2935 gxcoff
2170 Common JoinedOrMissing Negative(gxcoff+) 2936 Common Driver JoinedOrMissing Negative(gxcoff+)
2171 Generate debug information in XCOFF format 2937 Generate debug information in XCOFF format.
2172 2938
2173 gxcoff+ 2939 gxcoff+
2174 Common JoinedOrMissing Negative(gcoff) 2940 Common Driver JoinedOrMissing Negative(gcoff)
2175 Generate debug information in extended XCOFF format 2941 Generate debug information in extended XCOFF format.
2942
2943 Enum
2944 Name(compressed_debug_sections) Type(int)
2945
2946 ; Since -gz= is completely handled in specs, the values aren't used and we
2947 ; assign arbitrary constants.
2948 EnumValue
2949 Enum(compressed_debug_sections) String(none) Value(0)
2950
2951 EnumValue
2952 Enum(compressed_debug_sections) String(zlib) Value(1)
2953
2954 EnumValue
2955 Enum(compressed_debug_sections) String(zlib-gnu) Value(2)
2956
2957 gz
2958 Common Driver
2959 Generate compressed debug sections.
2960
2961 gz=
2962 Common Driver RejectNegative Joined Enum(compressed_debug_sections)
2963 -gz=<format> Generate compressed debug sections in format <format>.
2176 2964
2177 h 2965 h
2178 Driver Joined Separate 2966 Driver Joined Separate
2179 2967
2180 iplugindir= 2968 iplugindir=
2181 Common Joined Var(plugindir_string) Init(0) 2969 Common Joined Var(plugindir_string) Init(0)
2182 -iplugindir=<dir> Set <dir> to be the default plugin directory 2970 -iplugindir=<dir> Set <dir> to be the default plugin directory.
2971
2972 imultiarch
2973 Common Joined Separate RejectDriver Var(imultiarch) Init(0)
2974 -imultiarch <dir> Set <dir> to be the multiarch include subdirectory.
2183 2975
2184 l 2976 l
2185 Driver Joined Separate 2977 Driver Joined Separate
2186 2978
2187 n 2979 n
2199 nostdlib 2991 nostdlib
2200 Driver 2992 Driver
2201 2993
2202 o 2994 o
2203 Common Driver Joined Separate Var(asm_file_name) MissingArgError(missing filename after %qs) 2995 Common Driver Joined Separate Var(asm_file_name) MissingArgError(missing filename after %qs)
2204 -o <file> Place output into <file> 2996 -o <file> Place output into <file>.
2205 2997
2206 p 2998 p
2207 Common Var(profile_flag) 2999 Common Var(profile_flag)
2208 Enable function profiling 3000 Enable function profiling.
2209 3001
2210 pass-exit-codes 3002 pass-exit-codes
2211 Driver Var(pass_exit_codes) 3003 Driver Var(pass_exit_codes)
2212 3004
2213 pedantic 3005 pedantic
2214 Common Var(pedantic) 3006 Common Alias(Wpedantic)
2215 Issue warnings needed for strict compliance to the standard
2216 3007
2217 pedantic-errors 3008 pedantic-errors
2218 Common Var(flag_pedantic_errors) 3009 Common Var(flag_pedantic_errors)
2219 Like -pedantic but issue them as errors 3010 Like -pedantic but issue them as errors.
2220 3011
2221 pg 3012 pg
2222 Driver 3013 Driver
2223 3014
2224 pipe 3015 pipe
2237 Driver Var(print_multi_lib) 3028 Driver Var(print_multi_lib)
2238 3029
2239 print-multi-os-directory 3030 print-multi-os-directory
2240 Driver Var(print_multi_os_directory) 3031 Driver Var(print_multi_os_directory)
2241 3032
3033 print-multiarch
3034 Driver Var(print_multiarch)
3035
2242 print-prog-name= 3036 print-prog-name=
2243 Driver JoinedOrMissing Var(print_prog_name) 3037 Driver JoinedOrMissing Var(print_prog_name)
2244 3038
2245 print-search-dirs 3039 print-search-dirs
2246 Driver Var(print_search_dirs) 3040 Driver Var(print_search_dirs)
2251 print-sysroot-headers-suffix 3045 print-sysroot-headers-suffix
2252 Driver Var(print_sysroot_headers_suffix) 3046 Driver Var(print_sysroot_headers_suffix)
2253 3047
2254 quiet 3048 quiet
2255 Common Var(quiet_flag) RejectDriver 3049 Common Var(quiet_flag) RejectDriver
2256 Do not display functions compiled or elapsed time 3050 Do not display functions compiled or elapsed time.
2257 3051
2258 r 3052 r
2259 Driver 3053 Driver
2260 3054
2261 s 3055 s
2283 Driver 3077 Driver
2284 ; C option, but driver must not handle as "-u ndef". 3078 ; C option, but driver must not handle as "-u ndef".
2285 3079
2286 v 3080 v
2287 Common Driver Var(verbose_flag) 3081 Common Driver Var(verbose_flag)
2288 Enable verbose output 3082 Enable verbose output.
2289 3083
2290 version 3084 version
2291 Common Var(version_flag) RejectDriver 3085 Common Var(version_flag) RejectDriver
2292 Display the compiler's version 3086 Display the compiler's version.
2293 3087
2294 w 3088 w
2295 Common Var(inhibit_warnings) 3089 Common Var(inhibit_warnings)
2296 Suppress warnings 3090 Suppress warnings.
2297 3091
2298 wrapper 3092 wrapper
2299 Driver Separate Var(wrapper_string) 3093 Driver Separate Var(wrapper_string)
2300 3094
2301 x 3095 x
2302 Driver Joined Separate 3096 Driver Joined Separate
2303 3097
2304 shared 3098 shared
2305 Common RejectNegative Negative(pie) 3099 Driver RejectNegative Negative(static-pie)
2306 Create a shared library 3100 Create a shared library.
2307 3101
2308 shared-libgcc 3102 shared-libgcc
2309 Driver 3103 Driver
2310 3104
2311 specs 3105 specs
2329 3123
2330 static-libgo 3124 static-libgo
2331 Driver 3125 Driver
2332 ; Documented for Go, but always accepted by driver. 3126 ; Documented for Go, but always accepted by driver.
2333 3127
3128 static-libasan
3129 Driver
3130
3131 static-libtsan
3132 Driver
3133
3134 static-liblsan
3135 Driver
3136
3137 static-libubsan
3138 Driver
3139
2334 symbolic 3140 symbolic
2335 Driver 3141 Driver
2336 3142
3143 no-pie
3144 Driver RejectNegative Negative(shared)
3145 Don't create a dynamically linked position independent executable.
3146
2337 pie 3147 pie
2338 Common RejectNegative Negative(shared) 3148 Driver RejectNegative Negative(no-pie)
2339 Create a position independent executable 3149 Create a dynamically linked position independent executable.
3150
3151 static-pie
3152 Driver RejectNegative Negative(pie)
3153 Create a static position independent executable.
2340 3154
2341 z 3155 z
2342 Driver Joined Separate 3156 Driver Joined Separate
2343 3157
3158 fipa-ra
3159 Common Report Var(flag_ipa_ra) Optimization
3160 Use caller save register across calls if possible.
3161
2344 ; This comment is to ensure we retain the blank line above. 3162 ; This comment is to ensure we retain the blank line above.