; Parameter options of the compiler.

; Copyright (C) 2019-2022 Free Software Foundation, Inc.
;
; This file is part of GCC.
;
; GCC is free software; you can redistribute it and/or modify it under
; the terms of the GNU General Public License as published by the Free
; Software Foundation; either version 3, or (at your option) any later
; version.
;
; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
; WARRANTY; without even the implied warranty of MERCHANTABILITY or
; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
; for more details.
;
; You should have received a copy of the GNU General Public License
; along with GCC; see the file COPYING3.  If not see
; <http://www.gnu.org/licenses/>.

; See the GCC internals manual (options.texi) for a description of this file's format.

; Please try to keep this file in ASCII collating order.

-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.

-param=align-threshold=
Common Joined UInteger Var(param_align_threshold) Init(100) IntegerRange(1, 65536) Param Optimization
Select fraction of the maximal frequency of executions of basic block in function given basic block get alignment.

-param=asan-globals=
Common Joined UInteger Var(param_asan_globals) Init(1) IntegerRange(0, 1) Param
Enable asan globals protection.

-param=asan-instrument-allocas=
Common Joined UInteger Var(param_asan_protect_allocas) Init(1) IntegerRange(0, 1) Param Optimization
Enable asan allocas/VLAs protection.

-param=asan-instrument-reads=
Common Joined UInteger Var(param_asan_instrument_reads) Init(1) IntegerRange(0, 1) Param Optimization
Enable asan load operations protection.

-param=asan-instrument-writes=
Common Joined UInteger Var(param_asan_instrument_writes) Init(1) IntegerRange(0, 1) Param Optimization
Enable asan store operations protection.

-param=asan-instrumentation-with-call-threshold=
Common Joined UInteger Var(param_asan_instrumentation_with_call_threshold) Init(7000) Param Optimization
Use callbacks instead of inline code if number of accesses in function becomes greater or equal to this number.

-param=asan-memintrin=
Common Joined UInteger Var(param_asan_memintrin) Init(1) IntegerRange(0, 1) Param Optimization
Enable asan builtin functions protection.

-param=asan-stack=
Common Joined UInteger Var(param_asan_stack) Init(1) IntegerRange(0, 1) Param Optimization
Enable asan stack protection.

-param=asan-use-after-return=
Common Joined UInteger Var(param_asan_use_after_return) Init(1) IntegerRange(0, 1) Param Optimization
Enable asan detection of use-after-return bugs.

-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.

-param=hwasan-random-frame-tag=
Common Joined UInteger Var(param_hwasan_random_frame_tag) Init(1) IntegerRange(0, 1) Param Optimization
Use random base tag for each frame, as opposed to base always zero.

-param=hwasan-instrument-allocas=
Common Joined UInteger Var(param_hwasan_instrument_allocas) Init(1) IntegerRange(0, 1) Param Optimization
Enable hwasan instrumentation of allocas/VLAs.

-param=hwasan-instrument-reads=
Common Joined UInteger Var(param_hwasan_instrument_reads) Init(1) IntegerRange(0, 1) Param Optimization
Enable hwasan instrumentation of load operations.

-param=hwasan-instrument-writes=
Common Joined UInteger Var(param_hwasan_instrument_writes) Init(1) IntegerRange(0, 1) Param Optimization
Enable hwasan instrumentation of store operations.

-param=hwasan-instrument-mem-intrinsics=
Common Joined UInteger Var(param_hwasan_instrument_mem_intrinsics) Init(1) IntegerRange(0, 1) Param Optimization
Enable hwasan instrumentation of builtin functions.

-param=avg-loop-niter=
Common Joined UInteger Var(param_avg_loop_niter) Init(10) IntegerRange(1, 65536) Param Optimization
Average number of iterations of a loop.

-param=avoid-fma-max-bits=
Common Joined UInteger Var(param_avoid_fma_max_bits) IntegerRange(0, 512) Param Optimization
Maximum number of bits for which we avoid creating FMAs.

-param=builtin-expect-probability=
Common Joined UInteger Var(param_builtin_expect_probability) Init(90) IntegerRange(0, 100) Param Optimization
Set the estimated probability in percentage for builtin expect. The default value is 90% probability.

-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.

-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.

-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.

-param=cxx-max-namespaces-for-diagnostic-help=
Common Joined UInteger Var(param_cxx_max_namespaces_for_diagnostic_help) Init(1000) Param
Maximum number of namespaces to search for alternatives when name lookup fails.

-param=dse-max-alias-queries-per-store=
Common Joined UInteger Var(param_dse_max_alias_queries_per_store) Init(256) Param Optimization
Maximum number of queries into the alias oracle per store.

-param=dse-max-object-size=
Common Joined UInteger Var(param_dse_max_object_size) Init(256) Param Optimization
Maximum size (in bytes) of objects tracked bytewise by dead store elimination.

-param=early-inlining-insns=
Common Joined UInteger Var(param_early_inlining_insns) Init(6) Optimization Param
Maximal estimated growth of function body caused by early inlining of single call.

-param=evrp-sparse-threshold=
Common Joined UInteger Var(param_evrp_sparse_threshold) Init(800) Optimization Param
Maximum number of basic blocks before EVRP uses a sparse cache.

-param=evrp-switch-limit=
Common Joined UInteger Var(param_evrp_switch_limit) Init(50) Optimization Param
Maximum number of outgoing edges in a switch before EVRP will not process it.

-param=fsm-scale-path-blocks=
Common Joined UInteger Var(param_fsm_scale_path_blocks) Init(3) IntegerRange(1, 10) Param Optimization
Scale factor to apply to the number of blocks in a threading path when comparing to the number of (scaled) statements.

-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 when comparing to the number of (scaled) blocks.

-param=gcse-after-reload-critical-fraction=
Common Joined UInteger Var(param_gcse_after_reload_critical_fraction) Init(10) Param Optimization
The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload.

-param=gcse-after-reload-partial-fraction=
Common Joined UInteger Var(param_gcse_after_reload_partial_fraction) Init(3) Param Optimization
The threshold ratio for performing partial redundancy elimination after reload.

-param=gcse-cost-distance-ratio=
Common Joined UInteger Var(param_gcse_cost_distance_ratio) Init(10) Param Optimization
Scaling factor in calculation of maximum distance an expression can be moved by GCSE optimizations.

