; Options for the language- and target-independent parts of the compiler.
-; Copyright (C) 2003-2014 Free Software Foundation, Inc.
+; Copyright (C) 2003-2015 Free Software Foundation, Inc.
;
; This file is part of GCC.
;
Variable
int flag_generate_lto
+; Nonzero if we should write GIMPLE bytecode for offload compilation.
+Variable
+int flag_generate_offload = 0
+
; True to warn about any objects definitions whose size is larger
; than N bytes. Also want about function definitions whose returned
; values are larger than N bytes, where N is 'larger_than_size'.
Common Var(warn_array_bounds) Warning
Warn if an array is accessed out of bounds
+Warray-bounds=
+Common Joined RejectNegative UInteger Var(warn_array_bounds) Warning
+Warn if an array is accessed out of bounds
+
Wattributes
Common Var(warn_attributes) Init(1) Warning
Warn about inappropriate attribute usage
Common Var(warn_overflow) Init(1) Warning
Warn about overflow in arithmetic expressions
+Wlto-type-mismatch
+Common Var(warn_lto_type_mismatch) Init(1) Warning
+During link time optimization warn about mismatched types of global declarations
+
Wpacked
Common Var(warn_packed) Warning
Warn when the packed attribute has no effect on struct layout
;
; 1: The version of the ABI first used in G++ 3.2. No longer selectable.
;
-; 2: The version of the ABI first used in G++ 3.4 (and current default).
+; 2: The version of the ABI first used in G++ 3.4, and the default
+; until GCC 4.9.
;
; 3: The version of the ABI that fixes the missing underscore
; in template non-type arguments of pointer type.
;
; 8: The version of the ABI that corrects the substitution behavior of
; function types with function-cv-qualifiers.
-; First selectable in G++ 4.9.
+; First selectable in G++ 4.9 and default in G++ 5.
+;
+; 9: The version of the ABI that mangles attributes that affect type
+; identity, such as ia32 calling convention attributes (stdcall, etc.)
+; Default in G++ 6 (set in c_common_post_options).
;
; Additional positive integers will be assigned as new versions of
; the ABI become the default version of the ABI.
Common Joined RejectNegative Var(common_deferred_options) Defer
-fasan-shadow-offset=<number> Use custom shadow memory offset.
+fsanitize-sections=
+Common Joined RejectNegative Var(common_deferred_options) Defer
+-fsanitize-sections=<sec1,sec2,...> Sanitize global variables
+in user-defined sections.
+
fsanitize-recover=
Common Report Joined
After diagnosing undefined behavior attempt to continue execution
This switch is deprecated; use -fsanitize-recover= instead
fsanitize-undefined-trap-on-error
-Common Report Var(flag_sanitize_undefined_trap_on_error) Init(0)
+Common Driver Report Var(flag_sanitize_undefined_trap_on_error) Init(0)
Use trap instead of a library function for undefined behavior sanitization
fasynchronous-unwind-tables
Generate unwind tables that are exact at each instruction boundary
fauto-inc-dec
-Common Report Var(flag_auto_inc_dec) Init(1)
+Common Report Var(flag_auto_inc_dec) Init(1) Optimization
Generate auto-inc/dec instructions
fauto-profile
-Common Report Var(flag_auto_profile) Optimization
+Common Report Var(flag_auto_profile)
Use sample profile information for call graph node weights. The default
profile file is fbdata.afdo in 'pwd'.
Looks for opportunities to reduce stack adjustments and stack references.
fcommon
-Common Report Var(flag_no_common,0) Optimization
+Common Report Var(flag_no_common,0)
Do not put uninitialized globals in the common section
fcompare-debug
Complex multiplication and division follow Fortran rules
fdata-sections
-Common Report Var(flag_data_sections) Optimization
+Common Report Var(flag_data_sections)
Place data items into their own section
fdbg-cnt-list
Attempt to fill delay slots of branch instructions
fdelete-dead-exceptions
-Common Report Var(flag_delete_dead_exceptions) Init(0)
+Common Report Var(flag_delete_dead_exceptions) Init(0) Optimization
Delete dead instructions that may throw exceptions
fdelete-null-pointer-checks
-Common Report Var(flag_delete_null_pointer_checks) Init(1) Optimization
+Common Report Var(flag_delete_null_pointer_checks) Init(-1) Optimization
Delete useless null pointer checks
+fdevirtualize-at-ltrans
+Common Report Var(flag_ltrans_devirtualize)
+Stream extra data to support more aggressive devirtualization in LTO local transformation mode
+
fdevirtualize-speculatively
Common Report Var(flag_devirtualize_speculatively) Optimization
Perform speculative devirtualization
;
fdiagnostics-color=
-Common Joined RejectNegative Var(flag_diagnostics_show_color) Enum(diagnostic_color_rule) Init(DIAGNOSTICS_COLOR_NO)
+Driver Common Joined RejectNegative Var(flag_diagnostics_show_color) Enum(diagnostic_color_rule) Init(DIAGNOSTICS_COLOR_NO)
-fdiagnostics-color=[never|always|auto] Colorize diagnostics
; Required for these enum values.
Collect and dump debug information into temporary file if ICE in C/C++
compiler occured.
+fdump-internal-locations
+Common Var(flag_dump_locations) Init(0)
+Dump detailed information on GCC's internal representation of source code locations
+
fdump-passes
Common Var(flag_dump_passes) Init(0)
Dump optimization passes
feliminate-unused-debug-symbols
Common Report Var(flag_debug_only_used_symbols)
-Perform unused type elimination in debug info
+Perform unused symbol elimination in debug info
feliminate-unused-debug-types
Common Report Var(flag_eliminate_unused_debug_types) Init(1)
Perform a forward propagation pass on RTL
ffp-contract=
-Common Joined RejectNegative Enum(fp_contract_mode) Var(flag_fp_contract_mode) Init(FP_CONTRACT_FAST)
+Common Joined RejectNegative Enum(fp_contract_mode) Var(flag_fp_contract_mode) Init(FP_CONTRACT_FAST) Optimization
-ffp-contract=[off|on|fast] Perform floating-point expression contraction.
Enum
; Used for compiling the Unix kernel, where strange substitutions are
; done on the assembly output.
ffunction-cse
-Common Report Var(flag_no_function_cse,0)
+Common Report Var(flag_no_function_cse,0) Optimization
Allow function addresses to be held in registers
ffunction-sections
; This option is not documented yet as its semantics will change.
fgraphite
-Common Report Var(flag_graphite)
+Common Report Var(flag_graphite) Optimization
Enable in and out of Graphite representation
fgraphite-identity
Common Report Var(flag_loop_block) Optimization
Enable Loop Blocking transformation
+floop-unroll-and-jam
+Common Report Var(flag_loop_unroll_jam) Optimization
+Enable Loop Unroll Jam transformation
+
fgnu-tm
Common Report Var(flag_tm)
Enable support for GNU transactional memory
Enable the ISL based loop nest optimizer
fstrict-volatile-bitfields
-Common Report Var(flag_strict_volatile_bitfields) Init(-1)
+Common Report Var(flag_strict_volatile_bitfields) Init(-1) Optimization
Force bitfield accesses to match their type width
fguess-branch-probability
Perform conversion of conditional jumps to conditional execution
fstack-reuse=
-Common Joined RejectNegative Enum(stack_reuse_level) Var(flag_stack_reuse) Init(SR_ALL)
+Common Joined RejectNegative Enum(stack_reuse_level) Var(flag_stack_reuse) Init(SR_ALL) Optimization
-fstack-reuse=[all|named_vars|none] Set stack reuse level for local variables.
Enum
Do not generate .size directives
findirect-inlining
-Common Report Var(flag_indirect_inlining)
+Common Report Var(flag_indirect_inlining) Optimization
Perform indirect inlining
; General flag to enable inlining. Specifying -fno-inline will disable
Common Report Var(flag_ipa_cp_clone) Optimization
Perform cloning to make Interprocedural constant propagation stronger
+fipa-cp-alignment
+Common Report Var(flag_ipa_cp_alignment) Optimization
+Perform alignment discovery and propagation to make Interprocedural constant propagation stronger
+
fipa-profile
Common Report Var(flag_ipa_profile) Init(0) Optimization
Perform interprocedural profile propagation
Perform Identical Code Folding for functions
fipa-icf-variables
-Common Report Var(flag_ipa_icf_variables) Optimization
+Common Report Var(flag_ipa_icf_variables)
Perform Identical Code Folding for variables
fipa-reference
Does nothing. Preserved for backward compatibility.
fira-algorithm=
-Common Joined RejectNegative Enum(ira_algorithm) Var(flag_ira_algorithm) Init(IRA_ALGORITHM_CB)
+Common Joined RejectNegative Enum(ira_algorithm) Var(flag_ira_algorithm) Init(IRA_ALGORITHM_CB) Optimization
-fira-algorithm=[CB|priority] Set the used IRA algorithm
Enum
Enum(ira_algorithm) String(priority) Value(IRA_ALGORITHM_PRIORITY)
fira-region=
-Common Joined RejectNegative Enum(ira_region) Var(flag_ira_region) Init(IRA_REGION_AUTODETECT)
+Common Joined RejectNegative Enum(ira_region) Var(flag_ira_region) Init(IRA_REGION_AUTODETECT) Optimization
-fira-region=[one|all|mixed] Set regions for IRA
Enum
in RTL loop optimizations.
fira-share-save-slots
-Common Report Var(flag_ira_share_save_slots) Init(1)
+Common Report Var(flag_ira_share_save_slots) Init(1) Optimization
Share slots for saving different hard registers.
fira-share-spill-slots
-Common Report Var(flag_ira_share_spill_slots) Init(1)
+Common Report Var(flag_ira_share_spill_slots) Init(1) Optimization
Share stack slots for spilled pseudo-registers.
fira-verbose=
; string constants and constants from constant pool, if 2 also constant
; variables.
fmerge-all-constants
-Common Report Var(flag_merge_constants,2) Init(1) Optimization
+Common Report Var(flag_merge_constants,2) Init(1)
Attempt to merge identical constants and constant variables
fmerge-constants
-Common Report Var(flag_merge_constants,1) Optimization
+Common Report Var(flag_merge_constants,1)
Attempt to merge identical constants across compilation units
fmerge-debug-strings
Perform SMS based modulo scheduling before the first scheduling pass
fmodulo-sched-allow-regmoves
-Common Report Var(flag_modulo_sched_allow_regmoves)
+Common Report Var(flag_modulo_sched_allow_regmoves) Optimization
Perform SMS based modulo scheduling with register moves allowed
fmove-loop-invariants
Optimize sibling and tail recursive calls
fpartial-inlining
-Common Report Var(flag_partial_inlining)
+Common Report Var(flag_partial_inlining) Optimization
Perform partial inlining
fpre-ipa-mem-report
Generate position-independent code if possible (large mode)
fPIE
-Common Report Var(flag_pie,2) Negative(fpic)
+Common Report Var(flag_pie,2) Negative(fpic) Init(-1)
Generate position-independent code for executables if possible (large mode)
fpic
Generate position-independent code if possible (small mode)
fpie
-Common Report Var(flag_pie,1) Negative(fPIC)
+Common Report Var(flag_pie,1) Negative(fPIC) Init(-1)
Generate position-independent code for executables if possible (small mode)
+fplt
+Common Report Var(flag_plt) Init(1) Optimization
+Use PLT for PIC calls (-fno-plt: load the address from GOT at call site)
+
fplugin=
Common Joined RejectNegative Var(common_deferred_options) Defer
Specify a plugin to load
Common Ignore
Does nothing. Preserved for backward compatibility.
+flifetime-dse
+Common Report Var(flag_lifetime_dse) Init(1) Optimization
+Tell DSE that the storage for a C++ object is dead when the constructor
+starts and when the destructor finishes.
+
flive-range-shrinkage
Common Report Var(flag_live_range_shrinkage) Init(0) Optimization
Relief of register pressure through live range shrinkage
Common Report Var(flag_rename_registers) Init(2) Optimization
Perform a register renaming optimization pass
+fschedule-fusion
+Common Report Var(flag_schedule_fusion) Init(2) Optimization
+Perform a target dependent instruction fusion optimization pass
+
freorder-blocks
Common Report Var(flag_reorder_blocks) Optimization
Reorder basic blocks to improve code placement
Allow premature scheduling of queued insns
fsched-stalled-insns=
-Common RejectNegative Joined UInteger
+Common RejectNegative Joined UInteger Optimization
-fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled
; sched_stalled_insns_dep controls how many recently scheduled cycles will
Set dependence distance checking in premature scheduling of queued insns
fsched-stalled-insns-dep=
-Common RejectNegative Joined UInteger
+Common RejectNegative Joined UInteger Optimization
-fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns
fsched-group-heuristic
Common Report Var(flag_ssa_phiopt) Optimization
Optimize conditional patterns using SSA PHI nodes
+fstdarg-opt
+Common Report Var(flag_stdarg_opt) Init(1) Optimization
+Optimize amount of stdarg registers saved to stack at start of function
+
fvariable-expansion-in-unroller
Common Report Var(flag_variable_expansion_in_unroller) Optimization
Apply variable expansion when loops are unrolled
Common Report RejectNegative Var(flag_stack_protect, 3)
Use a smart stack protection method for certain functions
+fstack-protector-explicit
+Common Report RejectNegative Var(flag_stack_protect, 4)
+Use stack protection method only for functions with the stack_protect attribute
+
fstack-usage
Common RejectNegative Var(flag_stack_usage)
Output stack usage information on a per-function basis
Assume strict aliasing rules apply
fstrict-overflow
-Common Report Var(flag_strict_overflow)
+Common Report Var(flag_strict_overflow) Optimization
Treat signed overflow as undefined
fsync-libcalls
Enum(tls_model) String(local-exec) Value(TLS_MODEL_LOCAL_EXEC)
ftoplevel-reorder
-Common Report Var(flag_toplevel_reorder) Init(2) Optimization
+Common Report Var(flag_toplevel_reorder) Init(2)
Reorder top level functions, variables, and asms
ftracer
-Common Report Var(flag_tracer)
+Common Report Var(flag_tracer) Optimization
Perform superblock formation via tail duplication
; Zero means that floating-point math operations cannot generate a
fisolate-erroneous-paths-dereference
Common Report Var(flag_isolate_erroneous_paths_dereference) Optimization
-Detect paths which trigger erroneous or undefined behaviour due to
-dereferencing a NULL pointer. Isolate those paths from the main control
-flow and turn the statement with erroneous or undefined behaviour into a trap.
+Detect paths that trigger erroneous or undefined behavior due to
+dereferencing a null pointer. Isolate those paths from the main control
+flow and turn the statement with erroneous or undefined behavior into a trap.
fisolate-erroneous-paths-attribute
Common Report Var(flag_isolate_erroneous_paths_attribute) Optimization
-Detect paths which trigger erroneous or undefined behaviour due a NULL value
-being used in a way which is forbidden by a returns_nonnull or nonnull
+Detect paths that trigger erroneous or undefined behavior due a null value
+being used in a way forbidden by a returns_nonnull or nonnull
attribute. Isolate those paths from the main control flow and turn the
-statement with erroneous or undefined behaviour into a trap.
+statement with erroneous or undefined behavior into a trap.
ftree-loop-distribution
Common Report Var(flag_tree_loop_distribution) Optimization
Enable loop optimizations on tree level
ftree-parallelize-loops=
-Common Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1)
+Common Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1) Optimization
Enable automatic parallelization of loops
ftree-phiprop
Perform Value Range Propagation on trees
funit-at-a-time
-Common Report Var(flag_unit_at_a_time) Init(1) Optimization
+Common Report Var(flag_unit_at_a_time) Init(1)
Compile whole compilation unit at a time
funroll-loops
Allow loop optimizations to assume that the loops behave in normal way
fassociative-math
-Common Report Var(flag_associative_math) SetByCombined
+Common Report Var(flag_associative_math) SetByCombined Optimization
Allow optimization for floating-point arithmetic which may change the
result of the operation due to rounding.
freciprocal-math
-Common Report Var(flag_reciprocal_math) SetByCombined
+Common Report Var(flag_reciprocal_math) SetByCombined Optimization
Same as -fassociative-math for expressions which include division.
; Nonzero means that unsafe floating-point math optimizations are allowed
Enable basic block vectorization (SLP) on trees
fvect-cost-model=
-Common Joined RejectNegative Enum(vect_cost_model) Var(flag_vect_cost_model) Init(VECT_COST_MODEL_DEFAULT)
+Common Joined RejectNegative Enum(vect_cost_model) Var(flag_vect_cost_model) Init(VECT_COST_MODEL_DEFAULT) Optimization
Specifies the cost model for vectorization
fsimd-cost-model=
-Common Joined RejectNegative Enum(vect_cost_model) Var(flag_simd_cost_model) Init(VECT_COST_MODEL_UNLIMITED)
+Common Joined RejectNegative Enum(vect_cost_model) Var(flag_simd_cost_model) Init(VECT_COST_MODEL_UNLIMITED) Optimization
Specifies the vectorization cost model for code marked with a simd directive
Enum
Enable conditional dead code elimination for builtin calls
fwhole-program
-Common Report Var(flag_whole_program) Init(0) Optimization
+Common Report Var(flag_whole_program) Init(0)
Perform whole program optimizations
fwrapv
symbolic
Driver
-pie
+no-pie
Driver RejectNegative Negative(shared)
+Don't create a position independent executable
+
+pie
+Driver RejectNegative Negative(no-pie)
Create a position independent executable
z
Driver Joined Separate
-fuse-caller-save
-Common Report Var(flag_use_caller_save) Optimization
+fipa-ra
+Common Report Var(flag_ipa_ra) Optimization
Use caller save register across calls if possible
; This comment is to ensure we retain the blank line above.