doc: Copy-edit parameter documentation [PR89915]

I made a pass through the parameter documentation to fix various
issues with grammar, markup, punctuation, capitalization, inconsistent
use of terminology, and so on.  I'm sure there's still room for improvement
but this is at least a step in the right direction.

As internal documentation, the parameter descriptions naturally
contain a lot of jargon and abbreviations for compiler passes.  This
patch does not attempt to fix that.  Probably a more critical area for
future improvement is making it more obvious what pass or part of the
compiler each parameter controls and perhaps adding some additional
subsectioning to group them.

gcc/ChangeLog
	PR translation/89915
	* doc/params.texi: Copy-edit text throughout the file.
	* params.opt: Likewise in documentation strings.
This commit is contained in:
Sandra Loosemore
2026-02-02 02:55:07 +00:00
parent 6399530c3b
commit a82ca58034
2 changed files with 250 additions and 218 deletions

View File

@@ -44,8 +44,8 @@ The following choices of @var{name} are recognized for all targets:
@paindex auto-profile-bbs
@item auto-profile-bbs
If non-zero and used together with @option{-fauto-profile}, the auto-profile
will be used to determine basic block profile. If zero, then only function
level profile will be read.
is used to determine basic block profile. If zero, then only function
level profile is read.
@paindex auto-profile-reorder-only
@item auto-profile-reorder-only
@@ -53,44 +53,46 @@ Enable only function reordering with auto-profile.
@paindex phiopt-factor-max-stmts-live
@item phiopt-factor-max-stmts-live
When factoring statements out of if/then/else, this is the max # of statements
after the defining statement to be allow to extend the lifetime of a name
When factoring statements out of if/then/else, this is the maximum number
of statements
after the defining statement to be allowed to extend the lifetime of a name.
@paindex predictable-branch-outcome
@item predictable-branch-outcome
When branch is predicted to be taken with probability lower than this threshold
(in percent), then it is considered well predictable.
(as a percentage), then it is considered well-predictable.
@paindex max-rtl-if-conversion-insns
@item max-rtl-if-conversion-insns
RTL if-conversion tries to remove conditional branches around a block and
replace them with conditionally executed instructions. This parameter
gives the maximum number of instructions in a block which should be
considered for if-conversion. The compiler will
also use other heuristics to decide whether if-conversion is likely to be
gives the maximum number of instructions in a block that should be
considered for if-conversion. The compiler
also uses other heuristics to decide whether if-conversion is likely to be
profitable.
@paindex file-cache-files
@item file-cache-files
Max number of files in the file cache.
The maximum number of files in the file cache.
The file cache is used to print source lines in diagnostics and do some
source checks like @option{-Wmisleading-indentation}.
@paindex file-cache-lines
@item file-cache-lines
Max number of lines to index into file cache. When 0 this is automatically sized.
Maximum number of lines to index into file cache.
When zero this is automatically sized.
The file cache is used to print source lines in diagnostics and do some
source checks like @option{-Wmisleading-indentation}.
@paindex max-rtl-if-conversion-predictable-cost
@item max-rtl-if-conversion-predictable-cost
RTL if-conversion will try to remove conditional branches around a block
RTL if-conversion tries to remove conditional branches around a block
and replace them with conditionally executed instructions. These parameters
give the maximum permissible cost for the sequence that would be generated
by if-conversion depending on whether the branch is statically determined
to be predictable or not. The units for this parameter are the same as
those for the GCC internal seq_cost metric. The compiler will try to
provide a reasonable default for this parameter using the BRANCH_COST
those for the GCC internal seq_cost metric. The compiler tries to
provide a reasonable default for this parameter using the @code{BRANCH_COST}
target macro.
@paindex max-crossjump-edges
@@ -119,7 +121,7 @@ The maximum number of instructions to duplicate to a block that jumps
to a computed goto. To avoid @math{O(N^2)} behavior in a number of
passes, GCC factors computed gotos early in the compilation process,
and unfactors them as late as possible. Only computed jumps at the
end of a basic blocks with no more than max-goto-duplication-insns are
end of a basic blocks with no more than @code{max-goto-duplication-insns} are
unfactored.
@paindex max-delay-slot-insn-search
@@ -135,7 +137,7 @@ small improvement in execution time.
@item max-delay-slot-live-search
When trying to fill delay slots, the maximum number of instructions to
consider when searching for a block with valid live register
information. Increasing this arbitrarily chosen value means more
information. Increasing this arbitrarily-chosen value means more
aggressive optimization, increasing the compilation time. This parameter
should be removed when the delay slot code is rewritten to maintain the
control-flow graph.
@@ -220,22 +222,23 @@ execute function prologue and epilogue.
@paindex inline-heuristics-hint-percent
@item inline-heuristics-hint-percent
The scale (in percents) applied to @option{inline-insns-single},
The scale (as a percentage) applied to @option{inline-insns-single},
@option{inline-insns-single-O2}, @option{inline-insns-auto}
when inline heuristics hints that inlining is
very profitable (will enable later optimizations).
when inline heuristics hint that inlining is
very profitable. It enables later optimizations.
@paindex uninlined-thunk-insns
@item uninlined-thunk-insns
@paindex uninlined-thunk-time
@item uninlined-thunk-time
Same as @option{--param uninlined-function-insns} and
@option{--param uninlined-function-time} but applied to function thunks.
@option{--param uninlined-function-time}, but applied to function thunks.
@paindex inline-min-speedup
@item inline-min-speedup
When estimated performance improvement of caller + callee runtime exceeds this
threshold (in percent), the function can be inlined regardless of the limit on
threshold (as a percentage),
the function can be inlined regardless of the limit on
@option{--param max-inline-insns-single} and @option{--param
max-inline-insns-auto}.
@@ -249,8 +252,9 @@ back end.
@paindex large-function-growth
@item large-function-growth
Specifies maximal growth of large functions caused by inlining in percents.
For example, parameter value 100 limits large function growth to 2.0 times
Specifies maximal growth of large functions caused by inlining,
as a percentage.
For example, a parameter value of 100 limits large function growth to 2.0 times
the original size.
@paindex large-unit-insns
@@ -289,12 +293,13 @@ The size of translation unit that IPA-CP pass considers large.
@paindex large-stack-frame
@item large-stack-frame
The limit specifying large stack frames. While inlining the algorithm is trying
The limit specifying large stack frames. While inlining, the algorithm tries
to not grow past this limit too much.
@paindex large-stack-frame-growth
@item large-stack-frame-growth
Specifies maximal growth of large stack frames caused by inlining in percents.
Specifies maximal growth of large stack frames caused by inlining,
as a percentage of the original size.
For example, parameter value 1000 limits large stack frame growth to 11 times
the original size.
@@ -325,15 +330,16 @@ enabled; @option{--param max-inline-recursive-depth-auto} applies instead.
@paindex min-inline-recursive-probability
@item min-inline-recursive-probability
Recursive inlining is profitable only for function having deep recursion
in average and can hurt for function having little recursion depth by
Recursive inlining is profitable only for functions having deep recursion
in average and can hurt for functions having little recursion depth by
increasing the prologue size or complexity of function body to other
optimizers.
When profile feedback is available (see @option{-fprofile-generate}) the actual
When profile feedback is available (see @option{-fprofile-generate}),
the actual
recursion depth can be guessed from the probability that function recurses
via a given call expression. This parameter limits inlining only to call
expressions whose probability exceeds the given threshold (in percents).
expressions whose probability exceeds the given threshold (as a percentage).
@paindex early-inlining-insns
@item early-inlining-insns
@@ -348,7 +354,7 @@ Deeper chains are still handled by late inlining.
@paindex comdat-sharing-probability
@item comdat-sharing-probability
Probability (in percent) that C++ inline function with comdat visibility
Probability (as a percentage) that C++ inline function with comdat visibility
are shared across multiple compilation units.
@paindex modref-max-bases
@@ -378,8 +384,8 @@ Specifies the maximum number of escape points tracked by modref per SSA-name.
@paindex modref-max-adjustments
@item modref-max-adjustments
Specifies the maximum number the access range is enlarged during modref dataflow
analysis.
Specifies the maximum number times the access range is enlarged during
modref dataflow analysis.
@paindex profile-func-internal-id
@item profile-func-internal-id
@@ -422,13 +428,13 @@ of huge functions.
@paindex max-tail-merge-comparisons
@item max-tail-merge-comparisons
The maximum amount of similar bbs to compare a bb with. This is used to
The maximum number of similar bbs to compare a bb with. This is used to
avoid quadratic behavior in tree tail merging.
@paindex max-tail-merge-iterations
@item max-tail-merge-iterations
The maximum amount of iterations of the pass over the function. This is used to
limit compilation time in tree tail merging.
The maximum number of iterations of the tree tail merging pass over a function.
This is used to limit compilation time in this pass.
@paindex store-merging-allow-unaligned
@item store-merging-allow-unaligned
@@ -447,7 +453,7 @@ to merge them into wider stores in the store merging pass.
@paindex max-stores-to-track
@item max-stores-to-track
The maximum number of stores to track at the same time in the attemt to
The maximum number of stores to track at the same time in the attempt to
to merge them into wider stores in the store merging pass.
@paindex max-unrolled-insns
@@ -502,13 +508,13 @@ The maximum depth of a loop nest to be unswitched.
@paindex lim-expensive
@item lim-expensive
The minimum cost of an expensive expression in the loop invariant motion.
The minimum cost of an expensive expression in the loop invariant motion pass.
@paindex min-loop-cond-split-prob
@item min-loop-cond-split-prob
When FDO profile information is available, @option{min-loop-cond-split-prob}
specifies minimum threshold for probability of semi-invariant condition
statement to trigger loop split.
specifies the minimum threshold for probability of semi-invariant condition
statement to trigger loop split. The value is a percentage.
@paindex iv-consider-all-candidates-bound
@item iv-consider-all-candidates-bound
@@ -520,11 +526,12 @@ only the most relevant ones are considered to avoid quadratic time complexity.
@paindex iv-max-considered-uses
@item iv-max-considered-uses
The induction variable optimizations give up on loops that contain more
induction variable uses.
induction variable uses than this limit.
@paindex iv-always-prune-cand-set-bound
@item iv-always-prune-cand-set-bound
If the number of candidates in the set is smaller than this value,
This parameter is used by induction variable optimization.
If the number of candidates in the iv set is larger than this value,
always try to remove unnecessary ivs from the set
when adding a new one.
@@ -556,7 +563,7 @@ Complex expressions slow the analyzer.
@paindex max-tree-if-conversion-phi-args
@item 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.
unless the loop is marked with a simd pragma.
@paindex vect-max-layout-candidates
@item vect-max-layout-candidates
@@ -585,7 +592,8 @@ for analysis of the number of iterations of the loop tries to evaluate.
@paindex hot-bb-count-fraction
@item hot-bb-count-fraction
The denominator n of fraction 1/n of the maximal execution count of a
The denominator @var{n} of fraction 1/@var{n}
of the maximal execution count of a
basic block in the entire program that a basic block needs to at least
have in order to be considered hot. The default is 10000, which means
that a basic block is considered hot if its execution count is greater
@@ -604,7 +612,8 @@ never considered hot. Used in LTO mode.
@paindex hot-bb-frequency-fraction
@item hot-bb-frequency-fraction
The denominator n of fraction 1/n of the execution frequency of the
The denominator @var{n} of fraction 1/@var{n}
of the execution frequency of the
entry block of a function that a basic block of this function needs
to at least have in order to be considered hot. The default is 1000,
which means that a basic block is considered hot in a function if it
@@ -613,7 +622,8 @@ block of the function. 0 means that it is never considered hot.
@paindex unlikely-bb-count-fraction
@item unlikely-bb-count-fraction
The denominator n of fraction 1/n of the number of profiled runs of
The denominator @var{n} of fraction 1/@var{n}
of the number of profiled runs of
the entire program below which the execution count of a basic block
must be in order for the basic block to be considered unlikely executed.
The default is 20, which means that a basic block is considered unlikely
@@ -631,13 +641,13 @@ loop without bounds appears artificially cold relative to the other one.
@paindex builtin-expect-probability
@item builtin-expect-probability
Control the probability of the expression having the specified value. This
parameter takes a percentage (i.e.@: 0 ... 100) as input.
Control the probability of the expression having the specified value, as
a percentage.
@paindex builtin-string-cmp-inline-length
@item builtin-string-cmp-inline-length
The maximum length of a constant string for a builtin string cmp call
eligible for inlining.
The maximum length of a constant string for a builtin @code{strcmp} or
@code{memcmp} call to be eligible for inlining.
@paindex align-threshold
@item align-threshold
@@ -663,7 +673,7 @@ expansion.
The @option{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.
ones) are much less balanced allowing the threshold to be a larger value.
@paindex tracer-max-code-growth
@item tracer-max-code-growth
@@ -676,7 +686,7 @@ growth.
@item tracer-min-branch-ratio
Stop reverse growth when the reverse probability of best edge is less than this
threshold (in percent).
threshold (as a percentage).
@paindex tracer-min-branch-probability
@paindex tracer-min-branch-probability-feedback
@@ -697,16 +707,17 @@ effective.
@item stack-clash-protection-guard-size
Specify the size of the operating system provided stack guard as
2 raised to @var{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.
number of explicit probes, but a value larger than the guard provided
by the operating system leaves code vulnerable to stack clash style attacks.
@paindex stack-clash-protection-probe-interval
@item 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 @var{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 involves probing stack space as it is allocated.
This parameter controls the maximum distance between probes into the stack
as 2 raised to @var{num} bytes.
Higher values may reduce the number of explicit probes,
but a value larger than the guard provided by the operating system leaves
code vulnerable to stack clash style attacks.
@paindex max-cse-path-length
@item max-cse-path-length
@@ -744,9 +755,9 @@ by @option{ggc-min-expand}% beyond @option{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
The default is the smaller of RAM/8, @code{RLIMIT_RSS}, or a limit that
tries to ensure that @code{RLIMIT_DATA} or @code{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
@@ -762,8 +773,8 @@ compilation time increase with probably slightly better performance.
@paindex max-cselib-memory-locations
@item 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.
Increasing values mean more aggressive optimization, making the compilation
time increase with probably slightly better performance.
@paindex max-sched-ready-insns
@item max-sched-ready-insns
@@ -794,7 +805,7 @@ pipelining in the selective scheduler.
@paindex min-spec-prob
@item min-spec-prob
The minimum probability (in percents) of reaching a source block
The minimum probability (as a percentage) of reaching a source block
for interblock speculative scheduling.
@paindex max-sched-extend-regions-iters
@@ -808,7 +819,7 @@ The maximum conflict delay for an insn to be considered for speculative motion.
@paindex sched-spec-prob-cutoff
@item sched-spec-prob-cutoff
The minimal probability of speculation success (in percents), so that
The minimal probability of speculation success (as a percentage), so that
speculative insns are scheduled.
@paindex sched-state-edge-prob-cutoff
@@ -844,8 +855,9 @@ generates.
@paindex max-last-value-rtl
@item 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.
The maximum size, measured as number of RTLs, that can be recorded in an
expression in the combiner for a pseudo-register as the last known value of
that register.
@paindex max-combine-insns
@item max-combine-insns
@@ -855,7 +867,7 @@ The maximum number of instructions the RTL combiner tries to combine.
@item max-combine-search-insns
The maximum number of instructions that the RTL combiner searches in order
to find the next use of a given register definition. If this limit is reached
without finding such a use, the combiner will stop trying to optimize the
without finding such a use, the combiner stops trying to optimize the
definition.
Currently this limit only applies after certain successful combination
@@ -893,7 +905,7 @@ consider.
@paindex max-fields-for-field-sensitive
@item max-fields-for-field-sensitive
Maximum number of fields in a structure treated in
a field sensitive manner during pointer analysis.
a field-sensitive manner during pointer analysis.
@paindex prefetch-latency
@item prefetch-latency
@@ -932,7 +944,7 @@ are known to be constant and below @option{prefetch-minimum-stride}.
@paindex prefetch-minimum-stride
@item 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.
the stride is less than this threshold, prefetch hints are not issued.
This setting is useful for processors that have hardware prefetchers, in
which case there may be conflicts between the hardware prefetchers and
@@ -955,10 +967,10 @@ The values for the C++17 variables
interference size is the minimum recommended offset between two
independent concurrently-accessed objects; the constructive
interference size is the maximum recommended size of contiguous memory
accessed together. Typically both will be the size of an L1 cache
accessed together. Typically both are the size of an L1 cache
line for the target, in bytes. For a generic target covering a range of L1
cache line sizes, typically the constructive interference size will be
the small end of the range and the destructive size will be the large
cache line sizes, typically the constructive interference size is
the small end of the range and the destructive size is the large
end.
The destructive interference size is intended to be used for layout,
@@ -1054,7 +1066,7 @@ algorithm that does not require building a pseudo-register conflict table.
IRA can be used to evaluate more accurate register pressure in loops
for decisions to move loop invariants (see @option{-O3}). The number
of available registers reserved for some other purposes is given
by this parameter. Default of the parameter
by this parameter. The default value of the parameter
is the best found from numerous experiments.
@paindex ira-consider-dup-in-all-alts
@@ -1063,9 +1075,9 @@ Make IRA to consider matching constraint (duplicated operand number)
heavily in all available alternatives for preferred register class.
If it is set as zero, it means IRA only respects the matching
constraint when it's in the only available alternative with an
appropriate register class. Otherwise, it means IRA will check all
appropriate register class. Otherwise, it means IRA checks all
available alternatives for preferred register class even if it has
found some choice with an appropriate register class and respect the
found some choice with an appropriate register class that satisfies the
found qualified matching constraint.
@paindex ira-simple-lra-insn-threshold
@@ -1077,7 +1089,7 @@ Approximate function insn number in 1K units triggering simple local RA.
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
edge probability (as a percentage) used to add BB to inheritance EBB in
LRA. The default value was chosen
from numerous runs of SPEC2000 on x86-64.
@@ -1120,7 +1132,7 @@ time and memory use may grow.
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
are dropped from the inlined copy of a function and from its RTL
expansion.
@paindex min-nondebug-insn-uid
@@ -1132,8 +1144,8 @@ the parameter is reserved exclusively for debug insns created by
@paindex ipa-sra-deref-prob-threshold
@item ipa-sra-deref-prob-threshold
IPA-SRA replaces a pointer which is known not be NULL with one or more
new parameters only when the probability (in percent, relative to
IPA-SRA replaces a pointer that is known not be NULL with one or more
new parameters only when the probability (as a percentage, relative to
function entry) of it being dereferenced is higher than this parameter.
@paindex ipa-sra-ptr-growth-factor
@@ -1163,7 +1175,7 @@ parameter.
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
of aggregates that are considered for replacement when compiling for
speed
(@option{sra-max-scalarization-size-Ospeed}) or size
(@option{sra-max-scalarization-size-Osize}) respectively.
@@ -1171,7 +1183,7 @@ speed
@paindex sra-max-propagations
@item sra-max-propagations
The maximum number of artificial accesses that Scalar Replacement of
Aggregates (SRA) will track, per one local variable, in order to
Aggregates (SRA) tracks, per one local variable, in order to
facilitate copy propagation.
@paindex tm-max-aggregate-size
@@ -1243,22 +1255,22 @@ functions to call themselves.
@paindex ipa-cp-recursion-penalty
@item ipa-cp-recursion-penalty
Percentage penalty the recursive functions will receive when they
Percentage penalty the recursive functions receive when they
are evaluated for cloning.
@paindex ipa-cp-single-call-penalty
@item ipa-cp-single-call-penalty
Percentage penalty functions containing a single call to another
function will receive when they are evaluated for cloning.
function receive when they are evaluated for cloning.
@paindex ipa-cp-sweeps
@item ipa-cp-sweeps
The number of times the interprocedural constant propagation will traverse
The number of times the interprocedural constant propagation traverses
all functions to make cloning decisions.
@paindex ipa-max-agg-items
@item ipa-max-agg-items
IPA-CP is also capable to propagate a number of scalar values passed
IPA-CP is also capable of propagating a number of scalar values passed
in an aggregate. @option{ipa-max-agg-items} controls the maximum
number of such values per one parameter.
@@ -1271,7 +1283,7 @@ the candidate.
@paindex ipa-max-loop-predicates
@item ipa-max-loop-predicates
The maximum number of different predicates IPA will use to describe when
The maximum number of different predicates IPA uses to describe when
loops in a function have known properties.
@paindex ipa-max-aa-steps
@@ -1284,18 +1296,18 @@ consider all memory clobbered after examining
@paindex ipa-max-switch-predicate-bounds
@item ipa-max-switch-predicate-bounds
Maximal number of boundary endpoints of case ranges of switch statement.
For switch exceeding this limit, IPA-CP will not construct cloning cost
predicate, which is used to estimate cloning benefit, for default case
Maximal number of boundary endpoints of case ranges of a switch statement.
For switch exceeding this limit, IPA-CP does not construct a cloning cost
predicate, which is used to estimate cloning benefit, for the default case
of the switch statement.
@paindex ipa-max-param-expr-ops
@item ipa-max-param-expr-ops
IPA-CP will analyze conditional statement that references some function
IPA-CP analyzes conditional statements that reference some function
parameter to estimate benefit for cloning upon certain constant value.
But if number of operations in a parameter expression exceeds
@option{ipa-max-param-expr-ops}, the expression is treated as complicated
one, and is not handled by IPA analysis.
@option{ipa-max-param-expr-ops}, the expression is treated as complicated,
and is not handled by IPA analysis.
@paindex lto-partitions
@item lto-partitions
@@ -1304,20 +1316,21 @@ The number of partitions should exceed the number of CPUs used for compilation.
@paindex lto-min-partition
@item lto-min-partition
Size of minimal partition for WHOPR (in estimated instructions).
Minimum partition size for WHOPR (in estimated instructions).
This prevents expenses of splitting very small programs into too many
partitions.
@paindex lto-max-partition
@item lto-max-partition
Size of max partition for WHOPR (in estimated instructions).
Maximum partition size for WHOPR (in estimated instructions).
to provide an upper bound for individual size of partition.
Meant to be used only with balanced partitioning.
@paindex lto-partition-locality-frequency-cutoff
@item lto-partition-locality-frequency-cutoff
The denominator n of fraction 1/n of the execution frequency of callee to be
cloned for a particular caller. Special value of 0 dictates to always clone
The denominator @var{n} of fraction 1/@var{n} of the execution frequency of
the callee to be cloned for a particular caller.
The special value of 0 dictates to always clone
without a cut-off.
@paindex lto-partition-locality-size-cutoff
@@ -1341,11 +1354,11 @@ name lookup fails for an identifier.
@paindex sink-frequency-threshold
@item sink-frequency-threshold
The maximum relative execution frequency (in percents) of the target block
The maximum relative execution frequency (as a percentage) 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.
statements with memory operands as those are even more profitable to sink.
@paindex max-stores-to-sink
@item max-stores-to-sink
@@ -1356,26 +1369,27 @@ if either vectorization (@option{-ftree-vectorize}) or if-conversion
@paindex case-values-threshold
@item 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
jump table instead of a tree of conditional branches. If the value is
0, use the default for the machine.
@paindex jump-table-max-growth-ratio-for-size
@item jump-table-max-growth-ratio-for-size
The maximum code size growth ratio when expanding
into a jump table (in percent). The parameter is used when
into a jump table (as a percentage). The parameter is used when
optimizing for size.
@paindex jump-table-max-growth-ratio-for-speed
@item jump-table-max-growth-ratio-for-speed
The maximum code size growth ratio when expanding
into a jump table (in percent). The parameter is used when
into a jump table (as a percentage). The parameter is used when
optimizing for speed.
@paindex tree-reassoc-width
@item 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.
In the tree reassociation pass, set the maximum number of instructions
executed in parallel in the reassociated tree.
This parameter overrides target-dependent
heuristics used by default if it has a nonzero value.
@paindex sched-pressure-algorithm
@item sched-pressure-algorithm
@@ -1455,7 +1469,7 @@ respectively.
@paindex hwasan-instrument-stack
@item hwasan-instrument-stack
Enable hwasan instrumentation of statically sized stack-allocated variables.
Enable hwasan instrumentation of statically-sized stack-allocated variables.
This kind of instrumentation is enabled by default when using
@option{-fsanitize=hwaddress} and disabled by default when using
@option{-fsanitize=kernel-hwaddress}.
@@ -1528,7 +1542,8 @@ Emit special instrumentation for accesses to volatiles.
@paindex tsan-instrument-func-entry-exit
@item tsan-instrument-func-entry-exit
Emit instrumentation calls to __tsan_func_entry() and __tsan_func_exit().
Emit instrumentation calls to @code{__tsan_func_entry()} and
@code{ __tsan_func_exit()}.
@paindex max-fsm-thread-path-insns
@item max-fsm-thread-path-insns
@@ -1537,15 +1552,16 @@ finite state automaton jump thread path.
@paindex threader-debug
@item threader-debug
threader-debug=[none|all] Enables verbose dumping of the threader solver.
Enables verbose dumping of the threader solver. This parameter has two
special values, @samp{none} and @samp{all}.
@paindex parloops-chunk-size
@item parloops-chunk-size
Chunk size of omp schedule for loops parallelized by parloops.
Chunk size of OpenMP schedule for loops parallelized by parloops.
@paindex parloops-schedule
@item parloops-schedule
Schedule type of omp schedule for loops parallelized by parloops (static,
Schedule type of OpenMP schedule for loops parallelized by parloops (static,
dynamic, guided, auto, runtime).
@paindex parloops-min-per-thread
@@ -1589,18 +1605,18 @@ by the RTL if-conversion pass for a branch that is considered unpredictable.
@paindex max-variable-expansions-in-unroller
@item max-variable-expansions-in-unroller
If @option{-fvariable-expansion-in-unroller} is used, the maximum number
of times that an individual variable will be expanded during loop unrolling.
of times that an individual variable is expanded during loop unrolling.
@paindex partial-inlining-entry-probability
@item partial-inlining-entry-probability
Maximum probability of the entry BB of split region
(in percent relative to entry BB of the function)
(as a percentage relative to entry BB of the function)
to make partial inlining happen.
@paindex max-tracked-strlens
@item max-tracked-strlens
Maximum number of strings for which strlen optimization pass will
track string lengths.
Maximum number of strings for which the strlen optimization pass
tracks string lengths.
@paindex gcse-after-reload-partial-fraction
@item gcse-after-reload-partial-fraction
@@ -1614,12 +1630,12 @@ permit performing redundancy elimination after reload.
@paindex max-loop-header-insns
@item max-loop-header-insns
The maximum number of insns in loop header duplicated
The maximum number of insns allowed in a loop header duplicated
by the copy loop headers pass.
@paindex vect-epilogues-nomask
@item vect-epilogues-nomask
Enable loop epilogue vectorization using smaller vector size.
If nonzero, enable loop epilogue vectorization using smaller vector size.
@paindex vect-partial-vector-usage
@item vect-partial-vector-usage
@@ -1633,39 +1649,45 @@ vector loads and stores.
@paindex vect-inner-loop-cost-factor
@item vect-inner-loop-cost-factor
The maximum factor which the loop vectorizer applies to the cost of statements
The maximum factor that the loop vectorizer applies to the cost of statements
in an inner loop relative to the loop being vectorized. The factor applied
is the maximum of the estimated number of iterations of the inner loop and
this parameter. The default value of this parameter is 50.
@paindex vect-induction-float
@item vect-induction-float
Enable loop vectorization of floating point inductions.
Enable loop vectorization of floating-point inductions.
@paindex vect-scalar-cost-multiplier
@item vect-scalar-cost-multiplier
Apply the given multiplier % to scalar loop costing during vectorization.
Increasing the cost multiplier will make vector loops more profitable.
Apply the given multiplier percentage to scalar loop costing during
vectorization.
Increasing the cost multiplier makes vector loops more profitable.
@paindex vrp-block-limit
@item vrp-block-limit
Maximum number of basic blocks before VRP switches to a lower memory algorithm.
Maximum number of basic blocks before value range propagation
switches to a simpler algorithm that uses less memory.
@paindex vrp-cstload-limit
@item vrp-cstload-limit
Maximum number of steps when inferring a value range from a load from a constant aggregate.
Maximum number of steps when inferring a value range from a load from
a constant aggregate.
@paindex vrp-sparse-threshold
@item vrp-sparse-threshold
Maximum number of basic blocks before VRP uses a sparse bitmap cache.
Maximum number of basic blocks before value range propagation
uses a sparse bitmap cache.
@paindex vrp-switch-limit
@item vrp-switch-limit
Maximum number of outgoing edges in a switch before VRP will not process it.
Maximum number of outgoing edges in a switch to allow it to be processed
by value range propagation.
@paindex vrp-vector-threshold
@item vrp-vector-threshold
Maximum number of basic blocks for VRP to use a basic cache vector.
Maximum number of basic blocks for value range propagation to
use a basic cache vector.
@paindex avoid-fma-max-bits
@item avoid-fma-max-bits
@@ -1693,12 +1715,12 @@ Whether codegen errors should be ICEs when @option{-fchecking}.
@paindex sms-max-ii-factor
@item sms-max-ii-factor
A factor for tuning the upper bound that swing modulo scheduler
A factor for tuning the upper bound that the swing modulo scheduler
uses for scheduling a loop.
@paindex lra-max-considered-reload-pseudos
@item lra-max-considered-reload-pseudos
The max number of reload pseudos which are considered during
The maximum number of reload pseudos that are considered during
spilling a non-reload pseudo.
@paindex lra-max-pseudos-points-log2-considered-for-preferences
@@ -1712,7 +1734,7 @@ consumption. The default value is 30.
@paindex max-pow-sqrt-depth
@item max-pow-sqrt-depth
Maximum depth of sqrt chains to use when synthesizing exponentiation
Maximum depth of square root chains to use when synthesizing exponentiation
by a real constant.
@paindex max-dse-active-local-stores
@@ -1721,11 +1743,12 @@ Maximum number of active local stores in RTL dead store elimination.
@paindex asan-instrument-allocas
@item asan-instrument-allocas
Enable asan allocas/VLAs protection.
Enable asan @code{alloca}/VLA protection.
@paindex max-iterations-computation-cost
@item max-iterations-computation-cost
Bound on the cost of an expression to compute the number of iterations.
Bound on the cost of an expression to compute the number of iterations
in the doloop optimizer.
@paindex max-isl-operations
@item max-isl-operations
@@ -1733,16 +1756,17 @@ Maximum number of isl operations, 0 means unlimited.
@paindex graphite-max-arrays-per-scop
@item graphite-max-arrays-per-scop
Maximum number of arrays per scop.
Maximum number of arrays per SCoP.
@paindex max-vartrack-reverse-op-size
@item max-vartrack-reverse-op-size
Max. size of loc list for which reverse ops should be added.
Maximum size of variable tracking loc list for which reverse ops should
be added.
@paindex fsm-scale-path-stmts
@item fsm-scale-path-stmts
Scale factor to apply to the number of statements in a threading path
crossing a loop backedge when comparing to
crossing a loop back edge when comparing to
@option{--param=max-jump-thread-duplication-stmts}.
@paindex uninit-control-dep-attempts
@@ -1752,22 +1776,23 @@ during uninitialized variable analysis.
@paindex uninit-max-chain-len
@item uninit-max-chain-len
Maximum number of predicates anded for each predicate ored in the normalized
Maximum number of predicates and-ed for each predicate or-ed in the normalized
predicate chain.
@paindex uninit-max-num-chains
@item uninit-max-num-chains
Maximum number of predicates ored in the normalized predicate chain.
Maximum number of predicates or-ed in the normalized predicate chain.
@paindex uninit-max-prune-work
@item uninit-max-prune-work
Maximum amount of work done to prune paths where the variable is always initialized.
Maximum amount of work done to prune paths where the variable is always
initialized.
@paindex sched-autopref-queue-depth
@item sched-autopref-queue-depth
Hardware autoprefetcher scheduler model control flag.
Number of lookahead cycles the model looks into; at '
' only enable instruction sorting heuristic.
Number of lookahead cycles the model looks into; a value of 0
only enables the instruction sorting heuristic.
@paindex loop-versioning-max-inner-insns
@item loop-versioning-max-inner-insns
@@ -1796,7 +1821,7 @@ Maximum size of a single store merging region in bytes.
@paindex store-forwarding-max-distance
@item store-forwarding-max-distance
Maximum number of instruction distance that a small store forwarded to a larger
load may stall. Value '0' disables the cost checks for the
load may stall. A value of 0 disables the cost checks for the
avoid-store-forwarding pass.
@paindex hash-table-verification-limit
@@ -1806,7 +1831,7 @@ for each searched element.
@paindex max-find-base-term-values
@item max-find-base-term-values
Maximum number of VALUEs handled during a single find_base_term call.
Maximum number of VALUEs handled during a single @code{find_base_term} call.
@paindex analyzer-max-enodes-per-program-point
@item analyzer-max-enodes-per-program-point
@@ -1845,17 +1870,18 @@ a diagnostic as infeasible.
@paindex gimple-fe-computed-hot-bb-threshold
@item gimple-fe-computed-hot-bb-threshold
The number of executions of a basic block which is considered hot.
The number of executions of a basic block that is considered hot.
The parameter is used only in GIMPLE FE.
@paindex analyzer-bb-explosion-factor
@item analyzer-bb-explosion-factor
The maximum number of 'after supernode' exploded nodes within the analyzer
The maximum number of ``after supernode'' exploded nodes within the analyzer
per supernode, before terminating analysis.
@paindex analyzer-text-art-string-ellipsis-threshold
@item analyzer-text-art-string-ellipsis-threshold
The number of bytes at which to ellipsize string literals in analyzer text art diagrams.
The number of bytes at which to ellipsize string literals in analyzer text
art diagrams.
@paindex analyzer-text-art-ideal-canvas-width
@item analyzer-text-art-ideal-canvas-width
@@ -1863,15 +1889,17 @@ The ideal width in characters of text art diagrams generated by the analyzer.
@paindex analyzer-text-art-string-ellipsis-head-len
@item analyzer-text-art-string-ellipsis-head-len
The number of literal bytes to show at the head of a string literal in text art when ellipsizing it.
The number of literal bytes to show at the head of a string literal in text
art when ellipsizing it.
@paindex analyzer-text-art-string-ellipsis-tail-len
@item analyzer-text-art-string-ellipsis-tail-len
The number of literal bytes to show at the tail of a string literal in text art when ellipsizing it.
The number of literal bytes to show at the tail of a string literal in text
art when ellipsizing it.
@paindex ranger-logical-depth
@item ranger-logical-depth
Maximum depth of logical expression evaluation ranger will look through
Maximum depth of logical expression evaluation ranger looks through
when evaluating outgoing edge ranges.
@paindex ranger-recompute-depth
@@ -1881,11 +1909,13 @@ in the outgoing range calculator.
@paindex relation-block-limit
@item relation-block-limit
Maximum number of relations the oracle will register in a basic block.
Maximum number of relations the dominator tree oracle registers in a
basic block during value range relational processing.
@paindex transitive-relations-work-bound
@item transitive-relations-work-bound
Work bound when discovering transitive relations from existing relations.
Work bound when discovering transitive relations from existing relations
in value range relational processing.
@paindex min-pagesize
@item min-pagesize
@@ -1893,12 +1923,12 @@ Minimum page size for warning and early break vectorization purposes.
@paindex openacc-kernels
@item openacc-kernels
Specify mode of OpenACC `kernels' constructs handling.
With @option{--param=openacc-kernels=decompose}, OpenACC `kernels'
Specify mode of OpenACC @code{kernels} constructs handling.
With @option{--param=openacc-kernels=decompose}, OpenACC @code{kernels}
constructs are decomposed into parts, a sequence of compute
constructs, each then handled individually.
This is work in progress.
With @option{--param=openacc-kernels=parloops}, OpenACC `kernels'
With @option{--param=openacc-kernels=parloops}, OpenACC @code{kernels}
constructs are handled by the @samp{parloops} pass, en bloc.
This is the current default.
@@ -1966,54 +1996,56 @@ extending loads and truncating stores.
@paindex aarch64-float-recp-precision
@item aarch64-float-recp-precision
The number of Newton iterations for calculating the reciprocal for float type.
The precision of division is proportional to this param when division
The precision of division is proportional to this parameter when division
approximation is enabled. The default value is 1.
@paindex aarch64-double-recp-precision
@item aarch64-double-recp-precision
The number of Newton iterations for calculating the reciprocal for double type.
The precision of division is proportional to this param when division
The precision of division is proportional to this parameter when division
approximation is enabled. The default value is 2.
@paindex aarch64-autovec-preference
@item aarch64-autovec-preference
An old alias for @option{-mautovec-preference}. If both
@option{-mautovec-preference} and @option{--param=aarch64-autovec-preference}
are passed, the @option{--param} value will be used.
are passed, the @option{--param} value is used.
@paindex aarch64-ldp-policy
@item aarch64-ldp-policy
Fine-grained policy for load pairs.
Fine-grained policy for load pair (@code{stp}) instructions.
With @option{--param=aarch64-ldp-policy=default}, use the policy of the
tuning structure. This is the current default.
With @option{--param=aarch64-ldp-policy=always}, emit ldp regardless
With @option{--param=aarch64-ldp-policy=always}, emit @code{ldp} regardless
of alignment.
With @option{--param=aarch64-ldp-policy=never}, do not emit ldp.
With @option{--param=aarch64-ldp-policy=aligned}, emit ldp only if the
With @option{--param=aarch64-ldp-policy=never}, do not emit @code{ldp}.
With @option{--param=aarch64-ldp-policy=aligned}, emit @code{ldp} only if the
source pointer is aligned to at least double the alignment of the type.
@paindex aarch64-stp-policy
@item aarch64-stp-policy
Fine-grained policy for store pairs.
Fine-grained policy for store pair (@code{stp}) instructions.
With @option{--param=aarch64-stp-policy=default}, use the policy of the
tuning structure. This is the current default.
With @option{--param=aarch64-stp-policy=always}, emit stp regardless
With @option{--param=aarch64-stp-policy=always}, emit @code{stp} regardless
of alignment.
With @option{--param=aarch64-stp-policy=never}, do not emit stp.
With @option{--param=aarch64-stp-policy=aligned}, emit stp only if the
With @option{--param=aarch64-stp-policy=never}, do not emit @code{stp}.
With @option{--param=aarch64-stp-policy=aligned}, emit @code{stp} only if the
source pointer is aligned to at least double the alignment of the type.
@paindex aarch64-ldp-alias-check-limit
@item aarch64-ldp-alias-check-limit
Limit on the number of alias checks performed by the AArch64 load/store pair
fusion pass when attempting to form an ldp/stp. Higher values make the pass
fusion pass when attempting to form an @code{ldp}/@code{stp}.
Higher values make the pass
more aggressive at re-ordering loads over stores, at the expense of increased
compile time.
@paindex aarch64-ldp-writeback
@item aarch64-ldp-writeback
Param to control which writeback opportunities we try to handle in the AArch64
load/store pair fusion pass. A value of zero disables writeback handling. One
Parameter to control which writeback opportunities the AArch64
load/store pair fusion pass attempts to handle.
A value of zero disables writeback handling. One
means we try to form pairs involving one or more existing individual writeback
accesses where possible. A value of two means we also try to opportunistically
form writeback opportunities by folding in trailing destructive updates of the
@@ -2024,20 +2056,20 @@ base register used by a pair.
The tuning for some AArch64 CPUs tries to take both latencies and issue
rates into account when deciding whether a loop should be vectorized
using SVE, vectorized using Advanced SIMD, or not vectorized at all.
If this parameter is set to @var{n}, GCC will not use this heuristic
If this parameter is set to @var{n}, GCC does not use this heuristic
for loops that are known to execute in fewer than @var{n} Advanced
SIMD iterations.
@paindex aarch64-vect-unroll-limit
@item aarch64-vect-unroll-limit
The vectorizer will use available tuning information to determine whether it
The vectorizer uses available tuning information to determine whether it
would be beneficial to unroll the main vectorized loop and by how much. This
parameter set's the upper bound of how much the vectorizer will unroll the main
parameter sets the upper bound of how much the vectorizer unrolls the main
loop. The default value is four.
@paindex aarch64-tag-memory-loop-threshold
@item aarch64-tag-memory-loop-threshold
Param to control the treshold in number of granules beyond which an
Parameter to control the treshold in number of granules beyond which an
explicit loop for tagging a memory block is emitted. The memory block
is tagged using MTE instructions.
@@ -2106,7 +2138,7 @@ The following choices of @var{name} are available on i386 and x86_64 targets:
@table @gcctabopt
@paindex x86-stlf-window-ninsns
@item x86-stlf-window-ninsns
Instructions number above which STFL stall penalty can be compensated.
Number of instructions above which STFL stall penalty can be compensated.
@paindex x86-stv-max-visits
@item x86-stv-max-visits

View File

@@ -24,7 +24,7 @@
-param=align-loop-iterations=
Common Joined UInteger Var(param_align_loop_iterations) Init(4) Param Optimization
Loops iterating at least selected number of iterations will get loop alignment.
Loops iterating at least selected number of iterations get loop alignment.
-param=align-threshold=
Common Joined UInteger Var(param_align_threshold) Init(100) IntegerRange(1, 65536) Param Optimization
@@ -80,7 +80,7 @@ Whether the scheduling description is mostly a cycle-accurate model of the targe
-param=hwasan-instrument-stack=
Common Joined UInteger Var(param_hwasan_instrument_stack) Init(1) IntegerRange(0, 1) Param Optimization
Enable hwasan instrumentation of statically sized stack-allocated variables.
Enable hwasan instrumentation of statically-sized stack-allocated variables.
-param=hwasan-random-frame-tag=
Common Joined UInteger Var(param_hwasan_random_frame_tag) Init(1) IntegerRange(0, 1) Param Optimization
@@ -124,15 +124,15 @@ Set the estimated probability in percentage for builtin expect. The default valu
-param=builtin-string-cmp-inline-length=
Common Joined UInteger Var(param_builtin_string_cmp_inline_length) Init(3) IntegerRange(0, 100) Param Optimization
The maximum length of a constant string for a builtin string cmp call eligible for inlining. The default value is 3.
The maximum length of a constant string for a builtin string comparison call eligible for inlining. The default value is 3.
-param=case-values-threshold=
Common Joined UInteger Var(param_case_values_threshold) Param Optimization
The smallest number of different values for which it is best to use a jump-table instead of a tree of conditional branches, if 0, use the default for the machine.
The smallest number of different values for which it is best to use a jump-table instead of a tree of conditional branches. If 0, use the default for the machine.
-param=comdat-sharing-probability=
Common Joined UInteger Var(param_comdat_sharing_probability) Init(20) Param Optimization
Probability that COMDAT function will be shared with different compilation unit.
Probability that COMDAT function is shared with a different compilation unit.
-param=cxx-max-namespaces-for-diagnostic-help=
Common Joined UInteger Var(param_cxx_max_namespaces_for_diagnostic_help) Init(1000) Param
@@ -152,15 +152,15 @@ Maximal estimated growth of function body caused by early inlining of single cal
-param=file-cache-files=
Common Joined UInteger Var(param_file_cache_files) Init(16) Param
Max number of files in the file cache.
Maximum number of files in the file cache.
-param=file-cache-lines=
Common Joined UInteger Var(param_file_cache_lines) Init(0) Param
Max number of lines to index into file cache. When 0 this is automatically sized.
Maximum number of lines to index into file cache. When 0 this is automatically sized.
-param=fsm-scale-path-stmts=
Common Joined UInteger Var(param_fsm_scale_path_stmts) Init(2) IntegerRange(1, 10) Param Optimization
Scale factor to apply to the number of statements in a threading path crossing a loop backedge when comparing to max-jump-thread-duplication-stmts.
Scale factor to apply to the number of statements in a threading path crossing a loop back edge when comparing to max-jump-thread-duplication-stmts.
-param=fully-pipelined-fma=
Common Joined UInteger Var(param_fully_pipelined_fma) Init(0) IntegerRange(0, 1) Param Optimization
@@ -183,7 +183,7 @@ Scaling factor in calculation of maximum distance an expression can be moved by
-param=gcse-unrestricted-cost=
Common Joined UInteger Var(param_gcse_unrestricted_cost) Init(3) Param Optimization
Cost at which GCSE optimizations will not constraint the distance an expression can travel.
Cost at which GCSE optimizations does not constrain the distance an expression can travel.
-param=ggc-min-expand=
Common Joined UInteger Var(param_ggc_min_expand) Init(30) Param
@@ -235,7 +235,7 @@ The denominator n of fraction 1/n of the execution frequency of the entry block
-param=inline-heuristics-hint-percent=
Common Joined UInteger Var(param_inline_heuristics_hint_percent) Init(200) Optimization IntegerRange(100, 1000000) Param
The scale (in percents) applied to inline-insns-single and auto limits when heuristics hints that inlining is very profitable.
The scale (as a percentage) applied to inline-insns-single and auto limits when heuristics hints that inlining is very profitable.
-param=inline-min-speedup=
Common Joined UInteger Var(param_inline_min_speedup) Init(30) Optimization IntegerRange(0, 100) Param
@@ -243,7 +243,7 @@ The minimal estimated speedup allowing inliner to ignore inline-insns-single and
-param=inline-unit-growth=
Common Joined UInteger Var(param_inline_unit_growth) Init(40) Optimization Param
How much can given compilation unit grow because of the inlining (in percent).
How much can given compilation unit grow because of the inlining (as a percentage).
-param=integer-share-limit=
Common Joined UInteger Var(param_integer_share_limit) Init(251) IntegerRange(2, 65536) Param
@@ -271,19 +271,19 @@ When propagating IPA-CP effect estimates, multiply frequencies of recursive edge
-param=ipa-cp-recursion-penalty=
Common Joined UInteger Var(param_ipa_cp_recursion_penalty) Init(40) IntegerRange(0, 100) Param Optimization
Percentage penalty the recursive functions will receive when they are evaluated for cloning.
Percentage penalty recursive functions receive when they are evaluated for cloning.
-param=ipa-cp-single-call-penalty=
Common Joined UInteger Var(param_ipa_cp_single_call_penalty) Init(15) IntegerRange(0, 100) Param Optimization
Percentage penalty functions containing a single call to another function will receive when they are evaluated for cloning.
Percentage penalty functions containing a single call to another function receive when they are evaluated for cloning.
-param=ipa-cp-sweeps=
Common Joined UInteger Var(param_ipa_cp_sweeps) Init(3) IntegerRange(1, 100) Param Optimization
The number of times the interprocedural constant propagation will traverse all functions to make cloning decisions.
The number of times the interprocedural constant propagation traverses all functions to make cloning decisions.
-param=ipa-cp-unit-growth=
Common Joined UInteger Var(param_ipa_cp_unit_growth) Init(10) Param Optimization
How much can given compilation unit grow because of the interprocedural constant propagation (in percent).
How much can given compilation unit grow because of the interprocedural constant propagation (as a percentage).
-param=ipa-cp-large-unit-insns=
Common Joined UInteger Var(param_ipa_cp_large_unit_insns) Optimization Init(16000) Param
@@ -299,7 +299,7 @@ Maximum number of statements visited during jump function offset discovery.
-param=ipa-max-aa-steps=
Common Joined UInteger Var(param_ipa_max_aa_steps) Init(25000) Param Optimization
Maximum number of statements that will be visited by IPA formal parameter analysis based on alias analysis in any given function.
Maximum number of statements that are visited by IPA formal parameter analysis based on alias analysis in any given function.
-param=ipa-max-agg-items=
Common Joined UInteger Var(param_ipa_max_agg_items) Init(16) Param Optimization
@@ -319,7 +319,7 @@ Maximal number of boundary endpoints of case ranges of switch statement used dur
-param=ipa-sra-deref-prob-threshold=
Common Joined UInteger Var(param_ipa_sra_deref_prob_threshold) Init(50) IntegerRange(0, 100) Param Optimization
Minimum probability (in percent) of dereferencing of a function pointer parameter for it to be considered for replacement with simple values.
Minimum probability (as a percentage) of dereferencing of a function pointer parameter for it to be considered for replacement with simple values.
-param=ipa-sra-max-replacements=
Common Joined UInteger Var(param_ipa_sra_max_replacements) Optimization Init(8) IntegerRange(0, 16) Param
@@ -339,7 +339,7 @@ The number of registers in each class kept unused by loop invariant motion.
-param=ira-max-conflict-table-size=
Common Joined UInteger Var(param_ira_max_conflict_table_size) Init(1000) Param Optimization
Max size of conflict table in MB.
Maximum size of conflict table in MB.
-param=ira-simple-lra-insn-threshold=
Common Joined UInteger Var(param_ira_simple_lra_insn_threshold) Init(1000) Param Optimization
@@ -347,31 +347,31 @@ Approximate function insn number in 1K units triggering simple local RA.
-param=ira-max-loops-num=
Common Joined UInteger Var(param_ira_max_loops_num) Init(100) Param Optimization
Max loops number for regional RA.
Maximum number of loops for regional RA.
-param=ira-consider-dup-in-all-alts=
Common Joined UInteger Var(param_ira_consider_dup_in_all_alts) Init(1) IntegerRange(0, 1) Param Optimization
Control ira to consider matching constraint (duplicated operand number) heavily in all available alternatives for preferred register class. If it is set as zero, it means ira only respects the matching constraint when it's in the only available alternative with an appropriate register class. Otherwise, it means ira will check all available alternatives for preferred register class even if it has found some choice with an appropriate register class and respect the found qualified matching constraint.
Control IRA to consider matching constraint (duplicated operand number) heavily in all available alternatives for preferred register class. If it is set as zero, it means IRA only respects the matching constraint when it's in the only available alternative with an appropriate register class. Otherwise, it means IRA checks all available alternatives for preferred register class even if it has found some choice with an appropriate register class and respect the found qualified matching constraint.
-param=iv-always-prune-cand-set-bound=
Common Joined UInteger Var(param_iv_always_prune_cand_set_bound) Init(10) Param Optimization
If number of candidates in the set is smaller, we always try to remove unused ivs during its optimization.
If number of candidates in the set is smaller, we always try to remove unused induction variables during its optimization.
-param=iv-consider-all-candidates-bound=
Common Joined UInteger Var(param_iv_consider_all_candidates_bound) Init(40) Param Optimization
Bound on number of candidates below that all candidates are considered in iv optimizations.
Bound on number of candidates below that all candidates are considered in induction variable optimizations.
-param=iv-max-considered-uses=
Common Joined UInteger Var(param_iv_max_considered_uses) Init(250) Param Optimization
Bound on number of iv uses in loop optimized in iv optimizations.
Bound on number of induction variable uses in loop optimized in IV optimizations.
-param=jump-table-max-growth-ratio-for-size=
Common Joined UInteger Var(param_jump_table_max_growth_ratio_for_size) Init(300) IntegerRange(0, 10000) Param Optimization
The maximum code size growth ratio when expanding into a jump table (in percent). The parameter is used when optimizing for size.
The maximum code size growth ratio when expanding into a jump table (as a percentage). The parameter is used when optimizing for size.
-param=jump-table-max-growth-ratio-for-speed=
Common Joined UInteger Var(param_jump_table_max_growth_ratio_for_speed) Init(800) IntegerRange(0, 10000) Param Optimization
The maximum code size growth ratio when expanding into a jump table (in percent). The parameter is used when optimizing for speed.
The maximum code size growth ratio when expanding into a jump table (as a percentage). The parameter is used when optimizing for speed.
-param=l1-cache-line-size=
Common Joined UInteger Var(param_l1_cache_line_size) Init(32) Param Optimization
@@ -403,7 +403,7 @@ The size of L2 cache.
-param=large-function-growth=
Common Joined UInteger Var(param_large_function_growth) Optimization Init(100) Param
Maximal growth due to inlining of large function (in percent).
Maximal growth due to inlining of large function (as a percentage).
-param=large-function-insns=
Common Joined UInteger Var(param_large_function_insns) Optimization Init(2700) Param
@@ -415,7 +415,7 @@ The size of stack frame to be considered large.
-param=large-stack-frame-growth=
Common Joined UInteger Var(param_stack_frame_growth) Optimization Init(1000) Param
Maximal stack frame growth due to inlining (in percent).
Maximal stack frame growth due to inlining (as a percentage).
-param=large-unit-insns=
Common Joined UInteger Var(param_large_unit_insns) Optimization Init(10000) Param
@@ -463,7 +463,7 @@ The maximum number of instructions in an outer loop that is being considered for
-param=lra-inheritance-ebb-probability-cutoff=
Common Joined UInteger Var(param_lra_inheritance_ebb_probability_cutoff) Init(40) IntegerRange(0, 100) Param Optimization
Minimal fall-through edge probability in percentage used to add BB to inheritance EBB in LRA.
Minimal fall-through edge probability as a percentage, used to add BB to inheritance EBB in LRA.
-param=lra-max-considered-reload-pseudos=
Common Joined UInteger Var(param_lra_max_considered_reload_pseudos) Init(500) Param Optimization
@@ -483,7 +483,7 @@ Maximal size of a partition for LTO (in estimated instructions).
-param=lto-max-streaming-parallelism=
Common Joined UInteger Var(param_max_lto_streaming_parallelism) Init(32) IntegerRange(1, 65536) Param
maximal number of LTO partitions streamed in parallel.
Maximal number of LTO partitions streamed in parallel.
-param=lto-min-partition=
Common Joined UInteger Var(param_min_partition_size) Init(10000) Param
@@ -572,7 +572,7 @@ The maximum memory locations recorded by cselib.
-param=max-debug-marker-count=
Common Joined UInteger Var(param_max_debug_marker_count) Init(100000) Param Optimization
Max. count of debug markers to expand or inline.
Maximum count of debug markers to expand or inline.
-param=max-delay-slot-insn-search=
Common Joined UInteger Var(param_max_delay_slot_insn_search) Init(100) Param Optimization
@@ -808,7 +808,7 @@ Maximum amount of iterations of the pass over a function.
-param=max-tracked-strlens=
Common Joined UInteger Var(param_max_tracked_strlens) Init(10000) Param Optimization
Maximum number of strings for which strlen optimization pass will track string lengths.
Maximum number of strings for which strlen optimization pass tracks string lengths.
-param=max-tree-if-conversion-phi-args=
Common Joined UInteger Var(param_max_tree_if_conversion_phi_args) Init(4) IntegerRange(2, 65536) Param Optimization
@@ -832,19 +832,19 @@ The maximum depth of a loop nest to be unswitched.
-param=max-variable-expansions-in-unroller=
Common Joined UInteger Var(param_max_variable_expansions) Init(1) Param Optimization
If -fvariable-expansion-in-unroller is used, the maximum number of times that an individual variable will be expanded during loop unrolling.
If -fvariable-expansion-in-unroller is used, the maximum number of times that an individual variable is expanded during loop unrolling.
-param=max-vartrack-expr-depth=
Common Joined UInteger Var(param_max_vartrack_expr_depth) Init(12) Param Optimization
Max. recursion depth for expanding var tracking expressions.
Maximum recursion depth for expanding var tracking expressions.
-param=max-vartrack-reverse-op-size=
Common Joined UInteger Var(param_max_vartrack_reverse_op_size) Init(50) Param Optimization
Max. size of loc list for which reverse ops should be added.
Maximum size of loc list for which reverse ops should be added.
-param=max-vartrack-size=
Common Joined UInteger Var(param_max_vartrack_size) Init(50000000) Param Optimization
Max. size of var tracking hash tables.
Maximum size of var tracking hash tables.
-param=max-find-base-term-values=
Common Joined UInteger Var(param_max_find_base_term_values) Init(200) Param Optimization
@@ -860,7 +860,7 @@ Inline recursively only when the probability of call being executed exceeds the
-param=min-insn-to-prefetch-ratio=
Common Joined UInteger Var(param_min_insn_to_prefetch_ratio) Init(9) Param Optimization
Min. ratio of insns to prefetches to enable prefetching for a loop with an unknown trip count.
Minimum ratio of insns to prefetches to enable prefetching for a loop with an unknown trip count.
-param=min-loop-cond-split-prob=
Common Joined UInteger Var(param_min_loop_cond_split_prob) Init(30) IntegerRange(0, 100) Param Optimization
@@ -940,7 +940,7 @@ Enum(parloops_schedule_type) String(runtime) Value(PARLOOPS_SCHEDULE_RUNTIME)
-param=partial-inlining-entry-probability=
Common Joined UInteger Var(param_partial_inlining_entry_probability) Init(70) Optimization IntegerRange(0, 100) Param
Maximum probability of the entry BB of split region (in percent relative to entry BB of the function) to make partial inlining happen.
Maximum probability of the entry BB of split region (as a percentage relative to entry BB of the function) to make partial inlining happen.
-param=phiopt-factor-max-stmts-live=
Common Joined UInteger Var(param_phiopt_factor_max_stmts_live) Init(5) Optimization IntegerRange(0, 100) Param
@@ -960,7 +960,7 @@ The number of insns executed before prefetch is completed.
-param=prefetch-min-insn-to-mem-ratio=
Common Joined UInteger Var(param_prefetch_min_insn_to_mem_ratio) Init(3) Param Optimization
Min. ratio of insns to mem ops to enable prefetching in a loop.
Minimum ratio of insns to mem ops to enable prefetching in a loop.
-param=prefetch-minimum-stride=
Common Joined UInteger Var(param_prefetch_minimum_stride) Init(-1) Param Optimization
@@ -997,7 +997,7 @@ Enum(ranger_debug) String(all) Value(RANGER_DEBUG_ALL)
-param=ranger-logical-depth=
Common Joined UInteger Var(param_ranger_logical_depth) Init(6) IntegerRange(1, 999) Param Optimization
Maximum depth of logical expression evaluation ranger will look through when
Maximum depth of logical expression evaluation ranger looks through when
evaluating outgoing edge ranges.
-param=ranger-recompute-depth=
@@ -1007,7 +1007,7 @@ outgoing range calculator.
-param=relation-block-limit=
Common Joined UInteger Var(param_relation_block_limit) Init(200) IntegerRange(0, 9999) Param Optimization
Maximum number of relations the oracle will register in a basic block.
Maximum number of relations the oracle registers in a basic block.
-param=transitive-relations-work-bound=
Common Joined UInteger Var(param_transitive_relations_work_bound) Init(256) IntegerRange(0, 9999) Param Optimization
@@ -1043,7 +1043,7 @@ Which -fsched-pressure algorithm to apply.
-param=sched-spec-prob-cutoff=
Common Joined UInteger Var(param_sched_spec_prob_cutoff) Init(40) IntegerRange(0, 100) Param Optimization
The minimal probability of speculation success (in percents), so that speculative insn will be scheduled.
The minimal probability of speculation success (as a percentage), so that speculative insns are scheduled.
-param=sched-state-edge-prob-cutoff=
Common Joined UInteger Var(param_sched_state_edge_prob_cutoff) Init(10) IntegerRange(0, 100) Param Optimization
@@ -1083,7 +1083,7 @@ A factor for tuning the upper bound that swing modulo scheduler uses for schedul
-param=sms-min-sc=
Common Joined UInteger Var(param_sms_min_sc) Init(2) IntegerRange(1, 2) Param Optimization
The minimum value of stage count that swing modulo scheduler will generate.
The minimum value of stage count that swing modulo scheduler generates.
-param=sra-max-scalarization-size-Osize=
Common Joined UInteger Var(param_sra_max_scalarization_size_size) Param Optimization
@@ -1095,7 +1095,7 @@ Maximum size, in storage units, of an aggregate which should be considered for s
-param=sra-max-propagations=
Common Joined UInteger Var(param_sra_max_propagations) Param Optimization Init(32)
Maximum number of artificial accesses to enable forward propagation that Scalar Replacement of Aggregates will keep for one local variable.
Maximum number of artificial accesses to enable forward propagation that Scalar Replacement of Aggregates keeps for one local variable.
-param=ssa-name-def-chain-limit=
Common Joined UInteger Var(param_ssa_name_def_chain_limit) Init(512) Param Optimization
@@ -1184,23 +1184,23 @@ The percentage of function, weighted by execution frequency, that must be covere
-param=tracer-max-code-growth=
Common Joined UInteger Var(param_tracer_max_code_growth) Init(100) Param Optimization
Maximal code growth caused by tail duplication (in percent).
Maximal code growth caused by tail duplication (as a percentage).
-param=tracer-min-branch-probability=
Common Joined UInteger Var(param_tracer_min_branch_probability) Init(50) IntegerRange(0, 100) Param Optimization
Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is not available.
Stop forward growth if the probability of best edge is less than this threshold (as a percentage). Used when profile feedback is not available.
-param=tracer-min-branch-probability-feedback=
Common Joined UInteger Var(param_tracer_min_branch_probability_feedback) Init(80) IntegerRange(0, 100) Param Optimization
Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is available.
Stop forward growth if the probability of best edge is less than this threshold (as a percentage). Used when profile feedback is available.
-param=tracer-min-branch-ratio=
Common Joined UInteger Var(param_tracer_min_branch_ratio) Init(10) IntegerRange(0, 100) Param Optimization
Stop reverse growth if the reverse probability of best edge is less than this threshold (in percent).
Stop reverse growth if the reverse probability of best edge is less than this threshold (as a percentage).
-param=tree-reassoc-width=
Common Joined UInteger Var(param_tree_reassoc_width) IntegerRange(0, 256) Param Optimization
Set the maximum number of instructions executed in parallel in reassociated tree. If 0, use the target dependent heuristic.
Set the maximum number of instructions executed in parallel in reassociated tree. If 0, use the target-dependent heuristic.
-param=tsan-distinguish-volatile=
Common Joined UInteger Var(param_tsan_distinguish_volatile) IntegerRange(0, 1) Param
@@ -1313,7 +1313,7 @@ Maximum number of basic blocks before VRP uses a sparse bitmap cache.
-param=vrp-switch-limit=
Common Joined UInteger Var(param_vrp_switch_limit) Init(50) Optimization Param
Maximum number of outgoing edges in a switch before VRP will not process it.
Maximum number of outgoing edges in a switch before VRP does not process it.
-param=vrp-vector-threshold=
Common Joined UInteger Var(param_vrp_vector_threshold) Init(250) Optimization Param