-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.

-param=ggc-min-expand=
Common Joined UInteger Var(param_ggc_min_expand) Init(30) Param
Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap.

-param=ggc-min-heapsize=
Common Joined UInteger Var(param_ggc_min_heapsize) Init(4096) Param
Minimum heap size before we start collecting garbage, in kilobytes.

-param=gimple-fe-computed-hot-bb-threshold=
Common Joined UInteger Var(param_gimple_fe_computed_hot_bb_threshold) Param
The number of executions of a basic block which is considered hot. The parameter is used only in GIMPLE FE.

-param=graphite-allow-codegen-errors=
Common Joined UInteger Var(param_graphite_allow_codegen_errors) IntegerRange(0, 1) Param
Whether codegen errors should be ICEs when -fchecking.

-param=graphite-max-arrays-per-scop=
Common Joined UInteger Var(param_graphite_max_arrays_per_scop) Init(100) Param Optimization
Maximum number of arrays per SCoP.

-param=graphite-max-nb-scop-params=
Common Joined UInteger Var(param_graphite_max_nb_scop_params) Init(10) Param Optimization
Maximum number of parameters in a SCoP.

-param=hash-table-verification-limit=
Common Joined UInteger Var(param_hash_table_verification_limit) Init(10) Param
The number of elements for which hash table verification is done for each searched element.

-param=hot-bb-count-fraction=
Common Joined UInteger Var(param_hot_bb_count_fraction) Init(10000) Param
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).

-param=hot-bb-count-ws-permille=
Common Joined UInteger Var(param_hot_bb_count_ws_permille) Init(990) IntegerRange(0, 1000) Param
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).

-param=hot-bb-frequency-fraction=
Common Joined UInteger Var(param_hot_bb_frequency_fraction) Init(1000) Param
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.

-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.

-param=inline-min-speedup=
Common Joined UInteger Var(param_inline_min_speedup) Init(30) Optimization IntegerRange(0, 100) Param
The minimal estimated speedup allowing inliner to ignore inline-insns-single and inline-insns-auto.

-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).

-param=integer-share-limit=
Common Joined UInteger Var(param_integer_share_limit) Init(251) IntegerRange(2, 65536) Param
The upper bound for sharing integer constants.

-param=ipa-cp-eval-threshold=
Common Joined UInteger Var(param_ipa_cp_eval_threshold) Init(500) Param Optimization
Threshold ipa-cp opportunity evaluation that is still considered beneficial to clone.

-param=ipa-cp-loop-hint-bonus=
Common Joined UInteger Var(param_ipa_cp_loop_hint_bonus) Init(64) Param Optimization
Compile-time bonus IPA-CP assigns to candidates which make loop bounds or strides known.

-param=ipa-cp-max-recursive-depth=
Common Joined UInteger Var(param_ipa_cp_max_recursive_depth) Init(8) Param Optimization
Maximum depth of recursive cloning for self-recursive function.

-param=ipa-cp-min-recursive-probability=
Common Joined UInteger Var(param_ipa_cp_min_recursive_probability) Init(2) Param Optimization
Recursive cloning only when the probability of call being executed exceeds the parameter.

-param=ipa-cp-recursive-freq-factor=
Common Joined UInteger Var(param_ipa_cp_recursive_freq_factor) Init(6) Param Optimization
When propagating IPA-CP effect estimates, multiply frequencies of recursive edges that bring back an unchanged value by this factor.

-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.

-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.

-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).

-param=ipa-cp-large-unit-insns=
Common Joined UInteger Var(param_ipa_cp_large_unit_insns) Optimization Init(16000) Param
The size of translation unit that IPA-CP pass considers large.

-param=ipa-cp-value-list-size=
Common Joined UInteger Var(param_ipa_cp_value_list_size) Init(8) Param Optimization
Maximum size of a list of values associated with each parameter for interprocedural constant propagation.

-param=ipa-cp-profile-count-base=
Common Joined UInteger Var(param_ipa_cp_profile_count_base) Init(10) IntegerRange(0, 100) Param Optimization
When using profile feedback, use the edge at this percentage position in frequncy histogram as the bases for IPA-CP heuristics.

-param=ipa-jump-function-lookups=
Common Joined UInteger Var(param_ipa_jump_function_lookups) Init(8) Param Optimization
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.

-param=ipa-max-agg-items=
Common Joined UInteger Var(param_ipa_max_agg_items) Init(16) Param Optimization
Maximum number of aggregate content items for a parameter in jump functions and lattices.

-param=ipa-max-param-expr-ops=
Common Joined UInteger Var(param_ipa_max_param_expr_ops) Init(10) Param Optimization
Maximum number of operations in a parameter expression that can be handled by IPA analysis.

-param=ipa-max-loop-predicates=
Common Joined UInteger Var(param_ipa_max_loop_predicates) Init(16) Param Optimization
Maximum number of different predicates used to track properties of loops in IPA analysis.

-param=ipa-max-switch-predicate-bounds=
Common Joined UInteger Var(param_ipa_max_switch_predicate_bounds) Init(5) Param Optimization
Maximal number of boundary endpoints of case ranges of switch statement used during IPA function summary generation.

-param=ipa-sra-max-replacements=
Common Joined UInteger Var(param_ipa_sra_max_replacements) Optimization Init(8) IntegerRange(0, 16) Param
Maximum pieces that IPA-SRA tracks per formal parameter, as a consequence, also the maximum number of replacements of a formal parameter.

-param=ipa-sra-ptr-growth-factor=
Common Joined UInteger Var(param_ipa_sra_ptr_growth_factor) Init(2) Param Optimization
Maximum allowed growth of number and total size of new parameters that ipa-sra replaces a pointer to an aggregate with.

-param=ira-loop-reserved-regs=
Common Joined UInteger Var(param_ira_loop_reserved_regs) Init(2) Param Optimization
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.

-param=ira-max-loops-num=
Common Joined UInteger Var(param_ira_max_loops_num) Init(100) Param Optimization
Max loops number 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.

-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.

-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.

-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.

-param=jump-table-max-growth-ratio-for-size=
Common Joined UInteger Var(param_jump_table_max_growth_ratio_for_size) Init(300) Param Optimization
The maximum code size growth ratio when expanding into a jump table (in percent).  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) Param Optimization
The maximum code size growth ratio when expanding into a jump table (in percent).  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
The size of L1 cache line.

