Путеводитель по Руководству Linux

  User  |  Syst  |  Libr  |  Device  |  Files  |  Other  |  Admin  |  Head  |



   gcc    ( 1 )

компилятор C и C ++ проекта GNU (GNU project C and C++ compiler)

  Name  |  Synopsis  |  Description  |  Options  |    Options detail    |  Environment  |  Bugs  |  Note  |  See also  |

Параметры подробно (Options detail)


  Controlling the Kind of Output  |  Compiling C++ Programs  |  Controlling C Dialect  |  Controlling C++ Dialect  |  Controlling Objective-C and Objective-C++ Dialects  |  Control Diagnostic Messages Formatting  |  Request or Suppress Warnings 1  |  Request or Suppress Warnings 2  |  Request or Suppress Warnings 3  |  Debugging Your Program  |  Control Optimization 1  |  Control Optimization 2  |  Control Optimization 3  |    Control Optimization 4    |  Program Instrumentation  |  Controlling the Preprocessor  |  Linking  |  Directory Search  |  Code Generation Conventions  |  GCC Developer  |  Machine-Dependent  |  AArch64  |  Adapteva Epiphany  |  AMD GCN  |  ARC  |  ARM  |  AVR  |  Blackfin  |  C6X  |  CRIS  |  CR16  |  C-SKY  |  Darwin  |  DEC Alpha  |  FR30  |  FT32  |  FRV  |  GNU/Linux  |  H8/300  |  HPPA  |  IA-64  |  LM32  |  M32C  |  M32R/D  |  M680x0  |  MCore  |  MeP  |  MicroBlaze  |  MIPS  |  MMIX  |  MN10300  |  Moxie  |  MSP430  |  NDS32  |  Nios II  |  Nvidia PTX  |  OpenRISC  |  PDP-11  |  picoChip  |  RISC-V  |  RL78  |  IBM RS/6000 and PowerPC  |  RX  |  S/390 and zSeries  |  Score  |  SH  |  Solaris 2  |  SPARC  |  SPU  |  System V  |  TILE-Gx  |  TILEPro  |  V850  |  VAX  |  Visium  |  VMS  |  VxWorks  |  x86 1  |  x86 2  |  x86 Windows  |  Xstormy16  |  Xtensa  |

Control Optimization - 4

