компилятор C и C ++ проекта GNU (GNU project C and C++ compiler)
Параметры подробно (Options detail)
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.