-param=destructive-interference-size=
Common Joined UInteger Var(param_destruct_interfere_size) Init(0) Param Optimization
The minimum recommended offset between two concurrently-accessed objects to
avoid additional performance degradation due to contention introduced by the
implementation.  Typically the L1 cache line size, but can be larger to
accommodate a variety of target processors with different cache line sizes.
C++17 code might use this value in structure layout, but is strongly
discouraged from doing so in public ABIs.

-param=constructive-interference-size=
Common Joined UInteger Var(param_construct_interfere_size) Init(0) Param Optimization
The maximum recommended size of contiguous memory occupied by two objects
accessed with temporal locality by concurrent threads.  Typically the L1 cache
line size, but can be smaller to accommodate a variety of target processors with
different cache line sizes.

-param=l1-cache-size=
Common Joined UInteger Var(param_l1_cache_size) Init(64) Param Optimization
The size of L1 cache.

-param=l2-cache-size=
Common Joined UInteger Var(param_l2_cache_size) Init(512) Param Optimization
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).

-param=large-function-insns=
Common Joined UInteger Var(param_large_function_insns) Optimization Init(2700) Param
The size of function body to be considered large.

-param=large-stack-frame=
Common Joined UInteger Var(param_large_stack_frame) Init(256) Optimization Param
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).

-param=large-unit-insns=
Common Joined UInteger Var(param_large_unit_insns) Optimization Init(10000) Param
The size of translation unit to be considered large.

-param=lazy-modules=
C++ Joined UInteger Var(param_lazy_modules) Init(32768) Param
Maximum number of concurrently open C++ module files when lazy loading.

-param=lim-expensive=
Common Joined UInteger Var(param_lim_expensive) Init(20) Param Optimization
The minimum cost of an expensive expression in the loop invariant motion.

-param=logical-op-non-short-circuit=
Common Joined UInteger Var(param_logical_op_non_short_circuit) Init(-1) IntegerRange(0, 1) Param
True if a non-short-circuit operation is optimal.

-param=loop-block-tile-size=
Common Joined UInteger Var(param_loop_block_tile_size) Init(51) Param Optimization
Size of tiles for loop blocking.

-param=loop-interchange-max-num-stmts=
Common Joined UInteger Var(param_loop_interchange_max_num_stmts) Init(64) Param Optimization
The maximum number of stmts in loop nest for loop interchange.

-param=loop-interchange-stride-ratio=
Common Joined UInteger Var(param_loop_interchange_stride_ratio) Init(2) Param Optimization
The minimum stride ratio for loop interchange to be profitable.

-param=loop-invariant-max-bbs-in-loop=
Common Joined UInteger Var(param_loop_invariant_max_bbs_in_loop) Init(10000) Param Optimization
Max basic blocks number in loop for loop invariant motion.

-param=loop-max-datarefs-for-datadeps=
Common Joined UInteger Var(param_loop_max_datarefs_for_datadeps) Init(1000) Param Optimization
Maximum number of datarefs in loop for building loop data dependencies.

-param=loop-versioning-max-inner-insns=
Common Joined UInteger Var(param_loop_versioning_max_inner_insns) Init(200) Param Optimization
The maximum number of instructions in an inner loop that is being considered for versioning.

-param=loop-versioning-max-outer-insns=
Common Joined UInteger Var(param_loop_versioning_max_outer_insns) Init(100) Param Optimization
The maximum number of instructions in an outer loop that is being considered for versioning, on top of the instructions in inner loops.

-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.

-param=lra-max-considered-reload-pseudos=
Common Joined UInteger Var(param_lra_max_considered_reload_pseudos) Init(500) Param Optimization
The max number of reload pseudos which are considered during spilling a non-reload pseudo.

-param=lto-max-partition=
Common Joined UInteger Var(param_max_partition_size) Init(1000000) Param
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.

-param=lto-min-partition=
Common Joined UInteger Var(param_min_partition_size) Init(10000) Param
Minimal size of a partition for LTO (in estimated instructions).

-param=lto-partitions=
Common Joined UInteger Var(param_lto_partitions) Init(128) IntegerRange(1, 65536) Param
Number of partitions the program should be split to.

-param=max-average-unrolled-insns=
Common Joined UInteger Var(param_max_average_unrolled_insns) Init(80) Param Optimization
The maximum number of instructions to consider to unroll in a loop on average.

-param=max-combine-insns=
Common Joined UInteger Var(param_max_combine_insns) Init(4) IntegerRange(2, 4) Param Optimization
The maximum number of insns combine tries to combine.

-param=max-completely-peel-loop-nest-depth=
Common Joined UInteger Var(param_max_unroll_iterations) Init(8) Param Optimization
The maximum depth of a loop nest we completely peel.

-param=max-completely-peel-times=
Common Joined UInteger Var(param_max_completely_peel_times) Init(16) Param Optimization
The maximum number of peelings of a single loop that is peeled completely.

-param=max-completely-peeled-insns=
Common Joined UInteger Var(param_max_completely_peeled_insns) Init(200) Param Optimization
The maximum number of insns of a completely peeled loop.

-param=max-crossjump-edges=
Common Joined UInteger Var(param_max_crossjump_edges) Init(100) Param Optimization
The maximum number of incoming edges to consider for crossjumping.

-param=max-cse-insns=
Common Joined UInteger Var(param_max_cse_insns) Init(1000) Param Optimization
The maximum instructions CSE process before flushing.

-param=max-cse-path-length=
Common Joined UInteger Var(param_max_cse_path_length) Init(10) IntegerRange(1, 65536) Param Optimization
The maximum length of path considered in cse.

-param=max-cselib-memory-locations=
Common Joined UInteger Var(param_max_cselib_memory_locations) Init(500) Param Optimization
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.

-param=max-delay-slot-insn-search=
Common Joined UInteger Var(param_max_delay_slot_insn_search) Init(100) Param Optimization
The maximum number of instructions to consider to fill a delay slot.

-param=max-delay-slot-live-search=
Common Joined UInteger Var(param_max_delay_slot_live_search) Init(333) Param Optimization
The maximum number of instructions to consider to find accurate live register information.

