Search notes:

gcc --param

gcc --param name=value …
gcc --param is used to modify the values that control the amount of optimazation being performed when compiling a source.

List of names

The following list was produces with gcc --help=param.
gcc --help=param -Q finds shows the parameters's minimal, maximal and default values.
Name
align-loop-iterations Loops iterating at least selected number of iterations will get loop alignment.
align-threshold <1,65536> Select fraction of the maximal frequency of executions of basic block in function given basic block get alignment.
analyzer-bb-explosion-factor The maximum number of 'after supernode' exploded nodes within the analyzer per supernode, before terminating analysis.
analyzer-max-enodes-per-program-point The maximum number of exploded nodes per program point within the analyzer, before terminating analysis of that point.
analyzer-max-recursion-depth The maximum number of times a callsite can appear in a call stack within the analyzer, before terminating analysis of a call that would recurse deeper.
analyzer-min-snodes-for-call-summary The minimum number of supernodes within a function for the analyzer to consider summarizing its effects at call sites.
asan-globals <0,1> Enable asan globals protection.
asan-instrument-allocas <0,1> Enable asan allocas/VLAs protection.
asan-instrument-reads <0,1> Enable asan load operations protection.
asan-instrument-writes <0,1> Enable asan store operations protection.
asan-instrumentation-with-call-threshold Use callbacks instead of inline code if number of accesses in function becomes greater or equal to this number.
asan-memintrin <0,1> Enable asan builtin functions protection.
asan-stack <0,1> Enable asan stack protection.
asan-use-after-return <0,1> Enable asan detection of use-after-return bugs.
avg-loop-niter <1,65536> Average number of iterations of a loop.
avoid-fma-max-bits <0,512> Maximum number of bits for which we avoid creating FMAs.
builtin-expect-probability <0,100> Set the estimated probability in percentage for builtin expect. The default value is 90% probability.
builtin-string-cmp-inline-length <0,100> The maximum length of a constant string for a builtin string cmp call eligible for inlining. The default value is 3.
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 0, use the default for the machine.
comdat-sharing-probability Probability that COMDAT function will be shared with different compilation unit.
cxx-max-namespaces-for-diagnostic-help Maximum number of namespaces to search for alternatives when name lookup fails.
dse-max-alias-queries-per-store Maximum number of queries into the alias oracle per store.
dse-max-object-size Maximum size (in bytes) of objects tracked bytewise by dead store elimination.
early-inlining-insns Maximal estimated growth of function body caused by early inlining of single call.
fsm-maximum-phi-arguments <1,999999> Maximum number of arguments a PHI may have before the FSM threader will not try to thread through its block.
fsm-scale-path-blocks <1,10> Scale factor to apply to the number of blocks in a threading path when comparing to the number of (scaled) statements.
fsm-scale-path-stmts <1,10> Scale factor to apply to the number of statements in a threading path when comparing to the number of (scaled) blocks.
gcse-after-reload-critical-fraction The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload.
gcse-after-reload-partial-fraction The threshold ratio for performing partial redundancy elimination after reload.
gcse-cost-distance-ratio Scaling factor in calculation of maximum distance an expression can be moved by GCSE optimizations.
gcse-unrestricted-cost Cost at which GCSE optimizations will not constraint the distance an expression can travel.
ggc-min-expand Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap.
ggc-min-heapsize Minimum heap size before we start collecting garbage, in kilobytes.
gimple-fe-computed-hot-bb-threshold The number of executions of a basic block which is considered hot. The parameter is used only in GIMPLE FE.
graphite-allow-codegen-errors <0,1> Whether codegen errors should be ICEs when -fchecking.
graphite-max-arrays-per-scop Maximum number of arrays per SCoP.
graphite-max-nb-scop-params Maximum number of parameters in a SCoP.
hash-table-verification-limit The number of elements for which hash table verification is done for each searched element.
hot-bb-count-fraction The denominator n of fraction 1/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 (used in non-LTO mode).
hot-bb-count-ws-permille <0,1000> The number of most executed permilles of the profiled execution of the entire program to which the execution count of a basic block must be part of in order to be considered hot (used in LTO mode).
hot-bb-frequency-fraction The denominator n of fraction 1/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.
hsa-gen-debug-stores <0,1> Level of hsa debug stores verbosity.
inline-heuristics-hint-percent <100,1000000> The scale (in percents) applied to inline-insns-single and auto limits when heuristics hints that inlining is very profitable.
inline-min-speedup <0,100> The minimal estimated speedup allowing inliner to ignore inline-insns-single and inline-insns-auto.
inline-unit-growth How much can given compilation unit grow because of the inlining (in percent).
integer-share-limit <2,65536> The upper bound for sharing integer constants.
ipa-cp-eval-threshold Threshold ipa-cp opportunity evaluation that is still considered beneficial to clone.
ipa-cp-loop-hint-bonus Compile-time bonus IPA-CP assigns to candidates which make loop bounds or strides known.
ipa-cp-max-recursive-depth Maximum depth of recursive cloning for self-recursive function.
ipa-cp-min-recursive-probability Recursive cloning only when the probability of call being executed exceeds the parameter.
ipa-cp-recursion-penalty <0,100> Percentage penalty the recursive functions will receive when they are evaluated for cloning.
ipa-cp-single-call-penalty <0,100> Percentage penalty functions containing a single call to another function will receive when they are evaluated for cloning.
ipa-cp-unit-growth How much can given compilation unit grow because of the interprocedural constant propagation (in percent).
ipa-cp-value-list-size Maximum size of a list of values associated with each parameter for interprocedural constant propagation.
ipa-max-aa-steps Maximum number of statements that will be visited by IPA formal parameter analysis based on alias analysis in any given function.
ipa-max-agg-items Maximum number of aggregate content items for a parameter in jump functions and lattices.
ipa-max-param-expr-ops Maximum number of operations in a parameter expression that can be handled by IPA analysis.
ipa-max-switch-predicate-bounds Maximal number of boundary endpoints of case ranges of switch statement used during IPA function summary generation.
ipa-sra-max-replacements <0,16> Maximum pieces that IPA-SRA tracks per formal parameter, as a consequence, also the maximum number of replacements of a formal parameter.
ipa-sra-ptr-growth-factor Maximum allowed growth of number and total size of new parameters that ipa-sra replaces a pointer to an aggregate with.
ira-loop-reserved-regs The number of registers in each class kept unused by loop invariant motion.
ira-max-conflict-table-size Max size of conflict table in MB.
ira-max-loops-num Max loops number for regional RA.
iv-always-prune-cand-set-bound If number of candidates in the set is smaller, we always try to remove unused ivs during its optimization.
iv-consider-all-candidates-bound Bound on number of candidates below that all candidates are considered in iv optimizations.
iv-max-considered-uses Bound on number of iv uses in loop optimized in iv optimizations.
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 optimizing for size.
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 optimizing for speed.
l1-cache-line-size The size of L1 cache line.
l1-cache-size The size of L1 cache.
l2-cache-size The size of L2 cache.
large-function-growth Maximal growth due to inlining of large function (in percent).
large-function-insns The size of function body to be considered large.
large-stack-frame-growth Maximal stack frame growth due to inlining (in percent).
large-stack-frame The size of stack frame to be considered large.
large-unit-insns The size of translation unit to be considered large.
lim-expensive The minimum cost of an expensive expression in the loop invariant motion.
logical-op-non-short-circuit <-1,1> True if a non-short-circuit operation is optimal.
loop-block-tile-size Size of tiles for loop blocking.
loop-interchange-max-num-stmts The maximum number of stmts in loop nest for loop interchange.
loop-interchange-stride-ratio The minimum stride ratio for loop interchange to be profitable.
loop-invariant-max-bbs-in-loop Max basic blocks number in loop for loop invariant motion.
loop-max-datarefs-for-datadeps Maximum number of datarefs in loop for building loop data dependencies.
loop-versioning-max-inner-insns The maximum number of instructions in an inner loop that is being considered for versioning.
loop-versioning-max-outer-insns The maximum number of instructions in an outer loop that is being considered for versioning, on top of the instructions in inner loops.
lra-inheritance-ebb-probability-cutoff <0,100> Minimal fall-through edge probability in percentage used to add BB to inheritance EBB in LRA.
lra-max-considered-reload-pseudos The max number of reload pseudos which are considered during spilling a non-reload pseudo.
lto-max-partition Maximal size of a partition for LTO (in estimated instructions).
lto-max-streaming-parallelism <1,65536> maximal number of LTO partitions streamed in parallel.
lto-min-partition Minimal size of a partition for LTO (in estimated instructions).
lto-partitions <1,65536> Number of partitions the program should be split to.
max-average-unrolled-insns The maximum number of instructions to consider to unroll in a loop on average.
max-combine-insns <2,4> The maximum number of insns combine tries to combine.
max-completely-peel-loop-nest-depth The maximum depth of a loop nest we completely peel.
max-completely-peel-times The maximum number of peelings of a single loop that is peeled completely.
max-completely-peeled-insns The maximum number of insns of a completely peeled loop.
max-crossjump-edges The maximum number of incoming edges to consider for crossjumping.
max-cse-insns The maximum instructions CSE process before flushing.
max-cse-path-length <1,65536> The maximum length of path considered in cse.
max-cselib-memory-locations The maximum memory locations recorded by cselib.
max-debug-marker-count Max. count of debug markers to expand or inline.
max-delay-slot-insn-search The maximum number of instructions to consider to fill a delay slot.
max-delay-slot-live-search The maximum number of instructions to consider to find accurate live register information.
max-dse-active-local-stores Maximum number of active local stores in RTL dead store elimination.
max-early-inliner-iterations The maximum number of nested indirect inlining performed by early inliner.
max-fields-for-field-sensitive Maximum number of fields in a structure before pointer analysis treats the structure as a single variable.
max-find-base-term-values Maximum number of VALUEs handled during a single find_base_term call.
max-fsm-thread-length <1,999999> Maximum number of basic blocks on a finite state automaton jump thread path.
max-fsm-thread-path-insns <1,999999> Maximum number of instructions to copy when duplicating blocks on a finite state automaton jump thread path.
max-fsm-thread-paths <1,999999> Maximum number of new jump thread paths to create for a finite state automaton.
max-gcse-insertion-ratio The maximum ratio of insertions to deletions of expressions in GCSE.
max-gcse-memory The maximum amount of memory to be allocated by GCSE.
max-goto-duplication-insns The maximum number of insns to duplicate when unfactoring computed gotos.
max-grow-copy-bb-insns The maximum expansion factor when copying basic blocks.
max-hoist-depth Maximum depth of search in the dominator tree for expressions to hoist.
max-inline-insns-auto The maximum number of instructions when automatically inlining.
max-inline-insns-recursive-auto The maximum number of instructions non-inline function can grow to via recursive inlining.
max-inline-insns-recursive The maximum number of instructions inline function can grow to via recursive inlining.
max-inline-insns-single The maximum number of instructions in a single function eligible for inlining.
max-inline-insns-size The maximum number of instructions when inlining for size.
max-inline-insns-small The maximum number of instructions when automatically inlining small functions.
max-inline-recursive-depth-auto The maximum depth of recursive inlining for non-inline functions.
max-inline-recursive-depth The maximum depth of recursive inlining for inline functions.
max-isl-operations Maximum number of isl operations, 0 means unlimited.
max-iterations-computation-cost Bound on the cost of an expression to compute the number of iterations.
max-iterations-to-track Bound on the number of iterations the brute force # of iterations analysis algorithm evaluates.
max-jump-thread-duplication-stmts Maximum number of statements allowed in a block that needs to be duplicated when threading jumps.
max-last-value-rtl The maximum number of RTL nodes that can be recorded as combiner's last value.
max-loop-header-insns The maximum number of insns in loop header duplicated by the copy loop headers pass.
max-modulo-backtrack-attempts The maximum number of backtrack attempts the scheduler should make when modulo scheduling a loop.
max-partial-antic-length Maximum length of partial antic set when performing tree pre optimization.
max-peel-branches The maximum number of branches on the path through the peeled sequence.
max-peel-times The maximum number of peelings of a single loop.
max-peeled-insns The maximum number of insns of a peeled loop.
max-pending-list-length The maximum length of scheduling's pending operations list.
max-pipeline-region-blocks The maximum number of blocks 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 interblock scheduling.
max-pow-sqrt-depth <1,32> Maximum depth of sqrt chains to use when synthesizing exponentiation by a real constant.
max-predicted-iterations <0,65536> The maximum number of loop iterations we predict statically.
max-reload-search-insns The maximum number of instructions to search backward when looking for equivalent reload.
max-rtl-if-conversion-insns <0,99> Maximum number of insns in a basic block to consider for RTL if-conversion.
max-rtl-if-conversion-predictable-cost <0,200> Maximum permissible cost for the sequence that would be generated by the RTL if-conversion pass for a branch that is considered predictable.
max-rtl-if-conversion-unpredictable-cost <0,200> Maximum permissible cost for the sequence that would be generated by the RTL if-conversion pass for a branch that is considered unpredictable.
max-sched-extend-regions-iters The maximum number of iterations through CFG to extend regions.
max-sched-insn-conflict-delay <1,10> The maximum conflict delay for an insn to be considered for speculative motion.
max-sched-ready-insns <1,65536> The maximum number of instructions ready to be issued to be considered by the scheduler during the first scheduling pass.
max-sched-region-blocks The maximum number of blocks in a region to be considered for interblock scheduling.
max-sched-region-insns The maximum number of insns in a region to be considered for interblock scheduling.
max-slsr-cand-scan <1,999999> Maximum length of candidate scans for straight-line strength reduction.
max-speculative-devirt-maydefs Maximum number of may-defs visited when devirtualizing speculatively.
max-ssa-name-query-depth <1,10> Maximum recursion depth allowed when querying a property of an SSA name.
max-stores-to-merge <2,65536> Maximum number of constant stores to merge in the store merging pass.
max-stores-to-sink Maximum number of conditional store pairs that can be sunk.
max-tail-merge-comparisons Maximum amount of similar bbs to compare a bb with.
max-tail-merge-iterations Maximum amount of iterations of the pass over a function.
max-tracked-strlens Maximum number of strings for which strlen optimization pass will track string lengths.
max-tree-if-conversion-phi-args <2,65536> Maximum number of arguments in a PHI supported by TREE if-conversion unless the loop is marked with simd pragma.
max-unroll-times The maximum number of unrollings of a single loop.
max-unrolled-insns The maximum number of instructions to consider to unroll in a loop.
max-unswitch-insns The maximum number of insns of an unswitched loop.
max-unswitch-level The maximum number of unswitchings in a single loop.
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.
max-vartrack-expr-depth Max. recursion depth for expanding var tracking expressions.
max-vartrack-reverse-op-size Max. size of loc list for which reverse ops should be added.
max-vartrack-size Max. size of var tracking hash tables.
max-vrp-switch-assertions Maximum number of assertions to add along the default edge of a switch statement during VRP.
min-crossjump-insns <1,65536> The minimum number of matching instructions to consider for crossjumping.
min-inline-recursive-probability Inline recursively only when the probability of call being executed exceeds the parameter.
min-insn-to-prefetch-ratio Min. ratio of insns to prefetches to enable prefetching for a loop with an unknown trip count.
min-loop-cond-split-prob <0,100> The minimum threshold for probability of semi-invariant condition statement to trigger loop split.
min-nondebug-insn-uid The minimum UID to be used for a nondebug insn.
min-size-for-stack-sharing The minimum size of variables taking part in stack slot sharing when not optimizing.
min-spec-prob The minimum probability of reaching a source block for interblock speculative scheduling.
min-vect-loop-bound If -ftree-vectorize is used, the minimal loop bound of a loop to be considered for vectorization.
parloops-chunk-size Chunk size of omp schedule for loops parallelized by parloops.
parloops-min-per-thread <2,65536> Minimum number of iterations per thread of an innermost parallelized loop.
parloops-schedule [static|dynamic|guided|auto|runtime] Schedule type of omp schedule for loops parallelized by parloops.
partial-inlining-entry-probability <0,100> Maximum probability of the entry BB of split region (in percent relative to entry BB of the function) to make partial inlining happen.
predictable-branch-outcome <0,50> Maximal estimated outcome of branch considered predictable.
prefetch-dynamic-strides <0,1> Whether software prefetch hints should be issued for non-constant strides.
prefetch-latency The number of insns executed before prefetch is completed.
prefetch-min-insn-to-mem-ratio Min. ratio of insns to mem ops to enable prefetching in a loop.
prefetch-minimum-stride The minimum constant stride beyond which we should use prefetch hints for.
profile-func-internal-id <0,1> Use internal function id in profile lookup.
rpo-vn-max-loop-depth <2,65536> Maximum depth of a loop nest to fully value-number optimistically.
sccvn-max-alias-queries-per-access Maximum number of disambiguations to perform per memory access.
scev-max-expr-complexity Bound on the complexity of the expressions in the scalar evolutions analyzer.
scev-max-expr-size Bound on size of expressions used in the scalar evolutions analyzer.
sched-autopref-queue-depth Hardware autoprefetcher scheduler model control flag. Number of lookahead cycles the model looks into, at '0' only enable instruction sorting heuristic. Disabled by default.
sched-mem-true-dep-cost Minimal distance between possibly conflicting store and load.
sched-pressure-algorithm <1,2> Which -fsched-pressure algorithm to apply.
sched-spec-prob-cutoff <0,100> The minimal probability of speculation success (in percents), so that speculative insn will be scheduled.
sched-state-edge-prob-cutoff <0,100> The minimum probability an edge must have for the scheduler to save its state across it.
selsched-insns-to-rename Maximum number of instructions in the ready list that are considered eligible for renaming.
selsched-max-lookahead The maximum size of the lookahead window of selective scheduling.
selsched-max-sched-times <1,65536> Maximum number of times that an insn could be scheduled.
simultaneous-prefetches The number of prefetches that can run at the same time.
sink-frequency-threshold <0,100> Target block's relative execution frequency (as a percentage) required to sink a statement.
slp-max-insns-in-bb Maximum number of instructions in basic block to be considered for SLP vectorization.
sms-dfa-history <0,16> The number of cycles the swing modulo scheduler considers when checking conflicts using DFA.
sms-loop-average-count-threshold A threshold on the average loop count considered by the swing modulo scheduler.
sms-max-ii-factor <1,16> A factor for tuning the upper bound that swing modulo scheduler uses for scheduling a loop.
sms-min-sc <1,2> The minimum value of stage count that swing modulo scheduler will generate.
sra-max-propagations Maximum number of artificial accesses to enable forward propagation that Scalar Replacement of Aggregates will keep for one local variable.
sra-max-scalarization-size-Osize Maximum size, in storage units, of an aggregate which should be considered for scalarization when compiling for size.
sra-max-scalarization-size-Ospeed Maximum size, in storage units, of an aggregate which should be considered for scalarization when compiling for speed.
ssa-name-def-chain-limit The maximum number of SSA_NAME assignments to follow in determining a value.
ssp-buffer-size <1,65536> The lower bound for a buffer to be considered for stack smashing protection.
stack-clash-protection-guard-size <12,30> Size of the stack guard expressed as a power of two in bytes.
stack-clash-protection-probe-interval <10,16> Interval in which to probe the stack expressed as a power of two in bytes.
store-merging-allow-unaligned <0,1> Allow the store merging pass to introduce unaligned stores if it is legal to do so.
store-merging-max-size <1,65536> Maximum size of a single store merging region in bytes.
switch-conversion-max-branch-ratio <1,65536> The maximum ratio between array size and switch branches for a switch conversion to take place.
tm-max-aggregate-size Size in bytes after which thread-local aggregates should be instrumented with the logging functions instead of save/restore pairs.
tracer-dynamic-coverage-feedback <0,100> The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is available.
tracer-dynamic-coverage <0,100> The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is not available.
tracer-max-code-growth Maximal code growth caused by tail duplication (in percent).
tracer-min-branch-probability-feedback <0,100> Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is available.
tracer-min-branch-probability <0,100> Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is not available.
tracer-min-branch-ratio <0,100> Stop reverse growth if the reverse probability of best edge is less than this threshold (in percent).
tree-reassoc-width Set the maximum number of instructions executed in parallel in reassociated tree. If 0, use the target dependent heuristic.
uninit-control-dep-attempts <1,65536> Maximum number of nested calls to search for control dependencies during uninitialized variable analysis.
uninlined-function-insns <0,1000000> Instruction accounted for function prologue, epilogue and other overhead.
uninlined-function-time <0,1000000> Time accounted for function prologue, epilogue and other overhead.
uninlined-thunk-insns <0,1000000> Instruction accounted for function thunk overhead.
uninlined-thunk-time <0,1000000> Time accounted for function thunk overhead.
unlikely-bb-count-fraction The denominator n of fraction 1/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.
unroll-jam-max-unroll Maximum unroll factor for the unroll-and-jam transformation.
unroll-jam-min-percent <0,100> Minimum percentage of memrefs that must go away for unroll-and-jam to be considered profitable.
use-after-scope-direct-emission-threshold Use direct poisoning/unpoisoning instructions for variables smaller or equal to this number.
use-canonical-types <0,1> Whether to use canonical types.
vect-epilogues-nomask <0,1> Enable loop epilogue vectorization using smaller vector size.
vect-max-peeling-for-alignment <-1,64> Maximum number of loop peels to enhance alignment of data references in a loop.
vect-max-version-for-alias-checks Bound on number of runtime checks inserted by the vectorizer's loop versioning for alias check.
vect-max-version-for-alignment-checks Bound on number of runtime checks inserted by the vectorizer's loop versioning for alignment check.

See also

GCC options

Index

Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: 8 attempt to write a readonly database in /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php:78 Stack trace: #0 /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php(78): PDOStatement->execute(Array) #1 /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php(30): insert_webrequest_('/notes/developm...', 1759421684, '216.73.216.42', 'Mozilla/5.0 App...', NULL) #2 /home/httpd/vhosts/renenyffenegger.ch/httpsdocs/notes/development/languages/C-C-plus-plus/GCC/options/param/index(288): insert_webrequest() #3 {main} thrown in /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php on line 78