iv-max-considered-uses
               The induction variable optimizations give up on loops
               that contain more induction variable uses.

           iv-always-prune-cand-set-bound
               If the number of candidates in the set is smaller than
               this value, always try to remove unnecessary ivs from the
               set when adding a new one.

           avg-loop-niter
               Average number of iterations of a loop.

           dse-max-object-size
               Maximum size (in bytes) of objects tracked bytewise by
               dead store elimination.  Larger values may result in
               larger compilation times.

           dse-max-alias-queries-per-store
               Maximum number of queries into the alias oracle per
               store.  Larger values result in larger compilation times
               and may result in more removed dead stores.

           scev-max-expr-size
               Bound on size of expressions used in the scalar
               evolutions analyzer.  Large expressions slow the
               analyzer.

           scev-max-expr-complexity
               Bound on the complexity of the expressions in the scalar
               evolutions analyzer.  Complex expressions slow the
               analyzer.

           max-tree-if-conversion-phi-args
               Maximum number of arguments in a PHI supported by TREE if
               conversion unless the loop is marked with simd pragma.

           vect-max-version-for-alignment-checks
               The maximum number of run-time checks that can be
               performed when doing loop versioning for alignment in the
               vectorizer.

           vect-max-version-for-alias-checks
               The maximum number of run-time checks that can be
               performed when doing loop versioning for alias in the
               vectorizer.

           vect-max-peeling-for-alignment
               The maximum number of loop peels to enhance access
               alignment for vectorizer. Value -1 means no limit.

           max-iterations-to-track
               The maximum number of iterations of a loop the brute-
               force algorithm for analysis of the number of iterations
               of the loop tries to evaluate.

           hot-bb-count-ws-permille
               A basic block profile count is considered hot if it
               contributes to the given permillage (i.e. 0...1000) of
               the entire profiled execution.

           hot-bb-frequency-fraction
               Select fraction of the entry block frequency of
               executions of basic block in function given basic block
               needs to have to be considered hot.

           max-predicted-iterations
               The maximum number of loop iterations we predict
               statically.  This is useful in cases where a function
               contains a single loop with known bound and another loop
               with unknown bound.  The known number of iterations is
               predicted correctly, while the unknown number of
               iterations average to roughly 10.  This means that the
               loop without bounds appears artificially cold relative to
               the other one.

           builtin-expect-probability
               Control the probability of the expression having the
               specified value. This parameter takes a percentage (i.e.
               0 ... 100) as input.

           builtin-string-cmp-inline-length
               The maximum length of a constant string for a builtin
               string cmp call eligible for inlining.

           align-threshold
               Select fraction of the maximal frequency of executions of
               a basic block in a function to align the basic block.

           align-loop-iterations
               A loop expected to iterate at least the selected number
               of iterations is aligned.

           tracer-dynamic-coverage
           tracer-dynamic-coverage-feedback
               This value is used to limit superblock formation once the
               given percentage of executed instructions is covered.
               This limits unnecessary code size expansion.

               The tracer-dynamic-coverage-feedback parameter is used
               only when profile feedback is available.  The real
               profiles (as opposed to statically estimated ones) are
               much less balanced allowing the threshold to be larger
               value.

           tracer-max-code-growth
               Stop tail duplication once code growth has reached given
               percentage.  This is a rather artificial limit, as most
               of the duplicates are eliminated later in cross jumping,
               so it may be set to much higher values than is the
               desired code growth.

           tracer-min-branch-ratio
               Stop reverse growth when the reverse probability of best
               edge is less than this threshold (in percent).

           tracer-min-branch-probability
           tracer-min-branch-probability-feedback
               Stop forward growth if the best edge has probability
               lower than this threshold.

               Similarly to tracer-dynamic-coverage two parameters are
               provided.  tracer-min-branch-probability-feedback is used
               for compilation with profile feedback and tracer-min-
               branch-probability compilation without.  The value for
               compilation with profile feedback needs to be more
               conservative (higher) in order to make tracer effective.

           stack-clash-protection-guard-size
               Specify the size of the operating system provided stack
               guard as 2 raised to num bytes.  Higher values may reduce
               the number of explicit probes, but a value larger than
               the operating system provided guard will leave code
               vulnerable to stack clash style attacks.

           stack-clash-protection-probe-interval
               Stack clash protection involves probing stack space as it
               is allocated.  This param controls the maximum distance
               between probes into the stack as 2 raised to num bytes.
               Higher values may reduce the number of explicit probes,
               but a value larger than the operating system provided
               guard will leave code vulnerable to stack clash style
               attacks.

           max-cse-path-length
               The maximum number of basic blocks on path that CSE
               considers.

           max-cse-insns
               The maximum number of instructions CSE processes before
               flushing.

           ggc-min-expand
               GCC uses a garbage collector to manage its own memory
               allocation.  This parameter specifies the minimum
               percentage by which the garbage collector's heap should
               be allowed to expand between collections.  Tuning this
               may improve compilation speed; it has no effect on code
               generation.

               The default is 30% + 70% * (RAM/1GB) with an upper bound
               of 100% when RAM >= 1GB.  If "getrlimit" is available,
               the notion of "RAM" is the smallest of actual RAM and
               "RLIMIT_DATA" or "RLIMIT_AS".  If GCC is not able to
               calculate RAM on a particular platform, the lower bound
               of 30% is used.  Setting this parameter and ggc-min-
               heapsize to zero causes a full collection to occur at
               every opportunity.  This is extremely slow, but can be
               useful for debugging.

           ggc-min-heapsize
               Minimum size of the garbage collector's heap before it
               begins bothering to collect garbage.  The first
               collection occurs after the heap expands by ggc-min-
               expand% beyond ggc-min-heapsize.  Again, tuning this may
               improve compilation speed, and has no effect on code
               generation.

               The default is the smaller of RAM/8, RLIMIT_RSS, or a
               limit that tries to ensure that RLIMIT_DATA or RLIMIT_AS
               are not exceeded, but with a lower bound of 4096 (four
               megabytes) and an upper bound of 131072 (128 megabytes).
               If GCC is not able to calculate RAM on a particular
               platform, the lower bound is used.  Setting this
               parameter very large effectively disables garbage
               collection.  Setting this parameter and ggc-min-expand to
               zero causes a full collection to occur at every
               opportunity.

           max-reload-search-insns
               The maximum number of instruction reload should look
               backward for equivalent register.  Increasing values mean
               more aggressive optimization, making the compilation time
               increase with probably slightly better performance.

           max-cselib-memory-locations
               The maximum number of memory locations cselib should take
               into account.  Increasing values mean more aggressive
               optimization, making the compilation time increase with
               probably slightly better performance.

           max-sched-ready-insns
               The maximum number of instructions ready to be issued the
               scheduler should consider at any given time during the
               first scheduling pass.  Increasing values mean more
               thorough searches, making the compilation time increase
               with probably little benefit.

           max-sched-region-blocks
               The maximum number of blocks in a region to be considered
               for interblock scheduling.

           max-pipeline-region-blocks
               The maximum number of blocks in a region to be considered
               for pipelining in the selective scheduler.

           max-sched-region-insns
               The maximum number of insns in a region to be considered
               for interblock scheduling.

           max-pipeline-region-insns
               The maximum number of insns in a region to be considered
               for pipelining in the selective scheduler.

           min-spec-prob
               The minimum probability (in percents) of reaching a
               source block for interblock speculative scheduling.

           max-sched-extend-regions-iters
               The maximum number of iterations through CFG to extend
               regions.  A value of 0 disables region extensions.

           max-sched-insn-conflict-delay
               The maximum conflict delay for an insn to be considered
               for speculative motion.

           sched-spec-prob-cutoff
               The minimal probability of speculation success (in
               percents), so that speculative insns are scheduled.

           sched-state-edge-prob-cutoff
               The minimum probability an edge must have for the
               scheduler to save its state across it.

           sched-mem-true-dep-cost
               Minimal distance (in CPU cycles) between store and load
               targeting same memory locations.

           selsched-max-lookahead
               The maximum size of the lookahead window of selective
               scheduling.  It is a depth of search for available
               instructions.

           selsched-max-sched-times
               The maximum number of times that an instruction is
               scheduled during selective scheduling.  This is the limit
               on the number of iterations through which the instruction
               may be pipelined.

           selsched-insns-to-rename
               The maximum number of best instructions in the ready list
               that are considered for renaming in the selective
               scheduler.

           sms-min-sc
               The minimum value of stage count that swing modulo
               scheduler generates.

           max-last-value-rtl
               The maximum size measured as number of RTLs that can be
               recorded in an expression in combiner for a pseudo
               register as last known value of that register.

           max-combine-insns
               The maximum number of instructions the RTL combiner tries
               to combine.

           integer-share-limit
               Small integer constants can use a shared data structure,
               reducing the compiler's memory usage and increasing its
               speed.  This sets the maximum value of a shared integer
               constant.

           ssp-buffer-size
               The minimum size of buffers (i.e. arrays) that receive
               stack smashing protection when -fstack-protection is
               used.

           min-size-for-stack-sharing
               The minimum size of variables taking part in stack slot
               sharing when not optimizing.

           max-jump-thread-duplication-stmts
               Maximum number of statements allowed in a block that
               needs to be duplicated when threading jumps.

           max-fields-for-field-sensitive
               Maximum number of fields in a structure treated in a
               field sensitive manner during pointer analysis.

           prefetch-latency
               Estimate on average number of instructions that are
               executed before prefetch finishes.  The distance
               prefetched ahead is proportional to this constant.
               Increasing this number may also lead to less streams
               being prefetched (see simultaneous-prefetches).

           simultaneous-prefetches
               Maximum number of prefetches that can run at the same
               time.

           l1-cache-line-size
               The size of cache line in L1 data cache, in bytes.

           l1-cache-size
               The size of L1 data cache, in kilobytes.

           l2-cache-size
               The size of L2 data cache, in kilobytes.

           prefetch-dynamic-strides
               Whether the loop array prefetch pass should issue
               software prefetch hints for strides that are non-
               constant.  In some cases this may be beneficial, though
               the fact the stride is non-constant may make it hard to
               predict when there is clear benefit to issuing these
               hints.

               Set to 1 if the prefetch hints should be issued for non-
               constant strides.  Set to 0 if prefetch hints should be
               issued only for strides that are known to be constant and
               below prefetch-minimum-stride.

           prefetch-minimum-stride
               Minimum constant stride, in bytes, to start using
               prefetch hints for.  If the stride is less than this
               threshold, prefetch hints will not be issued.

               This setting is useful for processors that have hardware
               prefetchers, in which case there may be conflicts between
               the hardware prefetchers and the software prefetchers.
               If the hardware prefetchers have a maximum stride they
               can handle, it should be used here to improve the use of
               software prefetchers.

               A value of -1 means we don't have a threshold and
               therefore prefetch hints can be issued for any constant
               stride.

               This setting is only useful for strides that are known
               and constant.

           loop-interchange-max-num-stmts
               The maximum number of stmts in a loop to be interchanged.

           loop-interchange-stride-ratio
               The minimum ratio between stride of two loops for
               interchange to be profitable.

           min-insn-to-prefetch-ratio
               The minimum ratio between the number of instructions and
               the number of prefetches to enable prefetching in a loop.

           prefetch-min-insn-to-mem-ratio
               The minimum ratio between the number of instructions and
               the number of memory references to enable prefetching in
               a loop.

           use-canonical-types
               Whether the compiler should use the "canonical" type
               system.  Should always be 1, which uses a more efficient
               internal mechanism for comparing types in C++ and
               Objective-C++.  However, if bugs in the canonical type
               system are causing compilation failures, set this value
               to 0 to disable canonical types.

           switch-conversion-max-branch-ratio
               Switch initialization conversion refuses to create arrays
               that are bigger than switch-conversion-max-branch-ratio
               times the number of branches in the switch.

           max-partial-antic-length
               Maximum length of the partial antic set computed during
               the tree partial redundancy elimination optimization
               (-ftree-pre) when optimizing at -O3 and above.  For some
               sorts of source code the enhanced partial redundancy
               elimination optimization can run away, consuming all of
               the memory available on the host machine.  This parameter
               sets a limit on the length of the sets that are computed,
               which prevents the runaway behavior.  Setting a value of
               0 for this parameter allows an unlimited set length.

           rpo-vn-max-loop-depth
               Maximum loop depth that is value-numbered optimistically.
               When the limit hits the innermost rpo-vn-max-loop-depth
               loops and the outermost loop in the loop nest are value-
               numbered optimistically and the remaining ones not.

           sccvn-max-alias-queries-per-access
               Maximum number of alias-oracle queries we perform when
               looking for redundancies for loads and stores.  If this
               limit is hit the search is aborted and the load or store
               is not considered redundant.  The number of queries is
               algorithmically limited to the number of stores on all
               paths from the load to the function entry.

           ira-max-loops-num
               IRA uses regional register allocation by default.  If a
               function contains more loops than the number given by
               this parameter, only at most the given number of the most
               frequently-executed loops form regions for regional
               register allocation.

           ira-max-conflict-table-size
               Although IRA uses a sophisticated algorithm to compress
               the conflict table, the table can still require excessive
               amounts of memory for huge functions.  If the conflict
               table for a function could be more than the size in MB
               given by this parameter, the register allocator instead
               uses a faster, simpler, and lower-quality algorithm that
               does not require building a pseudo-register conflict
               table.

           ira-loop-reserved-regs
               IRA can be used to evaluate more accurate register
               pressure in loops for decisions to move loop invariants
               (see -O3).  The number of available registers reserved
               for some other purposes is given by this parameter.
               Default of the parameter is the best found from numerous
               experiments.

           lra-inheritance-ebb-probability-cutoff
               LRA tries to reuse values reloaded in registers in
               subsequent insns.  This optimization is called
               inheritance.  EBB is used as a region to do this
               optimization.  The parameter defines a minimal fall-
               through edge probability in percentage used to add BB to
               inheritance EBB in LRA.  The default value was chosen
               from numerous runs of SPEC2000 on x86-64.

           loop-invariant-max-bbs-in-loop
               Loop invariant motion can be very expensive, both in
               compilation time and in amount of needed compile-time
               memory, with very large loops.  Loops with more basic
               blocks than this parameter won't have loop invariant
               motion optimization performed on them.

           loop-max-datarefs-for-datadeps
               Building data dependencies is expensive for very large
               loops.  This parameter limits the number of data
               references in loops that are considered for data
               dependence analysis.  These large loops are no handled by
               the optimizations using loop data dependencies.

           max-vartrack-size
               Sets a maximum number of hash table slots to use during
               variable tracking dataflow analysis of any function.  If
               this limit is exceeded with variable tracking at
               assignments enabled, analysis for that function is
               retried without it, after removing all debug insns from
               the function.  If the limit is exceeded even without
               debug insns, var tracking analysis is completely disabled
               for the function.  Setting the parameter to zero makes it
               unlimited.

           max-vartrack-expr-depth
               Sets a maximum number of recursion levels when attempting
               to map variable names or debug temporaries to value
               expressions.  This trades compilation time for more
               complete debug information.  If this is set too low,
               value expressions that are available and could be
               represented in debug information may end up not being
               used; setting this higher may enable the compiler to find
               more complex debug expressions, but compile time and
               memory use may grow.

           max-debug-marker-count
               Sets a threshold on the number of debug markers (e.g.
               begin stmt markers) to avoid complexity explosion at
               inlining or expanding to RTL.  If a function has more
               such gimple stmts than the set limit, such stmts will be
               dropped from the inlined copy of a function, and from its
               RTL expansion.

           min-nondebug-insn-uid
               Use uids starting at this parameter for nondebug insns.
               The range below the parameter is reserved exclusively for
               debug insns created by -fvar-tracking-assignments, but
               debug insns may get (non-overlapping) uids above it if
               the reserved range is exhausted.

           ipa-sra-ptr-growth-factor
               IPA-SRA replaces a pointer to an aggregate with one or
               more new parameters only when their cumulative size is
               less or equal to ipa-sra-ptr-growth-factor times the size
               of the original pointer parameter.

           sra-max-scalarization-size-Ospeed
           sra-max-scalarization-size-Osize
               The two Scalar Reduction of Aggregates passes (SRA and
               IPA-SRA) aim to replace scalar parts of aggregates with
               uses of independent scalar variables.  These parameters
               control the maximum size, in storage units, of aggregate
               which is considered for replacement when compiling for
               speed (sra-max-scalarization-size-Ospeed) or size (sra-
               max-scalarization-size-Osize) respectively.

           sra-max-propagations
               The maximum number of artificial accesses that Scalar
               Replacement of Aggregates (SRA) will track, per one local
               variable, in order to facilitate copy propagation.

           tm-max-aggregate-size
               When making copies of thread-local variables in a
               transaction, this parameter specifies the size in bytes
               after which variables are saved with the logging
               functions as opposed to save/restore code sequence pairs.
               This option only applies when using -fgnu-tm.

           graphite-max-nb-scop-params
               To avoid exponential effects in the Graphite loop
               transforms, the number of parameters in a Static Control
               Part (SCoP) is bounded.  A value of zero can be used to
               lift the bound.  A variable whose value is unknown at
               compilation time and defined outside a SCoP is a
               parameter of the SCoP.

           loop-block-tile-size
               Loop blocking or strip mining transforms, enabled with
               -floop-block or -floop-strip-mine, strip mine each loop
               in the loop nest by a given number of iterations.  The
               strip length can be changed using the loop-block-tile-
               size parameter.

           ipa-cp-value-list-size
               IPA-CP attempts to track all possible values and types
               passed to a function's parameter in order to propagate
               them and perform devirtualization.  ipa-cp-value-list-
               size is the maximum number of values and types it stores
               per one formal parameter of a function.

           ipa-cp-eval-threshold
               IPA-CP calculates its own score of cloning profitability
               heuristics and performs those cloning opportunities with
               scores that exceed ipa-cp-eval-threshold.

           ipa-cp-recursion-penalty
               Percentage penalty the recursive functions will receive
               when they are evaluated for cloning.

           ipa-cp-single-call-penalty
               Percentage penalty functions containing a single call to
               another function will receive when they are evaluated for
               cloning.

           ipa-max-agg-items
               IPA-CP is also capable to propagate a number of scalar
               values passed in an aggregate. ipa-max-agg-items controls
               the maximum number of such values per one parameter.

           ipa-cp-loop-hint-bonus
               When IPA-CP determines that a cloning candidate would
               make the number of iterations of a loop known, it adds a
               bonus of ipa-cp-loop-hint-bonus to the profitability
               score of the candidate.

           ipa-cp-array-index-hint-bonus
               When IPA-CP determines that a cloning candidate would
               make the index of an array access known, it adds a bonus
               of ipa-cp-array-index-hint-bonus to the profitability
               score of the candidate.

           ipa-max-aa-steps
               During its analysis of function bodies, IPA-CP employs
               alias analysis in order to track values pointed to by
               function parameters.  In order not spend too much time
               analyzing huge functions, it gives up and consider all
               memory clobbered after examining ipa-max-aa-steps
               statements modifying memory.

           lto-partitions
               Specify desired number of partitions produced during
               WHOPR compilation.  The number of partitions should
               exceed the number of CPUs used for compilation.

           lto-min-partition
               Size of minimal partition for WHOPR (in estimated
               instructions).  This prevents expenses of splitting very
               small programs into too many partitions.

           lto-max-partition
               Size of max partition for WHOPR (in estimated
               instructions).  to provide an upper bound for individual
               size of partition.  Meant to be used only with balanced
               partitioning.

           lto-max-streaming-parallelism
               Maximal number of parallel processes used for LTO
               streaming.

           cxx-max-namespaces-for-diagnostic-help
               The maximum number of namespaces to consult for
               suggestions when C++ name lookup fails for an identifier.

           sink-frequency-threshold
               The maximum relative execution frequency (in percents) of
               the target block relative to a statement's original block
               to allow statement sinking of a statement.  Larger
               numbers result in more aggressive statement sinking.  A
               small positive adjustment is applied for statements with
               memory operands as those are even more profitable so
               sink.

           max-stores-to-sink
               The maximum number of conditional store pairs that can be
               sunk.  Set to 0 if either vectorization
               (-ftree-vectorize) or if-conversion
               (-ftree-loop-if-convert) is disabled.

           allow-store-data-races
               Allow optimizers to introduce new data races on stores.
               Set to 1 to allow, otherwise to 0.

           case-values-threshold
               The smallest number of different values for which it is
               best to use a jump-table instead of a tree of conditional
               branches.  If the value is 0, use the default for the
               machine.

           tree-reassoc-width
               Set the maximum number of instructions executed in
               parallel in reassociated tree. This parameter overrides
               target dependent heuristics used by default if has non
               zero value.

           sched-pressure-algorithm
               Choose between the two available implementations of
               -fsched-pressure.  Algorithm 1 is the original
               implementation and is the more likely to prevent
               instructions from being reordered.  Algorithm 2 was
               designed to be a compromise between the relatively
               conservative approach taken by algorithm 1 and the rather
               aggressive approach taken by the default scheduler.  It
               relies more heavily on having a regular register file and
               accurate register pressure classes.  See haifa-sched.c in
               the GCC sources for more details.

               The default choice depends on the target.

           max-slsr-cand-scan
               Set the maximum number of existing candidates that are
               considered when seeking a basis for a new straight-line
               strength reduction candidate.

           asan-globals
               Enable buffer overflow detection for global objects.
               This kind of protection is enabled by default if you are
               using -fsanitize=address option.  To disable global
               objects protection use --param asan-globals=0.

           asan-stack
               Enable buffer overflow detection for stack objects.  This
               kind of protection is enabled by default when using
               -fsanitize=address.  To disable stack protection use
               --param asan-stack=0 option.

           asan-instrument-reads
               Enable buffer overflow detection for memory reads.  This
               kind of protection is enabled by default when using
               -fsanitize=address.  To disable memory reads protection
               use --param asan-instrument-reads=0.

           asan-instrument-writes
               Enable buffer overflow detection for memory writes.  This
               kind of protection is enabled by default when using
               -fsanitize=address.  To disable memory writes protection
               use --param asan-instrument-writes=0 option.

           asan-memintrin
               Enable detection for built-in functions.  This kind of
               protection is enabled by default when using
               -fsanitize=address.  To disable built-in functions
               protection use --param asan-memintrin=0.

           asan-use-after-return
               Enable detection of use-after-return.  This kind of
               protection is enabled by default when using the
               -fsanitize=address option.  To disable it use --param
               asan-use-after-return=0.

               Note: By default the check is disabled at run time.  To
               enable it, add "detect_stack_use_after_return=1" to the
               environment variable ASAN_OPTIONS.

           asan-instrumentation-with-call-threshold
               If number of memory accesses in function being
               instrumented is greater or equal to this number, use
               callbacks instead of inline checks.  E.g. to disable
               inline code use --param
               asan-instrumentation-with-call-threshold=0.

           use-after-scope-direct-emission-threshold
               If the size of a local variable in bytes is smaller or
               equal to this number, directly poison (or unpoison)
               shadow memory instead of using run-time callbacks.

           max-fsm-thread-path-insns
               Maximum number of instructions to copy when duplicating
               blocks on a finite state automaton jump thread path.

           max-fsm-thread-length
               Maximum number of basic blocks on a finite state
               automaton jump thread path.

           max-fsm-thread-paths
               Maximum number of new jump thread paths to create for a
               finite state automaton.

           parloops-chunk-size
               Chunk size of omp schedule for loops parallelized by
               parloops.

           parloops-schedule
               Schedule type of omp schedule for loops parallelized by
               parloops (static, dynamic, guided, auto, runtime).

           parloops-min-per-thread
               The minimum number of iterations per thread of an
               innermost parallelized loop for which the parallelized
               variant is preferred over the single threaded one.  Note
               that for a parallelized loop nest the minimum number of
               iterations of the outermost loop per thread is two.

           max-ssa-name-query-depth
               Maximum depth of recursion when querying properties of
               SSA names in things like fold routines.  One level of
               recursion corresponds to following a use-def chain.

           hsa-gen-debug-stores
               Enable emission of special debug stores within HSA
               kernels which are then read and reported by libgomp
               plugin.  Generation of these stores is disabled by
               default, use --param hsa-gen-debug-stores=1 to enable it.

           max-speculative-devirt-maydefs
               The maximum number of may-defs we analyze when looking
               for a must-def specifying the dynamic type of an object
               that invokes a virtual call we may be able to
               devirtualize speculatively.

           max-vrp-switch-assertions
               The maximum number of assertions to add along the default
               edge of a switch statement during VRP.

           unroll-jam-min-percent
               The minimum percentage of memory references that must be
               optimized away for the unroll-and-jam transformation to
               be considered profitable.

           unroll-jam-max-unroll
               The maximum number of times the outer loop should be
               unrolled by the unroll-and-jam transformation.

           max-rtl-if-conversion-unpredictable-cost
               Maximum permissible cost for the sequence that would be
               generated by the RTL if-conversion pass for a branch that
               is considered unpredictable.

           max-variable-expansions-in-unroller
               If -fvariable-expansion-in-unroller is used, the maximum
               number of times that an individual variable will be
               expanded during loop unrolling.

           tracer-min-branch-probability-feedback
               Stop forward growth if the probability of best edge is
               less than this threshold (in percent). Used when profile
               feedback is available.

           partial-inlining-entry-probability
               Maximum probability of the entry BB of split region (in
               percent relative to entry BB of the function) to make
               partial inlining happen.

           max-tracked-strlens
               Maximum number of strings for which strlen optimization
               pass will track string lengths.

           gcse-after-reload-partial-fraction
               The threshold ratio for performing partial redundancy
               elimination after reload.

           gcse-after-reload-critical-fraction
               The threshold ratio of critical edges execution count
               that permit performing redundancy elimination after
               reload.

           max-loop-header-insns
               The maximum number of insns in loop header duplicated by
               the copy loop headers pass.

           vect-epilogues-nomask
               Enable loop epilogue vectorization using smaller vector
               size.

           slp-max-insns-in-bb
               Maximum number of instructions in basic block to be
               considered for SLP vectorization.

           avoid-fma-max-bits
               Maximum number of bits for which we avoid creating FMAs.

           sms-loop-average-count-threshold
               A threshold on the average loop count considered by the
               swing modulo scheduler.

           sms-dfa-history
               The number of cycles the swing modulo scheduler considers
               when checking conflicts using DFA.

           hot-bb-count-fraction
               Select fraction of the maximal count of repetitions of
               basic block in program given basic block needs to have to
               be considered hot (used in non-LTO mode)

           max-inline-insns-recursive-auto
               The maximum number of instructions non-inline function
               can grow to via recursive inlining.

           graphite-allow-codegen-errors
               Whether codegen errors should be ICEs when -fchecking.

           sms-max-ii-factor
               A factor for tuning the upper bound that swing modulo
               scheduler uses for scheduling a loop.

           lra-max-considered-reload-pseudos
               The max number of reload pseudos which are considered
               during spilling a non-reload pseudo.

           max-pow-sqrt-depth
               Maximum depth of sqrt chains to use when synthesizing
               exponentiation by a real constant.

           max-dse-active-local-stores
               Maximum number of active local stores in RTL dead store
               elimination.

           asan-instrument-allocas
               Enable asan allocas/VLAs protection.

           max-iterations-computation-cost
               Bound on the cost of an expression to compute the number
               of iterations.

           max-isl-operations
               Maximum number of isl operations, 0 means unlimited.

           graphite-max-arrays-per-scop
               Maximum number of arrays per scop.

           max-vartrack-reverse-op-size
               Max. size of loc list for which reverse ops should be
               added.

           unlikely-bb-count-fraction
               The minimum fraction of profile runs a given basic block
               execution count must be not to be considered unlikely.

           tracer-dynamic-coverage-feedback
               The percentage of function, weighted by execution
               frequency, that must be covered by trace formation.  Used
               when profile feedback is available.

           max-inline-recursive-depth-auto
               The maximum depth of recursive inlining for non-inline
               functions.

           fsm-scale-path-stmts
               Scale factor to apply to the number of statements in a
               threading path when comparing to the number of (scaled)
               blocks.

           fsm-maximum-phi-arguments
               Maximum number of arguments a PHI may have before the FSM
               threader will not try to thread through its block.

           uninit-control-dep-attempts
               Maximum number of nested calls to search for control
               dependencies during uninitialized variable analysis.

           indir-call-topn-profile
               Track top N target addresses in indirect-call profile.

           max-once-peeled-insns
               The maximum number of insns of a peeled loop that rolls
               only once.

           sra-max-scalarization-size-Osize
               Maximum size, in storage units, of an aggregate which
               should be considered for scalarization when compiling for
               size.

           fsm-scale-path-blocks
               Scale factor to apply to the number of blocks in a
               threading path when comparing to the number of (scaled)
               statements.

           sched-autopref-queue-depth
               Hardware autoprefetcher scheduler model control flag.
               Number of lookahead cycles the model looks into; at ' '
               only enable instruction sorting heuristic.

           loop-versioning-max-inner-insns
               The maximum number of instructions that an inner loop can
               have before the loop versioning pass considers it too big
               to copy.

           loop-versioning-max-outer-insns
               The maximum number of instructions that an outer loop can
               have before the loop versioning pass considers it too big
               to copy, discounting any instructions in inner loops that
               directly benefit from versioning.

           ssa-name-def-chain-limit
               The maximum number of SSA_NAME assignments to follow in
               determining a property of a variable such as its value.
               This limits the number of iterations or recursive calls
               GCC performs when optimizing certain statements or when
               determining their validity prior to issuing diagnostics.