-param=max-dse-active-local-stores=
Common Joined UInteger Var(param_max_dse_active_local_stores) Init(5000) Param Optimization
Maximum number of active local stores in RTL dead store elimination.

-param=max-early-inliner-iterations=
Common Joined UInteger Var(param_early_inliner_max_iterations) Init(1) Param Optimization
The maximum number of nested indirect inlining performed by early inliner.

-param=max-fields-for-field-sensitive=
Common Joined UInteger Var(param_max_fields_for_field_sensitive) Param
Maximum number of fields in a structure before pointer analysis treats the structure as a single variable.

-param=max-fsm-thread-path-insns=
Common Joined UInteger Var(param_max_fsm_thread_path_insns) Init(100) IntegerRange(1, 999999) Param Optimization
Maximum number of instructions to copy when duplicating blocks on a finite state automaton jump thread path.

-param=max-gcse-insertion-ratio=
Common Joined UInteger Var(param_max_gcse_insertion_ratio) Init(20) Param Optimization
The maximum ratio of insertions to deletions of expressions in GCSE.

-param=max-gcse-memory=
Common Joined UInteger Var(param_max_gcse_memory) Init(131072) Param Optimization
The maximum amount of memory to be allocated by GCSE, in kilobytes.

-param=max-goto-duplication-insns=
Common Joined UInteger Var(param_max_goto_duplication_insns) Init(8) Param Optimization
The maximum number of insns to duplicate when unfactoring computed gotos.

-param=max-grow-copy-bb-insns=
Common Joined UInteger Var(param_max_grow_copy_bb_insns) Init(8) Param Optimization
The maximum expansion factor when copying basic blocks.

-param=max-hoist-depth=
Common Joined UInteger Var(param_max_hoist_depth) Init(30) Param Optimization
Maximum depth of search in the dominator tree for expressions to hoist.

-param=max-inline-functions-called-once-loop-depth=
Common Joined UInteger Var(param_inline_functions_called_once_loop_depth) Init(6) Optimization Param
Maximum loop depth of a call which is considered for inlining functions called once.

-param=max-inline-functions-called-once-insns=
Common Joined UInteger Var(param_inline_functions_called_once_insns) Init(4000) Optimization Param
Maximum combined size of caller and callee which is inlined if callee is called once.

-param=max-inline-insns-auto=
Common Joined UInteger Var(param_max_inline_insns_auto) Init(15) Optimization Param
The maximum number of instructions when automatically inlining.

-param=max-inline-insns-recursive=
Common Joined UInteger Var(param_max_inline_insns_recursive) Optimization Init(450) Param
The maximum number of instructions inline function can grow to via recursive inlining.

-param=max-inline-insns-recursive-auto=
Common Joined UInteger Var(param_max_inline_insns_recursive_auto) Optimization Init(450) Param
The maximum number of instructions non-inline function can grow to via recursive inlining.

-param=max-inline-insns-single=
Common Joined UInteger Var(param_max_inline_insns_single) Optimization Init(70) Param
The maximum number of instructions in a single function eligible for inlining.

-param=max-inline-insns-size=
Common Joined UInteger Var(param_max_inline_insns_size) Optimization Param
The maximum number of instructions when inlining for size.

-param=max-inline-insns-small=
Common Joined UInteger Var(param_max_inline_insns_small) Optimization Param
The maximum number of instructions when automatically inlining small functions.

-param=max-inline-recursive-depth=
Common Joined UInteger Var(param_max_inline_recursive_depth) Optimization Init(8) Param
The maximum depth of recursive inlining for inline functions.

-param=max-inline-recursive-depth-auto=
Common Joined UInteger Var(param_max_inline_recursive_depth_auto) Optimization Init(8) Param
The maximum depth of recursive inlining for non-inline functions.

-param=max-isl-operations=
Common Joined UInteger Var(param_max_isl_operations) Init(350000) Param Optimization
Maximum number of isl operations, 0 means unlimited.

-param=max-iterations-computation-cost=
Common Joined UInteger Var(param_max_iterations_computation_cost) Init(10) Param Optimization
Bound on the cost of an expression to compute the number of iterations.

-param=max-iterations-to-track=
Common Joined UInteger Var(param_max_iterations_to_track) Init(1000) Param Optimization
Bound on the number of iterations the brute force # of iterations analysis algorithm evaluates.

-param=max-jump-thread-duplication-stmts=
Common Joined UInteger Var(param_max_jump_thread_duplication_stmts) Init(15) Param Optimization
Maximum number of statements allowed in a block that needs to be duplicated when threading jumps.

-param=max-jump-thread-paths=
Common Joined UInteger Var(param_max_jump_thread_paths) Init(64) IntegerRange(1, 65536) Param Optimization
Search space limit for the backwards jump threader.

-param=max-last-value-rtl=
Common Joined UInteger Var(param_max_last_value_rtl) Init(10000) Param Optimization
The maximum number of RTL nodes that can be recorded as combiner's last value.

-param=max-loop-header-insns=
Common Joined UInteger Var(param_max_loop_header_insns) Init(20) Param Optimization
The maximum number of insns in loop header duplicated by the copy loop headers pass.

-param=max-modulo-backtrack-attempts=
Common Joined UInteger Var(param_max_modulo_backtrack_attempts) Init(40) Param Optimization
The maximum number of backtrack attempts the scheduler should make when modulo scheduling a loop.

-param=min-pagesize=
Common Joined UInteger Var(param_min_pagesize) Init(4096) Param Optimization
Minimum page size for warning purposes.

-param=max-partial-antic-length=
Common Joined UInteger Var(param_max_partial_antic_length) Init(100) Param Optimization
Maximum length of partial antic set when performing tree pre optimization.

-param=max-peel-branches=
Common Joined UInteger Var(param_max_peel_branches) Init(32) Param Optimization
The maximum number of branches on the path through the peeled sequence.

-param=max-peel-times=
Common Joined UInteger Var(param_max_peel_times) Init(16) Param Optimization
The maximum number of peelings of a single loop.

-param=max-peeled-insns=
Common Joined UInteger Var(param_max_peeled_insns) Init(100) Param Optimization
The maximum number of insns of a peeled loop.

-param=max-pending-list-length=
Common Joined UInteger Var(param_max_pending_list_length) Init(32) Param Optimization
The maximum length of scheduling's pending operations list.

-param=max-pipeline-region-blocks=
Common Joined UInteger Var(param_max_pipeline_region_blocks) Init(15) Param Optimization
The maximum number of blocks in a region to be considered for interblock scheduling.

-param=max-pipeline-region-insns=
Common Joined UInteger Var(param_max_pipeline_region_insns) Init(200) Param Optimization
The maximum number of insns in a region to be considered for interblock scheduling.

-param=max-pow-sqrt-depth=
Common Joined UInteger Var(param_max_pow_sqrt_depth) Init(5) IntegerRange(1, 32) Param Optimization
Maximum depth of sqrt chains to use when synthesizing exponentiation by a real constant.

-param=max-predicted-iterations=
Common Joined UInteger Var(param_max_predicted_iterations) Init(100) IntegerRange(0, 65536) Param Optimization
The maximum number of loop iterations we predict statically.

-param=max-reload-search-insns=
Common Joined UInteger Var(param_max_reload_search_insns) Init(100) Param Optimization
The maximum number of instructions to search backward when looking for equivalent reload.

-param=max-rtl-if-conversion-insns=
Common Joined UInteger Var(param_max_rtl_if_conversion_insns) Init(10) IntegerRange(0, 99) Param Optimization
Maximum number of insns in a basic block to consider for RTL if-conversion.

-param=max-rtl-if-conversion-predictable-cost=
Common Joined UInteger Var(param_max_rtl_if_conversion_predictable_cost) Init(20) IntegerRange(0, 200) Param Optimization
Maximum permissible cost for the sequence that would be generated by the RTL if-conversion pass for a branch that is considered predictable.

-param=max-rtl-if-conversion-unpredictable-cost=
Common Joined UInteger Var(param_max_rtl_if_conversion_unpredictable_cost) Init(40) IntegerRange(0, 200) Param Optimization
Maximum permissible cost for the sequence that would be generated by the RTL if-conversion pass for a branch that is considered unpredictable.

-param=max-sched-extend-regions-iters=
Common Joined UInteger Var(param_max_sched_extend_regions_iters) Param Optimization
The maximum number of iterations through CFG to extend regions.

-param=max-sched-insn-conflict-delay=
Common Joined UInteger Var(param_max_sched_insn_conflict_delay) Init(3) IntegerRange(1, 10) Param Optimization
The maximum conflict delay for an insn to be considered for speculative motion.

-param=max-sched-ready-insns=
Common Joined UInteger Var(param_max_sched_ready_insns) Init(100) IntegerRange(1, 65536) Param Optimization
The maximum number of instructions ready to be issued to be considered by the scheduler during the first scheduling pass.

-param=max-sched-region-blocks=
Common Joined UInteger Var(param_max_sched_region_blocks) Init(10) Param Optimization
The maximum number of blocks in a region to be considered for interblock scheduling.

-param=max-sched-region-insns=
Common Joined UInteger Var(param_max_sched_region_insns) Init(100) Param Optimization
The maximum number of insns in a region to be considered for interblock scheduling.

-param=max-slsr-cand-scan=
Common Joined UInteger Var(param_max_slsr_candidate_scan) Init(50) IntegerRange(1, 999999) Param Optimization
Maximum length of candidate scans for straight-line strength reduction.

-param=max-speculative-devirt-maydefs=
Common Joined UInteger Var(param_max_speculative_devirt_maydefs) Init(50) Param Optimization
Maximum number of may-defs visited when devirtualizing speculatively.

-param=max-ssa-name-query-depth=
Common Joined UInteger Var(param_max_ssa_name_query_depth) Init(3) IntegerRange(1, 10) Param
Maximum recursion depth allowed when querying a property of an SSA name.

-param=max-stores-to-merge=
Common Joined UInteger Var(param_max_stores_to_merge) Init(64) IntegerRange(2, 65536) Param Optimization
Maximum number of constant stores to merge in the store merging pass.

-param=max-stores-to-sink=
Common Joined UInteger Var(param_max_stores_to_sink) Init(2) Param Optimization
Maximum number of conditional store pairs that can be sunk.

-param=max-store-chains-to-track=
Common Joined UInteger Var(param_max_store_chains_to_track) Init(64) IntegerRange(1, 65536) Param
Maximum number of store chains to track at the same time in the store merging pass.

-param=max-stores-to-track=
Common Joined UInteger Var(param_max_stores_to_track) Init(1024) IntegerRange(2, 1048576) Param
Maximum number of store chains to track at the same time in the store merging pass.

-param=max-tail-merge-comparisons=
Common Joined UInteger Var(param_max_tail_merge_comparisons) Init(10) Param Optimization
Maximum amount of similar bbs to compare a bb with.

-param=max-tail-merge-iterations=
Common Joined UInteger Var(param_max_tail_merge_iterations) Init(2) Param Optimization
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.

-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
Maximum number of arguments in a PHI supported by TREE if-conversion unless the loop is marked with simd pragma.

-param=max-unroll-times=
Common Joined UInteger Var(param_max_unroll_times) Init(8) Param Optimization
The maximum number of unrollings of a single loop.

-param=max-unrolled-insns=
Common Joined UInteger Var(param_max_unrolled_insns) Init(200) Param Optimization
The maximum number of instructions to consider to unroll in a loop.

-param=max-unswitch-insns=
Common Joined UInteger Var(param_max_unswitch_insns) Init(50) Param Optimization
The maximum number of insns of an unswitched loop.

-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.

-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.

-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.

-param=max-vartrack-size=
Common Joined UInteger Var(param_max_vartrack_size) Init(50000000) Param Optimization
Max. 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
Maximum number of VALUEs handled during a single find_base_term call.

-param=max-vrp-switch-assertions=
Common Joined UInteger Var(param_max_vrp_switch_assertions) Init(10) Param Optimization
Maximum number of assertions to add along the default edge of a switch statement during VRP.

-param=min-crossjump-insns=
Common Joined UInteger Var(param_min_crossjump_insns) Init(5) IntegerRange(1, 65536) Param Optimization
The minimum number of matching instructions to consider for crossjumping.

-param=min-inline-recursive-probability=
Common Joined UInteger Var(param_min_inline_recursive_probability) Init(10) Optimization Param
Inline recursively only when the probability of call being executed exceeds the parameter.

-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.

-param=min-loop-cond-split-prob=
Common Joined UInteger Var(param_min_loop_cond_split_prob) Init(30) IntegerRange(0, 100) Param Optimization
The minimum threshold for probability of semi-invariant condition statement to trigger loop split.

-param=min-nondebug-insn-uid=
Common Joined UInteger Var(param_min_nondebug_insn_uid) Param
The minimum UID to be used for a nondebug insn.

-param=min-size-for-stack-sharing=
Common Joined UInteger Var(param_min_size_for_stack_sharing) Init(32) Param Optimization
The minimum size of variables taking part in stack slot sharing when not optimizing.

-param=min-spec-prob=
Common Joined UInteger Var(param_min_spec_prob) Init(40) Param Optimization
The minimum probability of reaching a source block for interblock speculative scheduling.

-param=min-vect-loop-bound=
Common Joined UInteger Var(param_min_vect_loop_bound) Param Optimization
If -ftree-vectorize is used, the minimal loop bound of a loop to be considered for vectorization.

-param=openacc-kernels=
Common Joined Enum(openacc_kernels) Var(param_openacc_kernels) Init(OPENACC_KERNELS_PARLOOPS) Param
--param=openacc-kernels=[decompose|parloops]	Specify mode of OpenACC 'kernels' constructs handling.

Enum
Name(openacc_kernels) Type(enum openacc_kernels)

EnumValue
Enum(openacc_kernels) String(decompose) Value(OPENACC_KERNELS_DECOMPOSE)

EnumValue
Enum(openacc_kernels) String(parloops) Value(OPENACC_KERNELS_PARLOOPS)

-param=openacc-privatization=
Common Joined Enum(openacc_privatization) Var(param_openacc_privatization) Init(OPENACC_PRIVATIZATION_QUIET) Param
--param=openacc-privatization=[quiet|noisy]	Specify mode of OpenACC privatization diagnostics.

Enum
Name(openacc_privatization) Type(enum openacc_privatization)

EnumValue
Enum(openacc_privatization) String(quiet) Value(OPENACC_PRIVATIZATION_QUIET)

EnumValue
Enum(openacc_privatization) String(noisy) Value(OPENACC_PRIVATIZATION_NOISY)

-param=parloops-chunk-size=
Common Joined UInteger Var(param_parloops_chunk_size) Param Optimization
Chunk size of omp schedule for loops parallelized by parloops.

-param=parloops-min-per-thread=
Common Joined UInteger Var(param_parloops_min_per_thread) Init(100) IntegerRange(2, 65536) Param Optimization
Minimum number of iterations per thread of an innermost parallelized loop.

-param=parloops-schedule=
Common Joined Var(param_parloops_schedule) Enum(parloops_schedule_type) Param Optimization
--param=parloops-schedule=[static|dynamic|guided|auto|runtime]	Schedule type of omp schedule for loops parallelized by parloops.

Enum
Name(parloops_schedule_type) Type(int)

EnumValue
Enum(parloops_schedule_type) String(static) Value(PARLOOPS_SCHEDULE_STATIC)

EnumValue
Enum(parloops_schedule_type) String(dynamic) Value(PARLOOPS_SCHEDULE_DYNAMIC)

EnumValue
Enum(parloops_schedule_type) String(guided) Value(PARLOOPS_SCHEDULE_GUIDED)

EnumValue
Enum(parloops_schedule_type) String(auto) Value(PARLOOPS_SCHEDULE_AUTO)

EnumValue
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.

-param=predictable-branch-outcome=
Common Joined UInteger Var(param_predictable_branch_outcome) Init(2) IntegerRange(0, 50) Param Optimization
Maximal estimated outcome of branch considered predictable.

-param=prefetch-dynamic-strides=
Common Joined UInteger Var(param_prefetch_dynamic_strides) Init(1) IntegerRange(0, 1) Param Optimization
Whether software prefetch hints should be issued for non-constant strides.

-param=prefetch-latency=
Common Joined UInteger Var(param_prefetch_latency) Init(200) Param Optimization
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.

-param=prefetch-minimum-stride=
Common Joined UInteger Var(param_prefetch_minimum_stride) Init(-1) Param Optimization
The minimum constant stride beyond which we should use prefetch hints for.

-param=profile-func-internal-id=
Common Joined UInteger Var(param_profile_func_internal_id) IntegerRange(0, 1) Param
Use internal function id in profile lookup.

-param=ranger-debug=
Common Joined Var(param_ranger_debug) Enum(ranger_debug) Init(RANGER_DEBUG_NONE) Param Optimization
--param=ranger-debug=[none|trace|gori|cache|tracegori|all] Specifies the output mode for debugging ranger.

Enum
Name(ranger_debug) Type(enum ranger_debug) UnknownError(unknown ranger debug mode %qs)

EnumValue
Enum(ranger_debug) String(none) Value(RANGER_DEBUG_NONE)

EnumValue
Enum(ranger_debug) String(trace) Value(RANGER_DEBUG_TRACE)

EnumValue
Enum(ranger_debug) String(cache) Value(RANGER_DEBUG_TRACE_CACHE)

EnumValue
Enum(ranger_debug) String(gori) Value(RANGER_DEBUG_GORI)

EnumValue
Enum(ranger_debug) String(tracegori) Value(RANGER_DEBUG_TRACE_GORI)

EnumValue
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
evaluating outgoing edge ranges.

-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.

-param=rpo-vn-max-loop-depth=
Common Joined UInteger Var(param_rpo_vn_max_loop_depth) Init(7) IntegerRange(2, 65536) Param Optimization
Maximum depth of a loop nest to fully value-number optimistically.

-param=sccvn-max-alias-queries-per-access=
Common Joined UInteger Var(param_sccvn_max_alias_queries_per_access) Init(1000) Param Optimization
Maximum number of disambiguations to perform per memory access.

-param=scev-max-expr-complexity=
Common Joined UInteger Var(param_scev_max_expr_complexity) Init(10) Param Optimization
Bound on the complexity of the expressions in the scalar evolutions analyzer.

-param=scev-max-expr-size=
Common Joined UInteger Var(param_scev_max_expr_size) Init(100) Param Optimization
Bound on size of expressions used in the scalar evolutions analyzer.

-param=sched-autopref-queue-depth=
Common Joined UInteger Var(param_sched_autopref_queue_depth) Init(-1) Param Optimization
Hardware autoprefetcher scheduler model control flag.  Number of lookahead cycles the model looks into, at '0' only enable instruction sorting heuristic.  Disabled by default.

-param=sched-mem-true-dep-cost=
Common Joined UInteger Var(param_sched_mem_true_dep_cost) Init(1) Param Optimization
Minimal distance between possibly conflicting store and load.

-param=sched-pressure-algorithm=
Common Joined UInteger Var(param_sched_pressure_algorithm) Init(1) IntegerRange(1, 2) Param Optimization
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.

-param=sched-state-edge-prob-cutoff=
Common Joined UInteger Var(param_sched_state_edge_prob_cutoff) Init(10) IntegerRange(0, 100) Param Optimization
The minimum probability an edge must have for the scheduler to save its state across it.

-param=selsched-insns-to-rename=
Common Joined UInteger Var(param_selsched_insns_to_rename) Init(2) Param Optimization
Maximum number of instructions in the ready list that are considered eligible for renaming.

-param=selsched-max-lookahead=
Common Joined UInteger Var(param_selsched_max_lookahead) Init(50) Param Optimization
The maximum size of the lookahead window of selective scheduling.

-param=selsched-max-sched-times=
Common Joined UInteger Var(param_selsched_max_sched_times) Init(2) IntegerRange(1, 65536) Param Optimization
Maximum number of times that an insn could be scheduled.

-param=simultaneous-prefetches=
Common Joined UInteger Var(param_simultaneous_prefetches) Init(3) Param Optimization
The number of prefetches that can run at the same time.

-param=sink-frequency-threshold=
Common Joined UInteger Var(param_sink_frequency_threshold) Init(75) IntegerRange(0, 100) Param Optimization
Target block's relative execution frequency (as a percentage) required to sink a statement.

-param=sms-dfa-history=
Common Joined UInteger Var(param_sms_dfa_history) IntegerRange(0, 16) Param Optimization
The number of cycles the swing modulo scheduler considers when checking conflicts using DFA.

-param=sms-loop-average-count-threshold=
Common Joined UInteger Var(param_sms_loop_average_count_threshold) Param Optimization
A threshold on the average loop count considered by the swing modulo scheduler.

-param=sms-max-ii-factor=
Common Joined UInteger Var(param_sms_max_ii_factor) Init(2) IntegerRange(1, 16) Param Optimization
A factor for tuning the upper bound that swing modulo scheduler uses for scheduling a loop.

-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.

-param=sra-max-scalarization-size-Osize=
Common Joined UInteger Var(param_sra_max_scalarization_size_size) Param Optimization
Maximum size, in storage units, of an aggregate which should be considered for scalarization when compiling for size.

-param=sra-max-scalarization-size-Ospeed=
Common Joined UInteger Var(param_sra_max_scalarization_size_speed) Param Optimization
Maximum size, in storage units, of an aggregate which should be considered for scalarization when compiling for speed.

-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.

-param=ssa-name-def-chain-limit=
Common Joined UInteger Var(param_ssa_name_def_chain_limit) Init(512) Param Optimization
The maximum number of SSA_NAME assignments to follow in determining a value.

-param=ssp-buffer-size=
Common Joined UInteger Var(param_ssp_buffer_size) Init(8) IntegerRange(1, 65536) Param Optimization
The lower bound for a buffer to be considered for stack smashing protection.

-param=stack-clash-protection-guard-size=
Common Joined UInteger Var(param_stack_clash_protection_guard_size) Init(12) IntegerRange(12, 30) Param Optimization
Size of the stack guard expressed as a power of two in bytes.

-param=stack-clash-protection-probe-interval=
Common Joined UInteger Var(param_stack_clash_protection_probe_interval) Init(12) IntegerRange(10, 16) Param Optimization
Interval in which to probe the stack expressed as a power of two in bytes.

-param=store-merging-allow-unaligned=
Common Joined UInteger Var(param_store_merging_allow_unaligned) Init(1) IntegerRange(0, 1) Param Optimization
Allow the store merging pass to introduce unaligned stores if it is legal to do so.

-param=store-merging-max-size=
Common Joined UInteger Var(param_store_merging_max_size) Init(65536) IntegerRange(1, 65536) Param Optimization
Maximum size of a single store merging region in bytes.

-param=switch-conversion-max-branch-ratio=
Common Joined UInteger Var(param_switch_conversion_branch_ratio) Init(8) IntegerRange(1, 65536) Param Optimization
The maximum ratio between array size and switch branches for a switch conversion to take place.

-param=modref-max-bases=
Common Joined UInteger Var(param_modref_max_bases) Init(32) Param Optimization
Maximum number of bases stored in each modref tree.

-param=modref-max-refs=
Common Joined UInteger Var(param_modref_max_refs) Init(16) Param Optimization
Maximum number of references stored in each modref base.

-param=modref-max-accesses=
Common Joined UInteger Var(param_modref_max_accesses) Init(16) Param Optimization
Maximum number of accesses stored in each modref reference.

-param=modref-max-tests=
Common Joined UInteger Var(param_modref_max_tests) Init(64) Param Optimization
Maximum number of tests performed by modref query.

-param=modref-max-depth=
Common Joined UInteger Var(param_modref_max_depth) Init(256) IntegerRange(1, 65536) Param Optimization
Maximum depth of DFS walk used by modref escape analysis.

-param=modref-max-escape-points=
Common Joined UInteger Var(param_modref_max_escape_points) Init(256) Param Optimization
Maximum number of escape points tracked by modref per SSA-name.

-param=modref-max-adjustments=
Common Joined UInteger Var(param_modref_max_adjustments) Init(8) IntegerRange(0, 254) Param Optimization
Maximum number of times a given range is adjusted during the dataflow.

-param=threader-debug=
Common Joined Var(param_threader_debug) Enum(threader_debug) Init(THREADER_DEBUG_NONE) Param Optimization
--param=threader-debug=[none|all] Enables verbose dumping of the threader solver.

Enum
Name(threader_debug) Type(enum threader_debug) UnknownError(unknown threader debug mode %qs)

EnumValue
Enum(threader_debug) String(none) Value(THREADER_DEBUG_NONE)

EnumValue
Enum(threader_debug) String(all) Value(THREADER_DEBUG_ALL)

-param=tm-max-aggregate-size=
Common Joined UInteger Var(param_tm_max_aggregate_size) Init(9) Param Optimization
Size in bytes after which thread-local aggregates should be instrumented with the logging functions instead of save/restore pairs.

-param=tracer-dynamic-coverage=
Common Joined UInteger Var(param_tracer_dynamic_coverage) Init(75) IntegerRange(0, 100) Param Optimization
The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is not available.

-param=tracer-dynamic-coverage-feedback=
Common Joined UInteger Var(param_tracer_dynamic_coverage_feedback) Init(95) IntegerRange(0, 100) Param Optimization
The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is available.

-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).

-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.

-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.

-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).

-param=tree-reassoc-width=
Common Joined UInteger Var(param_tree_reassoc_width) Param Optimization
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
Emit special instrumentation for accesses to volatiles.

-param=tsan-instrument-func-entry-exit=
Common Joined UInteger Var(param_tsan_instrument_func_entry_exit) Init(1) IntegerRange(0, 1) Param
Emit instrumentation calls to __tsan_func_entry() and __tsan_func_exit().

-param=uninit-control-dep-attempts=
Common Joined UInteger Var(param_uninit_control_dep_attempts) Init(1000) IntegerRange(1, 65536) Param Optimization
Maximum number of nested calls to search for control dependencies during uninitialized variable analysis.

-param=uninlined-function-insns=
Common Joined UInteger Var(param_uninlined_function_insns) Init(2) Optimization IntegerRange(0, 1000000) Param
Instruction accounted for function prologue, epilogue and other overhead.

-param=uninlined-function-time=
Common Joined UInteger Var(param_uninlined_function_time) Optimization IntegerRange(0, 1000000) Param
Time accounted for function prologue, epilogue and other overhead.

-param=uninlined-thunk-insns=
Common Joined UInteger Var(param_uninlined_function_thunk_insns) Optimization Init(2) IntegerRange(0, 1000000) Param
Instruction accounted for function thunk overhead.

-param=uninlined-thunk-time=
Common Joined UInteger Var(param_uninlined_function_thunk_time) Optimization Init(2) IntegerRange(0, 1000000) Param
Time accounted for function thunk overhead.

-param=unlikely-bb-count-fraction=
Common Joined UInteger Var(param_unlikely_bb_count_fraction) Init(20) Param Optimization
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.

-param=unroll-jam-max-unroll=
Common Joined UInteger Var(param_unroll_jam_max_unroll) Init(4) Param Optimization
Maximum unroll factor for the unroll-and-jam transformation.

-param=unroll-jam-min-percent=
Common Joined UInteger Var(param_unroll_jam_min_percent) Init(1) IntegerRange(0, 100) Param Optimization
Minimum percentage of memrefs that must go away for unroll-and-jam to be considered profitable.

-param=use-after-scope-direct-emission-threshold=
Common Joined UInteger Var(param_use_after_scope_direct_emission_threshold) Init(256) Param Optimization
Use direct poisoning/unpoisoning instructions for variables smaller or equal to this number.

-param=use-canonical-types=
Common Joined UInteger Var(param_use_canonical_types) Init(1) IntegerRange(0, 1) Param
Whether to use canonical types.

-param=vect-epilogues-nomask=
Common Joined UInteger Var(param_vect_epilogues_nomask) Init(1) IntegerRange(0, 1) Param Optimization
Enable loop epilogue vectorization using smaller vector size.

-param=vect-max-layout-candidates=
Common Joined UInteger Var(param_vect_max_layout_candidates) Init(32) Param Optimization
Maximum number of possible vector layouts (such as permutations) to consider when optimizing to-be-vectorized code.

-param=vect-max-peeling-for-alignment=
Common Joined UInteger Var(param_vect_max_peeling_for_alignment) Init(-1) IntegerRange(0, 64) Param Optimization
Maximum number of loop peels to enhance alignment of data references in a loop.

-param=vect-max-version-for-alias-checks=
Common Joined UInteger Var(param_vect_max_version_for_alias_checks) Init(10) Param Optimization
Bound on number of runtime checks inserted by the vectorizer's loop versioning for alias check.

-param=vect-max-version-for-alignment-checks=
Common Joined UInteger Var(param_vect_max_version_for_alignment_checks) Init(6) Param Optimization
Bound on number of runtime checks inserted by the vectorizer's loop versioning for alignment check.

-param=vect-partial-vector-usage=
Common Joined UInteger Var(param_vect_partial_vector_usage) Init(2) IntegerRange(0, 2) Param Optimization
Controls how loop vectorizer uses partial vectors.  0 means never, 1 means only for loops whose need to iterate can be removed, 2 means for all loops.  The default value is 2.

-param=vect-inner-loop-cost-factor=
Common Joined UInteger Var(param_vect_inner_loop_cost_factor) Init(50) IntegerRange(1, 10000) Param Optimization
The maximum factor which the loop vectorizer applies to the cost of statements in an inner loop relative to the loop being vectorized.

-param=vect-induction-float=
Common Joined UInteger Var(param_vect_induction_float) Init(1) IntegerRage(0, 1) Param Optimization
Enable loop vectorization of floating point inductions.

-param=vrp1-mode=
Common Joined Var(param_vrp1_mode) Enum(vrp_mode) Init(VRP_MODE_VRP) Param Optimization
--param=vrp1-mode=[vrp|ranger] Specifies the mode VRP1 should operate in.

-param=vrp2-mode=
Common Joined Var(param_vrp2_mode) Enum(vrp_mode) Init(VRP_MODE_RANGER) Param Optimization
--param=vrp2-mode=[vrp|ranger] Specifies the mode VRP2 should operate in.

Enum
Name(vrp_mode) Type(enum vrp_mode) UnknownError(unknown vrp mode %qs)

EnumValue
Enum(vrp_mode) String(vrp) Value(VRP_MODE_VRP)

EnumValue
Enum(vrp_mode) String(ranger) Value(VRP_MODE_RANGER)

; This comment is to ensure we retain the blank line above.
