]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/params.def
Decrease hash-table-verification-limit from 100 to 10.
[thirdparty/gcc.git] / gcc / params.def
CommitLineData
9a33a2e8 1/* params.def - Run-time parameters.
fbd26352 2 Copyright (C) 2001-2019 Free Software Foundation, Inc.
9a33a2e8 3 Written by Mark Mitchell <mark@codesourcery.com>.
4
f12b58b3 5This file is part of GCC.
9a33a2e8 6
f12b58b3 7GCC is free software; you can redistribute it and/or modify it under
8the terms of the GNU General Public License as published by the Free
8c4c00c1 9Software Foundation; either version 3, or (at your option) any later
f12b58b3 10version.
9a33a2e8 11
f12b58b3 12GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13WARRANTY; without even the implied warranty of MERCHANTABILITY or
14FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15for more details.
9a33a2e8 16
17You should have received a copy of the GNU General Public License
8c4c00c1 18along with GCC; see the file COPYING3. If not see
19<http://www.gnu.org/licenses/>. */
9a33a2e8 20
21/* This file contains definitions for language-independent
5ecfec12 22 parameters. The DEFPARAM macro takes 6 arguments:
9a33a2e8 23
21b80b12 24 - The enumeral corresponding to this parameter.
9a33a2e8 25
48e1416a 26 - The name that can be used to set this parameter using the
9a33a2e8 27 command-line option `--param <name>=<value>'.
28
29 - A help string explaining how the parameter is used.
30
a5d654e2 31 - A default value for the parameter.
32
0452d664 33 - The minimum acceptable value for the parameter.
5ecfec12 34
0452d664 35 - The maximum acceptable value for the parameter (if greater than
5ecfec12 36 the minimum).
37
2331aa43 38 The DEFPARAMENUM<N> macro is similar, but instead of the minumum and maximum
39 arguments, it contains a list of <N> allowed strings, corresponding to
40 integer values 0..<N>-1. Note that the default argument needs to be
41 specified as one of the allowed strings, rather than an integer value.
42
a5d654e2 43 Be sure to add an entry to invoke.texi summarizing the parameter. */
9a33a2e8 44
4a9d7ef7 45/* When branch is predicted to be taken with probability lower than this
46 threshold (in percent), then it is considered well predictable. */
47DEFPARAM (PARAM_PREDICTABLE_BRANCH_OUTCOME,
48 "predictable-branch-outcome",
8fb42bbc 49 "Maximal estimated outcome of branch considered predictable.",
4a9d7ef7 50 2, 0, 50)
51
50ba0cad 52DEFPARAM (PARAM_INLINE_MIN_SPEEDUP,
53 "inline-min-speedup",
d0abd9e0 54 "The minimal estimated speedup allowing inliner to ignore inline-insns-single and inline-insns-auto.",
e0c8a9de 55 15, 0, 0)
50ba0cad 56
6cc4057d 57/* The single function inlining limit. This is the maximum size
58 of a function counted in internal gcc instructions (not in
59 real machine instructions) that is eligible for inlining
60 by the tree inliner.
6cc4057d 61 Only functions marked inline (or methods defined in the class
bc7a14a6 62 definition for C++) are affected by this.
6cc4057d 63 There are more restrictions to inlining: If inlined functions
64 call other functions, the already inlined instructions are
48e1416a 65 counted and once the recursive inline limit (see
6cc4057d 66 "max-inline-insns" parameter) is exceeded, the acceptable size
67 gets decreased. */
68DEFPARAM (PARAM_MAX_INLINE_INSNS_SINGLE,
69 "max-inline-insns-single",
8fb42bbc 70 "The maximum number of instructions in a single function eligible for inlining.",
3ba76065 71 200, 0, 0)
6cc4057d 72
e2b04249 73/* The single function inlining limit for functions that are
74 inlined by virtue of -finline-functions (-O3).
75 This limit should be chosen to be below or equal to the limit
76 that is applied to functions marked inlined (or defined in the
77 class declaration in C++) given by the "max-inline-insns-single"
78 parameter.
e0c8a9de 79 The default value is 30. */
e2b04249 80DEFPARAM (PARAM_MAX_INLINE_INSNS_AUTO,
81 "max-inline-insns-auto",
8fb42bbc 82 "The maximum number of instructions when automatically inlining.",
e0c8a9de 83 30, 0, 0)
e2b04249 84
2b7caeda 85DEFPARAM (PARAM_MAX_INLINE_INSNS_SMALL,
86 "max-inline-insns-small",
87 "The maximum number of instructions when automatically inlining small functions.",
88 0, 0, 0)
89
07309989 90DEFPARAM (PARAM_MAX_INLINE_INSNS_SIZE,
91 "max-inline-insns-size",
92 "The maximum number of instructions when inlining for size.",
93 0, 0, 0)
94
95DEFPARAM (PARAM_UNINLINED_FUNCTION_INSNS,
96 "uninlined-function-insns",
97 "Instruction accounted for function prologue, epilogue and other"
98 " overhead.",
0d470111 99 2, 0, 1000000)
07309989 100
101DEFPARAM (PARAM_UNINLINED_FUNCTION_TIME,
102 "uninlined-function-time",
103 "Time accounted for function prologue, epilogue and other"
104 " overhead.",
0d470111 105 0, 0, 1000000)
07309989 106
107DEFPARAM (PARAM_UNINLINED_FUNCTION_THUNK_INSNS,
108 "uninlined-thunk-insns",
109 "Instruction accounted for function thunk overhead.",
0d470111 110 2, 0, 1000000)
07309989 111
112DEFPARAM (PARAM_UNINLINED_FUNCTION_THUNK_TIME,
113 "uninlined-thunk-time",
114 "Time accounted for function thunk overhead.",
0d470111 115 2, 0, 1000000)
07309989 116
4ee9c684 117DEFPARAM (PARAM_MAX_INLINE_INSNS_RECURSIVE,
118 "max-inline-insns-recursive",
8fb42bbc 119 "The maximum number of instructions inline function can grow to via recursive inlining.",
3e02d180 120 450, 0, 0)
4ee9c684 121
122DEFPARAM (PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
123 "max-inline-insns-recursive-auto",
8fb42bbc 124 "The maximum number of instructions non-inline function can grow to via recursive inlining.",
3e02d180 125 450, 0, 0)
4ee9c684 126
127DEFPARAM (PARAM_MAX_INLINE_RECURSIVE_DEPTH,
128 "max-inline-recursive-depth",
8fb42bbc 129 "The maximum depth of recursive inlining for inline functions.",
1d8a53f4 130 8, 0, 0)
4ee9c684 131
132DEFPARAM (PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
133 "max-inline-recursive-depth-auto",
8fb42bbc 134 "The maximum depth of recursive inlining for non-inline functions.",
1d8a53f4 135 8, 0, 0)
4ee9c684 136
0aca0eb6 137DEFPARAM (PARAM_MIN_INLINE_RECURSIVE_PROBABILITY,
138 "min-inline-recursive-probability",
8fb42bbc 139 "Inline recursively only when the probability of call being executed exceeds the parameter.",
0aca0eb6 140 10, 0, 0)
141
a7b61d8c 142/* Limit of iterations of early inliner. This basically bounds number of
143 nested indirect calls early inliner can resolve. Deeper chains are still
144 handled by late inlining. */
145DEFPARAM (PARAM_EARLY_INLINER_MAX_ITERATIONS,
146 "max-early-inliner-iterations",
8fb42bbc 147 "The maximum number of nested indirect inlining performed by early inliner.",
b9b931d9 148 1, 0, 0)
a7b61d8c 149
6a2657be 150/* Limit on probability of entry BB. */
151DEFPARAM (PARAM_COMDAT_SHARING_PROBABILITY,
152 "comdat-sharing-probability",
8fb42bbc 153 "Probability that COMDAT function will be shared with different compilation unit.",
6a2657be 154 20, 0, 0)
155
2862cf88 156/* Limit on probability of entry BB. */
157DEFPARAM (PARAM_PARTIAL_INLINING_ENTRY_PROBABILITY,
158 "partial-inlining-entry-probability",
8fb42bbc 159 "Maximum probability of the entry BB of split region (in percent relative to entry BB of the function) to make partial inlining happen.",
0f91c603 160 70, 0, 100)
2862cf88 161
375bb675 162/* Limit the number of expansions created by the variable expansion
163 optimization to avoid register pressure. */
164DEFPARAM (PARAM_MAX_VARIABLE_EXPANSIONS,
165 "max-variable-expansions-in-unroller",
8fb42bbc 166 "If -fvariable-expansion-in-unroller is used, the maximum number of times that an individual variable will be expanded during loop unrolling.",
1d8a53f4 167 1, 0, 0)
48e1416a 168
8964b5be 169/* Limit loop autovectorization to loops with large enough iteration count. */
170DEFPARAM (PARAM_MIN_VECT_LOOP_BOUND,
171 "min-vect-loop-bound",
8fb42bbc 172 "If -ftree-vectorize is used, the minimal loop bound of a loop to be considered for vectorization.",
2ea449b3 173 0, 0, 0)
8964b5be 174
21b80b12 175/* The maximum number of instructions to consider when looking for an
176 instruction to fill a delay slot. If more than this arbitrary
177 number of instructions is searched, the time savings from filling
178 the delay slot will be minimal so stop searching. Increasing
179 values mean more aggressive optimization, making the compile time
180 increase with probably small improvement in executable run time. */
181DEFPARAM (PARAM_MAX_DELAY_SLOT_INSN_SEARCH,
182 "max-delay-slot-insn-search",
8fb42bbc 183 "The maximum number of instructions to consider to fill a delay slot.",
1d8a53f4 184 100, 0, 0)
21b80b12 185
98d5e888 186/* When trying to fill delay slots, the maximum number of instructions
187 to consider when searching for a block with valid live register
188 information. Increasing this arbitrarily chosen value means more
189 aggressive optimization, increasing the compile time. This
190 parameter should be removed when the delay slot code is rewritten
191 to maintain the control-flow graph. */
192DEFPARAM(PARAM_MAX_DELAY_SLOT_LIVE_SEARCH,
193 "max-delay-slot-live-search",
8fb42bbc 194 "The maximum number of instructions to consider to find accurate live register information.",
1d8a53f4 195 333, 0, 0)
98d5e888 196
48e1416a 197/* This parameter limits the number of branch elements that the
424da949 198 scheduler will track anti-dependencies through without resetting
48e1416a 199 the tracking mechanism. Large functions with few calls or barriers
200 can generate lists containing many 1000's of dependencies. Generally
85de291e 201 the compiler either uses all available memory, or runs for far too long. */
202DEFPARAM(PARAM_MAX_PENDING_LIST_LENGTH,
203 "max-pending-list-length",
8fb42bbc 204 "The maximum length of scheduling's pending operations list.",
1d8a53f4 205 32, 0, 0)
85de291e 206
c0457559 207/* This parameter limits the number of backtracking attempts when using the
208 haifa scheduler for modulo scheduling. */
209DEFPARAM(PARAM_MAX_MODULO_BACKTRACK_ATTEMPTS,
210 "max-modulo-backtrack-attempts",
8fb42bbc 211 "The maximum number of backtrack attempts the scheduler should make when modulo scheduling a loop.",
c0457559 212 40, 0, 0)
213
d7c6d889 214DEFPARAM(PARAM_LARGE_FUNCTION_INSNS,
215 "large-function-insns",
8fb42bbc 216 "The size of function body to be considered large.",
bc7a14a6 217 2700, 0, 0)
d7c6d889 218DEFPARAM(PARAM_LARGE_FUNCTION_GROWTH,
219 "large-function-growth",
8fb42bbc 220 "Maximal growth due to inlining of large function (in percent).",
1d8a53f4 221 100, 0, 0)
aa976da5 222DEFPARAM(PARAM_LARGE_UNIT_INSNS,
223 "large-unit-insns",
8fb42bbc 224 "The size of translation unit to be considered large.",
aa976da5 225 10000, 0, 0)
d7c6d889 226DEFPARAM(PARAM_INLINE_UNIT_GROWTH,
227 "inline-unit-growth",
8fb42bbc 228 "How much can given compilation unit grow because of the inlining (in percent).",
75a6f948 229 40, 0, 0)
2a15795f 230DEFPARAM(PARAM_IPCP_UNIT_GROWTH,
231 "ipcp-unit-growth",
8fb42bbc 232 "How much can given compilation unit grow because of the interprocedural constant propagation (in percent).",
2a15795f 233 10, 0, 0)
97343302 234DEFPARAM(PARAM_EARLY_INLINING_INSNS,
235 "early-inlining-insns",
8fb42bbc 236 "Maximal estimated growth of function body caused by early inlining of single call.",
c3fed600 237 14, 0, 0)
5a02d67b 238DEFPARAM(PARAM_LARGE_STACK_FRAME,
239 "large-stack-frame",
8fb42bbc 240 "The size of stack frame to be considered large.",
5a02d67b 241 256, 0, 0)
242DEFPARAM(PARAM_STACK_FRAME_GROWTH,
243 "large-stack-frame-growth",
8fb42bbc 244 "Maximal stack frame growth due to inlining (in percent).",
5a02d67b 245 1000, 0, 0)
d7c6d889 246
de2dc831 247/* Keep these up to date with those in configure.ac. */
74af142d 248DEFPARAM(PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE,
249 "stack-clash-protection-guard-size",
de2dc831 250 "Size of the stack guard expressed as a power of two in bytes.",
74af142d 251 12, 12, 30)
252
253DEFPARAM(PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL,
254 "stack-clash-protection-probe-interval",
de2dc831 255 "Interval in which to probe the stack expressed as a power of two in bytes.",
74af142d 256 12, 10, 16)
257
9159979b 258/* The GCSE optimization will be disabled if it would require
259 significantly more memory than this value. */
260DEFPARAM(PARAM_MAX_GCSE_MEMORY,
261 "max-gcse-memory",
8fb42bbc 262 "The maximum amount of memory to be allocated by GCSE.",
82b9069d 263 128 * 1024 * 1024, 0, 0)
d45a307d 264
b89c219c 265/* The GCSE optimization of an expression will avoided if the ratio of
266 insertions to deletions is greater than this value. */
267DEFPARAM(PARAM_MAX_GCSE_INSERTION_RATIO,
268 "max-gcse-insertion-ratio",
8fb42bbc 269 "The maximum ratio of insertions to deletions of expressions in GCSE.",
b89c219c 270 20, 0, 0)
271
839f8415 272/* This is the threshold ratio when to perform partial redundancy
273 elimination after reload. We perform partial redundancy elimination
274 when the following holds:
275 (Redundant load execution count)
276 ------------------------------- >= GCSE_AFTER_RELOAD_PARTIAL_FRACTION
277 (Added loads execution count) */
278DEFPARAM(PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
279 "gcse-after-reload-partial-fraction",
8fb42bbc 280 "The threshold ratio for performing partial redundancy elimination after reload.",
1d8a53f4 281 3, 0, 0)
839f8415 282/* This is the threshold ratio of the critical edges execution count compared to
283 the redundant loads execution count that permits performing the load
284 redundancy elimination in gcse after reload. */
285DEFPARAM(PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION,
286 "gcse-after-reload-critical-fraction",
8fb42bbc 287 "The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload.",
1d8a53f4 288 10, 0, 0)
8b38b150 289
290/* GCSE will use GCSE_COST_DISTANCE_RATION as a scaling factor
291 to calculate maximum distance for which an expression is allowed to move
292 from its rtx_cost. */
293DEFPARAM(PARAM_GCSE_COST_DISTANCE_RATIO,
294 "gcse-cost-distance-ratio",
8fb42bbc 295 "Scaling factor in calculation of maximum distance an expression can be moved by GCSE optimizations.",
8b38b150 296 10, 0, 0)
297/* GCSE won't restrict distance for which an expression with rtx_cost greater
298 than COSTS_N_INSN(GCSE_UNRESTRICTED_COST) is allowed to move. */
299DEFPARAM(PARAM_GCSE_UNRESTRICTED_COST,
300 "gcse-unrestricted-cost",
8fb42bbc 301 "Cost at which GCSE optimizations will not constraint the distance an expression can travel.",
8b38b150 302 3, 0, 0)
303
c0939130 304/* How deep from a given basic block the dominator tree should be searched
305 for expressions to hoist to the block. The value of 0 will avoid limiting
306 the search. */
307DEFPARAM(PARAM_MAX_HOIST_DEPTH,
308 "max-hoist-depth",
8fb42bbc 309 "Maximum depth of search in the dominator tree for expressions to hoist.",
c0939130 310 30, 0, 0)
311
c3206272 312
313/* When synthesizing expnonentiation by a real constant operations using square
314 roots, this controls how deep sqrt chains we are willing to generate. */
315DEFPARAM(PARAM_MAX_POW_SQRT_DEPTH,
316 "max-pow-sqrt-depth",
8fb42bbc 317 "Maximum depth of sqrt chains to use when synthesizing exponentiation by a real constant.",
c3206272 318 5, 1, 32)
319
0b11ae2e 320/* This parameter limits the number of insns in a loop that will be unrolled,
45c09478 321 and by how much the loop is unrolled.
48e1416a 322
45c09478 323 This limit should be at most half of the peeling limits: loop unroller
324 decides to not unroll loops that iterate fewer than 2*number of allowed
aab2cf92 325 unrollings and thus we would have loops that are neither peeled or unrolled
45c09478 326 otherwise. */
0b11ae2e 327DEFPARAM(PARAM_MAX_UNROLLED_INSNS,
328 "max-unrolled-insns",
8fb42bbc 329 "The maximum number of instructions to consider to unroll in a loop.",
1d8a53f4 330 200, 0, 0)
ce32fe65 331/* This parameter limits how many times the loop is unrolled depending
332 on number of insns really executed in each iteration. */
333DEFPARAM(PARAM_MAX_AVERAGE_UNROLLED_INSNS,
334 "max-average-unrolled-insns",
8fb42bbc 335 "The maximum number of instructions to consider to unroll in a loop on average.",
1d8a53f4 336 80, 0, 0)
ce32fe65 337/* The maximum number of unrollings of a single loop. */
338DEFPARAM(PARAM_MAX_UNROLL_TIMES,
339 "max-unroll-times",
8fb42bbc 340 "The maximum number of unrollings of a single loop.",
1d8a53f4 341 8, 0, 0)
ce32fe65 342/* The maximum number of insns of a peeled loop. */
343DEFPARAM(PARAM_MAX_PEELED_INSNS,
344 "max-peeled-insns",
8fb42bbc 345 "The maximum number of insns of a peeled loop.",
1bce15f4 346 100, 0, 0)
ce32fe65 347/* The maximum number of peelings of a single loop. */
348DEFPARAM(PARAM_MAX_PEEL_TIMES,
349 "max-peel-times",
8fb42bbc 350 "The maximum number of peelings of a single loop.",
1d8a53f4 351 16, 0, 0)
d583c979 352/* The maximum number of peelings of a single loop that is peeled completely. */
353DEFPARAM(PARAM_MAX_PEEL_BRANCHES,
354 "max-peel-branches",
8fb42bbc 355 "The maximum number of branches on the path through the peeled sequence.",
d583c979 356 32, 0, 0)
ce32fe65 357/* The maximum number of insns of a peeled loop. */
358DEFPARAM(PARAM_MAX_COMPLETELY_PEELED_INSNS,
359 "max-completely-peeled-insns",
8fb42bbc 360 "The maximum number of insns of a completely peeled loop.",
3cd0083c 361 200, 0, 0)
ce32fe65 362/* The maximum number of peelings of a single loop that is peeled completely. */
363DEFPARAM(PARAM_MAX_COMPLETELY_PEEL_TIMES,
364 "max-completely-peel-times",
8fb42bbc 365 "The maximum number of peelings of a single loop that is peeled completely.",
1d8a53f4 366 16, 0, 0)
ce32fe65 367/* The maximum number of insns of a peeled loop that rolls only once. */
368DEFPARAM(PARAM_MAX_ONCE_PEELED_INSNS,
369 "max-once-peeled-insns",
8fb42bbc 370 "The maximum number of insns of a peeled loop that rolls only once.",
1d8a53f4 371 400, 0, 0)
793a0ab5 372/* The maximum depth of a loop nest we completely peel. */
373DEFPARAM(PARAM_MAX_UNROLL_ITERATIONS,
374 "max-completely-peel-loop-nest-depth",
8fb42bbc 375 "The maximum depth of a loop nest we completely peel.",
793a0ab5 376 8, 0, 0)
429fa7fa 377
6a606e3c 378/* The maximum number of insns of an unswitched loop. */
379DEFPARAM(PARAM_MAX_UNSWITCH_INSNS,
380 "max-unswitch-insns",
8fb42bbc 381 "The maximum number of insns of an unswitched loop.",
1d8a53f4 382 50, 0, 0)
6a606e3c 383/* The maximum level of recursion in unswitch_single_loop. */
384DEFPARAM(PARAM_MAX_UNSWITCH_LEVEL,
385 "max-unswitch-level",
8fb42bbc 386 "The maximum number of unswitchings in a single loop.",
1d8a53f4 387 3, 0, 0)
6a606e3c 388
47f1fd04 389/* The maximum number of insns in loop header duplicated by the copy loop
15ab825d 390 headers pass. */
391DEFPARAM(PARAM_MAX_LOOP_HEADER_INSNS,
392 "max-loop-header-insns",
47f1fd04 393 "The maximum number of insns in loop header duplicated by the copy loop headers pass.",
15ab825d 394 20, 0, 0)
395
b9d73ea6 396/* The maximum number of iterations of a loop the brute force algorithm
397 for analysis of # of iterations of the loop tries to evaluate. */
398DEFPARAM(PARAM_MAX_ITERATIONS_TO_TRACK,
399 "max-iterations-to-track",
8fb42bbc 400 "Bound on the number of iterations the brute force # of iterations analysis algorithm evaluates.",
1d8a53f4 401 1000, 0, 0)
883bb2bb 402/* A cutoff to avoid costly computations of the number of iterations in
403 the doloop transformation. */
404DEFPARAM(PARAM_MAX_ITERATIONS_COMPUTATION_COST,
405 "max-iterations-computation-cost",
8fb42bbc 406 "Bound on the cost of an expression to compute the number of iterations.",
883bb2bb 407 10, 0, 0)
b9d73ea6 408
406a73e7 409/* This parameter is used to tune SMS MAX II calculations. */
410DEFPARAM(PARAM_SMS_MAX_II_FACTOR,
411 "sms-max-ii-factor",
8fb42bbc 412 "A factor for tuning the upper bound that swing modulo scheduler uses for scheduling a loop.",
1d8a53f4 413 100, 0, 0)
4f7f77aa 414/* The minimum value of stage count that swing modulo scheduler will generate. */
415DEFPARAM(PARAM_SMS_MIN_SC,
416 "sms-min-sc",
417 "The minimum value of stage count that swing modulo scheduler will generate.",
418 2, 1, 1)
406a73e7 419DEFPARAM(PARAM_SMS_DFA_HISTORY,
420 "sms-dfa-history",
8fb42bbc 421 "The number of cycles the swing modulo scheduler considers when checking conflicts using DFA.",
1d8a53f4 422 0, 0, 0)
406a73e7 423DEFPARAM(PARAM_SMS_LOOP_AVERAGE_COUNT_THRESHOLD,
424 "sms-loop-average-count-threshold",
8fb42bbc 425 "A threshold on the average loop count considered by the swing modulo scheduler.",
1d8a53f4 426 0, 0, 0)
406a73e7 427
56621355 428DEFPARAM(HOT_BB_COUNT_FRACTION,
429 "hot-bb-count-fraction",
430 "Select fraction of the maximal count of repetitions of basic block in program given basic "
067d236e 431 "block needs to have to be considered hot (used in non-LTO mode).",
56621355 432 10000, 0, 0)
f34acf02 433DEFPARAM(HOT_BB_COUNT_WS_PERMILLE,
434 "hot-bb-count-ws-permille",
435 "A basic block profile count is considered hot if it contributes to "
56621355 436 "the given permillage of the entire profiled execution (used in LTO mode).",
de50f80c 437 990, 0, 1000)
429fa7fa 438DEFPARAM(HOT_BB_FREQUENCY_FRACTION,
439 "hot-bb-frequency-fraction",
8fb42bbc 440 "Select fraction of the maximal frequency of executions of basic block in function given basic block needs to have to be considered hot.",
1d8a53f4 441 1000, 0, 0)
5d157ac1 442
c1acf60c 443DEFPARAM(UNLIKELY_BB_COUNT_FRACTION,
444 "unlikely-bb-count-fraction",
8fb42bbc 445 "The minimum fraction of profile runs a given basic block execution count must be not to be considered unlikely.",
c1acf60c 446 20, 1, 10000)
447
7bd530d9 448DEFPARAM (PARAM_ALIGN_THRESHOLD,
449 "align-threshold",
8fb42bbc 450 "Select fraction of the maximal frequency of executions of basic block in function given basic block get alignment.",
abf3fde4 451 100, 1, 0)
7bd530d9 452
453DEFPARAM (PARAM_ALIGN_LOOP_ITERATIONS,
454 "align-loop-iterations",
2243751f 455 "Loops iterating at least selected number of iterations will get "
456 "loop alignment.", 4, 0, 0)
7bd530d9 457
5d157ac1 458/* For guessed profiles, the loops having unknown number of iterations
459 are predicted to iterate relatively few (10) times at average.
460 For functions containing one loop with large known number of iterations
461 and other loops having unbounded loops we would end up predicting all
7063afc3 462 the other loops cold that is not usually the case. So we need to artificially
48e1416a 463 flatten the profile.
5d157ac1 464
191ec5a2 465 We need to cut the maximal predicted iterations to large enough iterations
f34acf02 466 so the loop appears important, but safely within maximum hotness
5d157ac1 467 range. */
468
469DEFPARAM(PARAM_MAX_PREDICTED_ITERATIONS,
470 "max-predicted-iterations",
8fb42bbc 471 "The maximum number of loop iterations we predict statically.",
5d157ac1 472 100, 0, 0)
21853731 473
474/* This parameter controls the probability of builtin_expect. The default
475 value is 90%. This empirical value is obtained through the weighted
476 probability of FDO counters (with the FDO count value as the weight)
8fb42bbc 477 in some real world programs:
21853731 478 (1) Google performance test benchmarks: the probability is 0.9081.
479 (2) Linux 3.3 kernel running Google search workload: the probability
480 is 0.8717. */
481
482DEFPARAM(BUILTIN_EXPECT_PROBABILITY,
483 "builtin-expect-probability",
484 "Set the estimated probability in percentage for builtin expect. The default value is 90% probability.",
485 90, 0, 100)
a950155e 486DEFPARAM(BUILTIN_STRING_CMP_INLINE_LENGTH,
487 "builtin-string-cmp-inline-length",
488 "The maximum length of a constant string for a builtin string cmp call eligible for inlining. The default value is 3.",
489 3, 0, 100)
fa99ab3d 490DEFPARAM(TRACER_DYNAMIC_COVERAGE_FEEDBACK,
491 "tracer-dynamic-coverage-feedback",
8fb42bbc 492 "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is available.",
1d8a53f4 493 95, 0, 100)
fa99ab3d 494DEFPARAM(TRACER_DYNAMIC_COVERAGE,
495 "tracer-dynamic-coverage",
8fb42bbc 496 "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is not available.",
1d8a53f4 497 75, 0, 100)
fa99ab3d 498DEFPARAM(TRACER_MAX_CODE_GROWTH,
499 "tracer-max-code-growth",
8fb42bbc 500 "Maximal code growth caused by tail duplication (in percent).",
1d8a53f4 501 100, 0, 0)
fa99ab3d 502DEFPARAM(TRACER_MIN_BRANCH_RATIO,
503 "tracer-min-branch-ratio",
8fb42bbc 504 "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percent).",
1d8a53f4 505 10, 0, 100)
fa99ab3d 506DEFPARAM(TRACER_MIN_BRANCH_PROBABILITY_FEEDBACK,
507 "tracer-min-branch-probability-feedback",
8fb42bbc 508 "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is available.",
1d8a53f4 509 80, 0, 100)
fa99ab3d 510DEFPARAM(TRACER_MIN_BRANCH_PROBABILITY,
511 "tracer-min-branch-probability",
8fb42bbc 512 "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is not available.",
1d8a53f4 513 50, 0, 100)
2a3edec5 514
2a5b4716 515/* The maximum number of incoming edges to consider for crossjumping. */
516DEFPARAM(PARAM_MAX_CROSSJUMP_EDGES,
517 "max-crossjump-edges",
8fb42bbc 518 "The maximum number of incoming edges to consider for crossjumping.",
1d8a53f4 519 100, 0, 0)
2a5b4716 520
43341e2f 521/* The minimum number of matching instructions to consider for crossjumping. */
522DEFPARAM(PARAM_MIN_CROSSJUMP_INSNS,
523 "min-crossjump-insns",
8fb42bbc 524 "The minimum number of matching instructions to consider for crossjumping.",
ce4f2aee 525 5, 1, 0)
43341e2f 526
6b6a2169 527/* The maximum number expansion factor when copying basic blocks. */
528DEFPARAM(PARAM_MAX_GROW_COPY_BB_INSNS,
529 "max-grow-copy-bb-insns",
8fb42bbc 530 "The maximum expansion factor when copying basic blocks.",
6b6a2169 531 8, 0, 0)
532
b70a5a99 533/* The maximum number of insns to duplicate when unfactoring computed gotos. */
534DEFPARAM(PARAM_MAX_GOTO_DUPLICATION_INSNS,
535 "max-goto-duplication-insns",
8fb42bbc 536 "The maximum number of insns to duplicate when unfactoring computed gotos.",
b70a5a99 537 8, 0, 0)
538
38ccff25 539/* The maximum length of path considered in cse. */
540DEFPARAM(PARAM_MAX_CSE_PATH_LENGTH,
541 "max-cse-path-length",
8fb42bbc 542 "The maximum length of path considered in cse.",
efbfe80e 543 10, 1, 0)
5d157ac1 544DEFPARAM(PARAM_MAX_CSE_INSNS,
0ed224e1 545 "max-cse-insns",
8fb42bbc 546 "The maximum instructions CSE process before flushing.",
5d157ac1 547 1000, 0, 0)
38ccff25 548
7d23383d 549/* The cost of expression in loop invariant motion that is considered
550 expensive. */
551DEFPARAM(PARAM_LIM_EXPENSIVE,
552 "lim-expensive",
8fb42bbc 553 "The minimum cost of an expensive expression in the loop invariant motion.",
1d8a53f4 554 20, 0, 0)
7d23383d 555
dec41e98 556/* Bound on number of candidates for induction variables below that
557 all candidates are considered for each use in induction variable
558 optimizations. */
559
560DEFPARAM(PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND,
561 "iv-consider-all-candidates-bound",
8fb42bbc 562 "Bound on number of candidates below that all candidates are considered in iv optimizations.",
4c020700 563 40, 0, 0)
dec41e98 564
565/* The induction variable optimizations give up on loops that contain more
566 induction variable uses. */
567
568DEFPARAM(PARAM_IV_MAX_CONSIDERED_USES,
569 "iv-max-considered-uses",
8fb42bbc 570 "Bound on number of iv uses in loop optimized in iv optimizations.",
1d8a53f4 571 250, 0, 0)
dec41e98 572
13ea2c1f 573/* If there are at most this number of ivs in the set, try removing unnecessary
574 ivs from the set always. */
575
576DEFPARAM(PARAM_IV_ALWAYS_PRUNE_CAND_SET_BOUND,
577 "iv-always-prune-cand-set-bound",
8fb42bbc 578 "If number of candidates in the set is smaller, we always try to remove unused ivs during its optimization.",
13ea2c1f 579 10, 0, 0)
580
91188633 581DEFPARAM(PARAM_AVG_LOOP_NITER,
582 "avg-loop-niter",
583 "Average number of iterations of a loop.",
584 10, 1, 0)
585
64123137 586DEFPARAM(PARAM_DSE_MAX_OBJECT_SIZE,
587 "dse-max-object-size",
588 "Maximum size (in bytes) of objects tracked bytewise by dead store elimination.",
589 256, 0, 0)
590
560934d2 591DEFPARAM(PARAM_DSE_MAX_ALIAS_QUERIES_PER_STORE,
592 "dse-max-alias-queries-per-store",
593 "Maximum number of queries into the alias oracle per store.",
594 256, 0, 0)
595
a89ef955 596DEFPARAM(PARAM_SCEV_MAX_EXPR_SIZE,
597 "scev-max-expr-size",
8fb42bbc 598 "Bound on size of expressions used in the scalar evolutions analyzer.",
99df7432 599 100, 0, 0)
600
601DEFPARAM(PARAM_SCEV_MAX_EXPR_COMPLEXITY,
602 "scev-max-expr-complexity",
8fb42bbc 603 "Bound on the complexity of the expressions in the scalar evolutions analyzer.",
99df7432 604 10, 0, 0)
a89ef955 605
9ab8df54 606DEFPARAM (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS,
607 "max-tree-if-conversion-phi-args",
608 "Maximum number of arguments in a PHI supported by TREE if-conversion "
609 "unless the loop is marked with simd pragma.",
610 4, 2, 0)
611
45b13dc3 612DEFPARAM(PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS,
613 "vect-max-version-for-alignment-checks",
8fb42bbc 614 "Bound on number of runtime checks inserted by the vectorizer's loop versioning for alignment check.",
25e3c2e8 615 6, 0, 0)
616
45b13dc3 617DEFPARAM(PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS,
618 "vect-max-version-for-alias-checks",
8fb42bbc 619 "Bound on number of runtime checks inserted by the vectorizer's loop versioning for alias check.",
45b13dc3 620 10, 0, 0)
621
d7d7032a 622DEFPARAM(PARAM_VECT_MAX_PEELING_FOR_ALIGNMENT,
623 "vect-max-peeling-for-alignment",
451249e5 624 "Maximum number of loop peels to enhance alignment of data references in a loop.",
d7d7032a 625 -1, -1, 64)
626
f391504c 627DEFPARAM(PARAM_MAX_CSELIB_MEMORY_LOCATIONS,
628 "max-cselib-memory-locations",
8fb42bbc 629 "The maximum memory locations recorded by cselib.",
1d8a53f4 630 500, 0, 0)
f391504c 631
2a3edec5 632#ifdef ENABLE_GC_ALWAYS_COLLECT
633# define GGC_MIN_EXPAND_DEFAULT 0
950b639c 634# define GGC_MIN_HEAPSIZE_DEFAULT 0
2a3edec5 635#else
636# define GGC_MIN_EXPAND_DEFAULT 30
950b639c 637# define GGC_MIN_HEAPSIZE_DEFAULT 4096
2a3edec5 638#endif
639
640DEFPARAM(GGC_MIN_EXPAND,
641 "ggc-min-expand",
8fb42bbc 642 "Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap.",
1d8a53f4 643 GGC_MIN_EXPAND_DEFAULT, 0, 0)
2a3edec5 644
2a3edec5 645DEFPARAM(GGC_MIN_HEAPSIZE,
646 "ggc-min-heapsize",
8fb42bbc 647 "Minimum heap size before we start collecting garbage, in kilobytes.",
1d8a53f4 648 GGC_MIN_HEAPSIZE_DEFAULT, 0, 0)
950b639c 649
650#undef GGC_MIN_EXPAND_DEFAULT
651#undef GGC_MIN_HEAPSIZE_DEFAULT
2a3edec5 652
c15bc0ce 653DEFPARAM(PARAM_MAX_RELOAD_SEARCH_INSNS,
654 "max-reload-search-insns",
8fb42bbc 655 "The maximum number of instructions to search backward when looking for equivalent reload.",
1d8a53f4 656 100, 0, 0)
c15bc0ce 657
77ecaaba 658DEFPARAM(PARAM_SINK_FREQUENCY_THRESHOLD,
659 "sink-frequency-threshold",
8fb42bbc 660 "Target block's relative execution frequency (as a percentage) required to sink a statement.",
77ecaaba 661 75, 0, 100)
662
4c50e1f4 663DEFPARAM(PARAM_MAX_SCHED_REGION_BLOCKS,
664 "max-sched-region-blocks",
8fb42bbc 665 "The maximum number of blocks in a region to be considered for interblock scheduling.",
1d8a53f4 666 10, 0, 0)
4c50e1f4 667
668DEFPARAM(PARAM_MAX_SCHED_REGION_INSNS,
669 "max-sched-region-insns",
8fb42bbc 670 "The maximum number of insns in a region to be considered for interblock scheduling.",
1d8a53f4 671 100, 0, 0)
4c50e1f4 672
e1ab7874 673DEFPARAM(PARAM_MAX_PIPELINE_REGION_BLOCKS,
674 "max-pipeline-region-blocks",
8fb42bbc 675 "The maximum number of blocks in a region to be considered for interblock scheduling.",
e1ab7874 676 15, 0, 0)
677
678DEFPARAM(PARAM_MAX_PIPELINE_REGION_INSNS,
679 "max-pipeline-region-insns",
8fb42bbc 680 "The maximum number of insns in a region to be considered for interblock scheduling.",
e1ab7874 681 200, 0, 0)
682
fbf0ba35 683DEFPARAM(PARAM_MIN_SPEC_PROB,
684 "min-spec-prob",
8fb42bbc 685 "The minimum probability of reaching a source block for interblock speculative scheduling.",
fbf0ba35 686 40, 0, 0)
687
4bfe0e7b 688DEFPARAM(PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS,
689 "max-sched-extend-regions-iters",
8fb42bbc 690 "The maximum number of iterations through CFG to extend regions.",
475a74e0 691 0, 0, 0)
4bfe0e7b 692
6a1cdb4d 693DEFPARAM(PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
694 "max-sched-insn-conflict-delay",
8fb42bbc 695 "The maximum conflict delay for an insn to be considered for speculative motion.",
6a1cdb4d 696 3, 1, 10)
697
698DEFPARAM(PARAM_SCHED_SPEC_PROB_CUTOFF,
699 "sched-spec-prob-cutoff",
700 "The minimal probability of speculation success (in percents), so that speculative insn will be scheduled.",
701 40, 0, 100)
702
0a15667c 703DEFPARAM(PARAM_SCHED_STATE_EDGE_PROB_CUTOFF,
704 "sched-state-edge-prob-cutoff",
705 "The minimum probability an edge must have for the scheduler to save its state across it.",
706 10, 0, 100)
707
e1ab7874 708DEFPARAM(PARAM_SELSCHED_MAX_LOOKAHEAD,
709 "selsched-max-lookahead",
8fb42bbc 710 "The maximum size of the lookahead window of selective scheduling.",
e1ab7874 711 50, 0, 0)
712
713DEFPARAM(PARAM_SELSCHED_MAX_SCHED_TIMES,
714 "selsched-max-sched-times",
8fb42bbc 715 "Maximum number of times that an insn could be scheduled.",
68fc30de 716 2, 1, 0)
e1ab7874 717
718DEFPARAM(PARAM_SELSCHED_INSNS_TO_RENAME,
719 "selsched-insns-to-rename",
8fb42bbc 720 "Maximum number of instructions in the ready list that are considered eligible for renaming.",
e1ab7874 721 2, 0, 0)
722
723DEFPARAM (PARAM_SCHED_MEM_TRUE_DEP_COST,
724 "sched-mem-true-dep-cost",
8fb42bbc 725 "Minimal distance between possibly conflicting store and load.",
e1ab7874 726 1, 0, 0)
727
34aaed43 728DEFPARAM (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH,
729 "sched-autopref-queue-depth",
730 "Hardware autoprefetcher scheduler model control flag. Number of lookahead cycles the model looks into; at '0' only enable instruction sorting heuristic. Disabled by default.",
731 -1, 0, 0)
732
9c8b7028 733DEFPARAM(PARAM_MAX_LAST_VALUE_RTL,
734 "max-last-value-rtl",
8fb42bbc 735 "The maximum number of RTL nodes that can be recorded as combiner's last value.",
9c8b7028 736 10000, 0, 0)
737
5b3d4832 738DEFPARAM(PARAM_MAX_COMBINE_INSNS,
739 "max-combine-insns",
8fb42bbc 740 "The maximum number of insns combine tries to combine.",
5b3d4832 741 4, 2, 4)
742
00b76131 743/* INTEGER_CST nodes are shared for values [{-1,0} .. N) for
744 {signed,unsigned} integral types. This determines N.
a4c52080 745 Experimentation shows 251 to be a good value that generates the
746 least amount of garbage for allocating the TREE_VEC storage. */
00b76131 747DEFPARAM (PARAM_INTEGER_SHARE_LIMIT,
748 "integer-share-limit",
8fb42bbc 749 "The upper bound for sharing integer constants.",
a4c52080 750 251, 2, 2)
00b76131 751
f1a0edff 752DEFPARAM (PARAM_SSP_BUFFER_SIZE,
753 "ssp-buffer-size",
8fb42bbc 754 "The lower bound for a buffer to be considered for stack smashing protection.",
f1a0edff 755 8, 1, 0)
756
1906368d 757DEFPARAM (PARAM_MIN_SIZE_FOR_STACK_SHARING,
758 "min-size-for-stack-sharing",
759 "The minimum size of variables taking part in stack slot sharing "
8fb42bbc 760 "when not optimizing.",
1906368d 761 32, 0, 0)
762
cf024d22 763/* When we thread through a block we have to make copies of the
764 statements within the block. Clearly for large blocks the code
765 duplication is bad.
766
767 PARAM_MAX_JUMP_THREAD_DUPLICATION_STMTS specifies the maximum number
768 of statements and PHI nodes allowed in a block which is going to
769 be duplicated for thread jumping purposes.
770
771 Some simple analysis showed that more than 99% of the jump
772 threading opportunities are for blocks with less than 15
773 statements. So we can get the benefits of jump threading
774 without excessive code bloat for pathological cases with the
775 throttle set at 15 statements. */
776DEFPARAM (PARAM_MAX_JUMP_THREAD_DUPLICATION_STMTS,
777 "max-jump-thread-duplication-stmts",
8fb42bbc 778 "Maximum number of statements allowed in a block that needs to be duplicated when threading jumps.",
cf024d22 779 15, 0, 0)
f0ee0b5b 780
781/* This is the maximum number of fields a variable may have before the pointer analysis machinery
48e1416a 782 will stop trying to treat it in a field-sensitive manner.
f0ee0b5b 783 There are programs out there with thousands of fields per structure, and handling them
784 field-sensitively is not worth the cost. */
785DEFPARAM (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE,
786 "max-fields-for-field-sensitive",
8fb42bbc 787 "Maximum number of fields in a structure before pointer analysis treats the structure as a single variable.",
77975172 788 0, 0, 0)
23df5e5b 789
790DEFPARAM(PARAM_MAX_SCHED_READY_INSNS,
791 "max-sched-ready-insns",
8fb42bbc 792 "The maximum number of instructions ready to be issued to be considered by the scheduler during the first scheduling pass.",
0d6b1f6f 793 100, 1, 0)
23df5e5b 794
1242bee6 795/* This is the maximum number of active local stores RTL DSE will consider. */
796DEFPARAM (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES,
797 "max-dse-active-local-stores",
8fb42bbc 798 "Maximum number of active local stores in RTL dead store elimination.",
1242bee6 799 5000, 0, 0)
800
07804af5 801/* Prefetching and cache-optimizations related parameters. Default values are
802 usually set by machine description. */
803
804/* The number of insns executed before prefetch is completed. */
805
806DEFPARAM (PARAM_PREFETCH_LATENCY,
807 "prefetch-latency",
8fb42bbc 808 "The number of insns executed before prefetch is completed.",
07804af5 809 200, 0, 0)
810
811/* The number of prefetches that can run at the same time. */
812
813DEFPARAM (PARAM_SIMULTANEOUS_PREFETCHES,
814 "simultaneous-prefetches",
8fb42bbc 815 "The number of prefetches that can run at the same time.",
07804af5 816 3, 0, 0)
817
0c916a7b 818/* The size of L1 cache in kB. */
07804af5 819
820DEFPARAM (PARAM_L1_CACHE_SIZE,
821 "l1-cache-size",
8fb42bbc 822 "The size of L1 cache.",
0c916a7b 823 64, 0, 0)
07804af5 824
825/* The size of L1 cache line in bytes. */
826
827DEFPARAM (PARAM_L1_CACHE_LINE_SIZE,
828 "l1-cache-line-size",
8fb42bbc 829 "The size of L1 cache line.",
07804af5 830 32, 0, 0)
831
0c916a7b 832/* The size of L2 cache in kB. */
833
834DEFPARAM (PARAM_L2_CACHE_SIZE,
835 "l2-cache-size",
8fb42bbc 836 "The size of L2 cache.",
0c916a7b 837 512, 0, 0)
838
48956da3 839/* Whether software prefetch hints should be issued for non-constant
840 strides. */
841
842DEFPARAM (PARAM_PREFETCH_DYNAMIC_STRIDES,
843 "prefetch-dynamic-strides",
844 "Whether software prefetch hints should be issued for non-constant "
845 "strides.",
846 1, 0, 1)
847
6dc01178 848/* The minimum constant stride beyond which we should use prefetch hints
849 for. */
850
851DEFPARAM (PARAM_PREFETCH_MINIMUM_STRIDE,
852 "prefetch-minimum-stride",
853 "The minimum constant stride beyond which we should use prefetch "
854 "hints for.",
855 -1, 0, 0)
856
5051abaf 857/* Maximum number of statements in loop nest for loop interchange. */
858
859DEFPARAM (PARAM_LOOP_INTERCHANGE_MAX_NUM_STMTS,
860 "loop-interchange-max-num-stmts",
861 "The maximum number of stmts in loop nest for loop interchange.",
862 64, 0, 0)
863
864/* Minimum stride ratio for loop interchange to be profitiable. */
865
866DEFPARAM (PARAM_LOOP_INTERCHANGE_STRIDE_RATIO,
867 "loop-interchange-stride-ratio",
2243751f 868 "The minimum stride ratio for loop interchange to be profitable.",
5051abaf 869 2, 0, 0)
870
a1406b2e 871/* Whether we should use canonical types rather than deep "structural"
872 type checking. Setting this value to 1 (the default) improves
873 compilation performance in the C++ and Objective-C++ front end;
874 this value should only be set to zero to work around bugs in the
875 canonical type system by disabling it. */
876
877DEFPARAM (PARAM_USE_CANONICAL_TYPES,
878 "use-canonical-types",
8fb42bbc 879 "Whether to use canonical types.",
a1406b2e 880 1, 0, 1)
82a67b2c 881
882DEFPARAM (PARAM_MAX_PARTIAL_ANTIC_LENGTH,
883 "max-partial-antic-length",
8fb42bbc 884 "Maximum length of partial antic set when performing tree pre optimization.",
82a67b2c 885 100, 0, 0)
886
51e85e64 887/* The following is used as a stop-gap limit for cases where really deep
888 loop nests cause compile-time to blow up. If we hit this limit,
889 FRE and PRE will value-number outer loops (but the outermost) in a
890 loop nest non-optimistically. */
891
892DEFPARAM (PARAM_RPO_VN_MAX_LOOP_DEPTH,
893 "rpo-vn-max-loop-depth",
894 "Maximum depth of a loop nest to fully value-number optimistically.",
895 7, 2, 0)
a9b2282e 896
297a2110 897/* The following is used as a stop-gap limit for cases where really huge
898 functions blow up compile-time use too much. It limits the number of
899 alias-queries we do for finding common subexpressions for memory loads and
900 stores. The number of alias-queries is otherwise limited by the number of
901 stores on paths to function entry. */
902
903DEFPARAM (PARAM_SCCVN_MAX_ALIAS_QUERIES_PER_ACCESS,
904 "sccvn-max-alias-queries-per-access",
8fb42bbc 905 "Maximum number of disambiguations to perform per memory access.",
297a2110 906 1000, 0, 0)
907
47dd2e78 908DEFPARAM (PARAM_IRA_MAX_LOOPS_NUM,
909 "ira-max-loops-num",
8fb42bbc 910 "Max loops number for regional RA.",
ddf888a5 911 100, 0, 0)
47dd2e78 912
95c83f01 913DEFPARAM (PARAM_IRA_MAX_CONFLICT_TABLE_SIZE,
914 "ira-max-conflict-table-size",
8fb42bbc 915 "Max size of conflict table in MB.",
d0388252 916 1000, 0, 0)
95c83f01 917
e8eed2f8 918DEFPARAM (PARAM_IRA_LOOP_RESERVED_REGS,
919 "ira-loop-reserved-regs",
8fb42bbc 920 "The number of registers in each class kept unused by loop invariant motion.",
e8eed2f8 921 2, 0, 0)
922
eb3db740 923DEFPARAM (PARAM_LRA_MAX_CONSIDERED_RELOAD_PSEUDOS,
924 "lra-max-considered-reload-pseudos",
8fb42bbc 925 "The max number of reload pseudos which are considered during spilling a non-reload pseudo.",
eb3db740 926 500, 0, 0)
927
4b69081d 928DEFPARAM (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF,
929 "lra-inheritance-ebb-probability-cutoff",
8fb42bbc 930 "Minimal fall-through edge probability in percentage used to add BB to inheritance EBB in LRA.",
4b69081d 931 40, 0, 100)
932
a347af29 933/* Switch initialization conversion will refuse to create arrays that are
934 bigger than this parameter times the number of switch branches. */
935
936DEFPARAM (PARAM_SWITCH_CONVERSION_BRANCH_RATIO,
937 "switch-conversion-max-branch-ratio",
938 "The maximum ratio between array size and switch branches for "
8fb42bbc 939 "a switch conversion to take place.",
a347af29 940 8, 1, 0)
941
b8ad26cc 942/* Size of tiles when doing loop blocking. */
943
944DEFPARAM (PARAM_LOOP_BLOCK_TILE_SIZE,
945 "loop-block-tile-size",
2243751f 946 "Size of tiles for loop blocking.",
b8ad26cc 947 51, 0, 0)
948
c2e502a5 949/* Maximal number of parameters that we allow in a SCoP. */
950
951DEFPARAM (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS,
952 "graphite-max-nb-scop-params",
2243751f 953 "Maximum number of parameters in a SCoP.",
0fcd2c46 954 10, 0, 0)
94ba21de 955
84e96705 956/* Maximal number of array references in a scop. */
957
958DEFPARAM (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP,
959 "graphite-max-arrays-per-scop",
0552d7c9 960 "Maximum number of arrays per SCoP.",
84e96705 961 100, 0, 0)
962
36620673 963DEFPARAM (PARAM_MAX_ISL_OPERATIONS,
964 "max-isl-operations",
2243751f 965 "Maximum number of isl operations, 0 means unlimited.",
36620673 966 350000, 0, 0)
967
ddfcfd24 968/* For testsuite purposes allow to check for codegen error handling. */
969DEFPARAM (PARAM_GRAPHITE_ALLOW_CODEGEN_ERRORS,
970 "graphite-allow-codegen-errors",
2243751f 971 "Whether codegen errors should be ICEs when -fchecking.",
ddfcfd24 972 0, 0, 1)
973
c7af8ae7 974/* Avoid data dependence analysis on very large loops. */
975DEFPARAM (PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS,
976 "loop-max-datarefs-for-datadeps",
8fb42bbc 977 "Maximum number of datarefs in loop for building loop data dependencies.",
c7af8ae7 978 1000, 0, 0)
979
86482d6b 980/* Avoid doing loop invariant motion on very large loops. */
981
982DEFPARAM (PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP,
983 "loop-invariant-max-bbs-in-loop",
8fb42bbc 984 "Max basic blocks number in loop for loop invariant motion.",
86482d6b 985 10000, 0, 0)
986
d9e50003 987/* When the parameter is 1, use the internal function id
988 to look up for profile data. Otherwise, use a more stable
989 external id based on assembler name and source location. */
990DEFPARAM (PARAM_PROFILE_FUNC_INTERNAL_ID,
2243751f 991 "profile-func-internal-id",
992 "Use internal function id in profile lookup.",
993 0, 0, 1)
b74245ec 994
37545e54 995/* Avoid SLP vectorization of large basic blocks. */
996DEFPARAM (PARAM_SLP_MAX_INSNS_IN_BB,
2243751f 997 "slp-max-insns-in-bb",
998 "Maximum number of instructions in basic block to be considered for "
999 "SLP vectorization.", 1000, 0, 0)
37545e54 1000
0ab353e1 1001DEFPARAM (PARAM_MIN_INSN_TO_PREFETCH_RATIO,
1002 "min-insn-to-prefetch-ratio",
17d6d879 1003 "Min. ratio of insns to prefetches to enable prefetching for "
8fb42bbc 1004 "a loop with an unknown trip count.",
cd0925e2 1005 9, 0, 0)
0ab353e1 1006
1007DEFPARAM (PARAM_PREFETCH_MIN_INSN_TO_MEM_RATIO,
1008 "prefetch-min-insn-to-mem-ratio",
8fb42bbc 1009 "Min. ratio of insns to mem ops to enable prefetching in a loop.",
0ab353e1 1010 3, 0, 0)
1011
76f4ab1c 1012/* Set maximum hash table size for var tracking. */
1013
1014DEFPARAM (PARAM_MAX_VARTRACK_SIZE,
1015 "max-vartrack-size",
8fb42bbc 1016 "Max. size of var tracking hash tables.",
76f4ab1c 1017 50000000, 0, 0)
1018
b5c80997 1019/* Set maximum recursion depth for var tracking expression expansion
1020 and resolution. */
1021
1022DEFPARAM (PARAM_MAX_VARTRACK_EXPR_DEPTH,
1023 "max-vartrack-expr-depth",
8fb42bbc 1024 "Max. recursion depth for expanding var tracking expressions.",
2e337e8f 1025 12, 0, 0)
b5c80997 1026
78ea005d 1027/* Set maximum length of value location list for which var tracking
1028 should add reverse operations. */
1029
1030DEFPARAM (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE,
1031 "max-vartrack-reverse-op-size",
8fb42bbc 1032 "Max. size of loc list for which reverse ops should be added.",
78ea005d 1033 50, 0, 0)
1034
90567983 1035/* Set a threshold to discard debug markers (e.g. debug begin stmt
1036 markers) when expanding a function to RTL, or inlining it into
1037 another function. */
1038
1039DEFPARAM (PARAM_MAX_DEBUG_MARKER_COUNT,
1040 "max-debug-marker-count",
1041 "Max. count of debug markers to expand or inline.",
1042 100000, 0, 0)
1043
9845d120 1044/* Set minimum insn uid for non-debug insns. */
1045
1046DEFPARAM (PARAM_MIN_NONDEBUG_INSN_UID,
1047 "min-nondebug-insn-uid",
8fb42bbc 1048 "The minimum UID to be used for a nondebug insn.",
09bb2c40 1049 0, 0, 0)
9845d120 1050
2f29eac3 1051DEFPARAM (PARAM_IPA_SRA_PTR_GROWTH_FACTOR,
1052 "ipa-sra-ptr-growth-factor",
fb9eabe8 1053 "Maximum allowed growth of number and total size of new parameters "
1054 "that ipa-sra replaces a pointer to an aggregate with.",
2f29eac3 1055 2, 0, 0)
1056
4c0315d0 1057DEFPARAM (PARAM_TM_MAX_AGGREGATE_SIZE,
1058 "tm-max-aggregate-size",
1059 "Size in bytes after which thread-local aggregates should be "
1060 "instrumented with the logging functions instead of save/restore "
8fb42bbc 1061 "pairs.",
4c0315d0 1062 9, 0, 0)
1063
67622758 1064DEFPARAM (PARAM_SRA_MAX_SCALARIZATION_SIZE_SPEED,
1065 "sra-max-scalarization-size-Ospeed",
1066 "Maximum size, in storage units, of an aggregate which should be "
8fb42bbc 1067 "considered for scalarization when compiling for speed.",
67622758 1068 0, 0, 0)
1069
1070DEFPARAM (PARAM_SRA_MAX_SCALARIZATION_SIZE_SIZE,
1071 "sra-max-scalarization-size-Osize",
1072 "Maximum size, in storage units, of an aggregate which should be "
8fb42bbc 1073 "considered for scalarization when compiling for size.",
67622758 1074 0, 0, 0)
1075
821d0e0f 1076DEFPARAM (PARAM_IPA_CP_VALUE_LIST_SIZE,
1077 "ipa-cp-value-list-size",
1078 "Maximum size of a list of values associated with each parameter for "
8fb42bbc 1079 "interprocedural constant propagation.",
1caef38b 1080 8, 0, 0)
1081
821d0e0f 1082DEFPARAM (PARAM_IPA_CP_EVAL_THRESHOLD,
1083 "ipa-cp-eval-threshold",
1084 "Threshold ipa-cp opportunity evaluation that is still considered "
2243751f 1085 "beneficial to clone.",
821d0e0f 1086 500, 0, 0)
1087
39fcd838 1088DEFPARAM (PARAM_IPA_CP_RECURSION_PENALTY,
1089 "ipa-cp-recursion-penalty",
1090 "Percentage penalty the recursive functions will receive when they "
2243751f 1091 "are evaluated for cloning.",
39fcd838 1092 40, 0, 100)
1093
1094DEFPARAM (PARAM_IPA_CP_SINGLE_CALL_PENALTY,
1095 "ipa-cp-single-call-penalty",
d0abd9e0 1096 "Percentage penalty functions containing a single call to another "
2243751f 1097 "function will receive when they are evaluated for cloning.",
39fcd838 1098 15, 0, 100)
1099
699f00b5 1100DEFPARAM (PARAM_IPA_MAX_AGG_ITEMS,
1101 "ipa-max-agg-items",
1102 "Maximum number of aggregate content items for a parameter in "
8fb42bbc 1103 "jump functions and lattices.",
699f00b5 1104 16, 0, 0)
1105
803a7988 1106DEFPARAM (PARAM_IPA_CP_LOOP_HINT_BONUS,
1107 "ipa-cp-loop-hint-bonus",
1108 "Compile-time bonus IPA-CP assigns to candidates which make loop "
2243751f 1109 "bounds or strides known.",
803a7988 1110 64, 0, 0)
1111
3a1cb879 1112DEFPARAM (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS,
1113 "ipa-cp-array-index-hint-bonus",
1114 "Compile-time bonus IPA-CP assigns to candidates which make an array "
2243751f 1115 "index known.",
3a1cb879 1116 48, 0, 0)
1117
24430d08 1118DEFPARAM (PARAM_IPA_MAX_AA_STEPS,
1119 "ipa-max-aa-steps",
1120 "Maximum number of statements that will be visited by IPA formal "
8fb42bbc 1121 "parameter analysis based on alias analysis in any given function.",
24430d08 1122 25000, 0, 0)
1123
48e3ea52 1124/* WHOPR partitioning configuration. */
1125
1126DEFPARAM (PARAM_LTO_PARTITIONS,
1127 "lto-partitions",
8fb42bbc 1128 "Number of partitions the program should be split to.",
b07bf3b9 1129 128, 1, 0)
48e3ea52 1130
1131DEFPARAM (MIN_PARTITION_SIZE,
1132 "lto-min-partition",
8fb42bbc 1133 "Minimal size of a partition for LTO (in estimated instructions).",
0ef04789 1134 10000, 0, 0)
f91726b4 1135
49547b8a 1136DEFPARAM (MAX_PARTITION_SIZE,
1137 "lto-max-partition",
1138 "Maximal size of a partition for LTO (in estimated instructions).",
1139 1000000, 0, INT_MAX)
1140
7d4bbc86 1141DEFPARAM (PARAM_MAX_LTO_STREAMING_PARALLELISM,
1142 "lto-max-streaming-parallelism",
1143 "maximal number of LTO partitions streamed in parallel.",
1144 32, 1, 0)
1145
f91726b4 1146/* Diagnostic parameters. */
1147
1148DEFPARAM (CXX_MAX_NAMESPACES_FOR_DIAGNOSTIC_HELP,
1149 "cxx-max-namespaces-for-diagnostic-help",
1150 "Maximum number of namespaces to search for alternatives when "
8fb42bbc 1151 "name lookup fails.",
f91726b4 1152 1000, 0, 0)
1153
ec611e12 1154/* Maximum number of conditional store pairs that can be sunk. */
1155DEFPARAM (PARAM_MAX_STORES_TO_SINK,
1156 "max-stores-to-sink",
8fb42bbc 1157 "Maximum number of conditional store pairs that can be sunk.",
ec611e12 1158 2, 0, 0)
1159
7e0c8808 1160/* Override CASE_VALUES_THRESHOLD of when to switch from doing switch
1161 statements via if statements to using a table jump operation. If the value
1162 is 0, the default CASE_VALUES_THRESHOLD will be used. */
1163DEFPARAM (PARAM_CASE_VALUES_THRESHOLD,
1164 "case-values-threshold",
1165 "The smallest number of different values for which it is best to "
1166 "use a jump-table instead of a tree of conditional branches, "
8fb42bbc 1167 "if 0, use the default for the machine.",
7e0c8808 1168 0, 0, 0)
1169
d040edad 1170DEFPARAM (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SIZE,
1171 "jump-table-max-growth-ratio-for-size",
1172 "The maximum code size growth ratio when expanding "
1173 "into a jump table (in percent). The parameter is used when "
1174 "optimizing for size.",
1175 300, 0, 0)
1176
1177DEFPARAM (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SPEED,
1178 "jump-table-max-growth-ratio-for-speed",
1179 "The maximum code size growth ratio when expanding "
1180 "into a jump table (in percent). The parameter is used when "
1181 "optimizing for speed.",
1182 800, 0, 0)
1183
4bb60ec7 1184/* Data race flags for C++0x memory model compliance. */
1185DEFPARAM (PARAM_ALLOW_STORE_DATA_RACES,
1186 "allow-store-data-races",
8fb42bbc 1187 "Allow new data races on stores to be introduced.",
f4d15364 1188 0, 0, 1)
1cd6e20d 1189
5b1c765d 1190/* Reassociation width to be used by tree reassoc optimization. */
1191DEFPARAM (PARAM_TREE_REASSOC_WIDTH,
1192 "tree-reassoc-width",
1193 "Set the maximum number of instructions executed in parallel in "
2243751f 1194 "reassociated tree. If 0, use the target dependent heuristic.",
5b1c765d 1195 0, 0, 0)
1196
51385f30 1197DEFPARAM (PARAM_MAX_TAIL_MERGE_COMPARISONS,
1198 "max-tail-merge-comparisons",
8fb42bbc 1199 "Maximum amount of similar bbs to compare a bb with.",
51385f30 1200 10, 0, 0)
1201
3d3e04ac 1202DEFPARAM (PARAM_STORE_MERGING_ALLOW_UNALIGNED,
1203 "store-merging-allow-unaligned",
1204 "Allow the store merging pass to introduce unaligned stores "
42996cab 1205 "if it is legal to do so.",
3d3e04ac 1206 1, 0, 1)
1207
1208DEFPARAM (PARAM_MAX_STORES_TO_MERGE,
1209 "max-stores-to-merge",
32bb76c6 1210 "Maximum number of constant stores to merge in the "
42996cab 1211 "store merging pass.",
3d3e04ac 1212 64, 2, 0)
1213
e1eef457 1214DEFPARAM (PARAM_STORE_MERGING_MAX_SIZE,
1215 "store-merging-max-size",
1216 "Maximum size of a single store merging region in bytes.",
1217 65536, 1, 1)
1218
51385f30 1219DEFPARAM (PARAM_MAX_TAIL_MERGE_ITERATIONS,
1220 "max-tail-merge-iterations",
8fb42bbc 1221 "Maximum amount of iterations of the pass over a function.",
51385f30 1222 2, 0, 0)
ec611e12 1223
2d64dc70 1224/* Maximum number of strings for which strlen optimization pass will
1225 track string lenths. */
1226DEFPARAM (PARAM_MAX_TRACKED_STRLENS,
1227 "max-tracked-strlens",
1228 "Maximum number of strings for which strlen optimization pass will "
8fb42bbc 1229 "track string lengths.",
150a0f7d 1230 10000, 0, 0)
2d64dc70 1231
d86dbf92 1232/* Keep this in sync with the sched_pressure_algorithm enum. */
1233DEFPARAM (PARAM_SCHED_PRESSURE_ALGORITHM,
1234 "sched-pressure-algorithm",
8fb42bbc 1235 "Which -fsched-pressure algorithm to apply.",
d86dbf92 1236 1, 1, 2)
1237
df4c32b3 1238/* Maximum length of candidate scans in straight-line strength reduction. */
1239DEFPARAM (PARAM_MAX_SLSR_CANDIDATE_SCAN,
1240 "max-slsr-cand-scan",
1241 "Maximum length of candidate scans for straight-line "
8fb42bbc 1242 "strength reduction.",
df4c32b3 1243 50, 1, 999999)
1244
dbcb8969 1245/* ASan stands for AddressSanitizer: https://github.com/google/sanitizers. */
1246
bf2b7c22 1247DEFPARAM (PARAM_ASAN_STACK,
1248 "asan-stack",
8fb42bbc 1249 "Enable asan stack protection.",
bf2b7c22 1250 1, 0, 1)
1251
77c44489 1252DEFPARAM (PARAM_ASAN_PROTECT_ALLOCAS,
1253 "asan-instrument-allocas",
1254 "Enable asan allocas/VLAs protection.",
1255 1, 0, 1)
1256
bf2b7c22 1257DEFPARAM (PARAM_ASAN_GLOBALS,
1258 "asan-globals",
8fb42bbc 1259 "Enable asan globals protection.",
bf2b7c22 1260 1, 0, 1)
1261
1262DEFPARAM (PARAM_ASAN_INSTRUMENT_WRITES,
1263 "asan-instrument-writes",
8fb42bbc 1264 "Enable asan store operations protection.",
bf2b7c22 1265 1, 0, 1)
1266
1267DEFPARAM (PARAM_ASAN_INSTRUMENT_READS,
1268 "asan-instrument-reads",
8fb42bbc 1269 "Enable asan load operations protection.",
bf2b7c22 1270 1, 0, 1)
1271
1272DEFPARAM (PARAM_ASAN_MEMINTRIN,
1273 "asan-memintrin",
8fb42bbc 1274 "Enable asan builtin functions protection.",
bf2b7c22 1275 1, 0, 1)
1276
1277DEFPARAM (PARAM_ASAN_USE_AFTER_RETURN,
1278 "asan-use-after-return",
8fb42bbc 1279 "Enable asan detection of use-after-return bugs.",
bf2b7c22 1280 1, 0, 1)
13e8ebe8 1281
4f86f720 1282DEFPARAM (PARAM_ASAN_INSTRUMENTATION_WITH_CALL_THRESHOLD,
1283 "asan-instrumentation-with-call-threshold",
ff326078 1284 "Use callbacks instead of inline code if number of accesses "
8fb42bbc 1285 "in function becomes greater or equal to this number.",
ff326078 1286 7000, 0, INT_MAX)
4f86f720 1287
629b6abc 1288DEFPARAM (PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD,
1289 "use-after-scope-direct-emission-threshold",
d0abd9e0 1290 "Use direct poisoning/unpoisoning instructions for variables "
629b6abc 1291 "smaller or equal to this number.",
1292 256, 0, INT_MAX)
1293
13e8ebe8 1294DEFPARAM (PARAM_UNINIT_CONTROL_DEP_ATTEMPTS,
1295 "uninit-control-dep-attempts",
1296 "Maximum number of nested calls to search for control dependencies "
8fb42bbc 1297 "during uninitialized variable analysis.",
13e8ebe8 1298 1000, 1, 0)
058a1b7a 1299
9b849350 1300DEFPARAM (PARAM_FSM_SCALE_PATH_STMTS,
1301 "fsm-scale-path-stmts",
1302 "Scale factor to apply to the number of statements in a threading path when comparing to the number of (scaled) blocks.",
1303 2, 1, 10)
1304
499b8575 1305DEFPARAM (PARAM_FSM_MAXIMUM_PHI_ARGUMENTS,
1306 "fsm-maximum-phi-arguments",
1307 "Maximum number of arguments a PHI may have before the FSM threader will not try to thread through its block.",
1308 100, 1, 999999)
1309
9b849350 1310DEFPARAM (PARAM_FSM_SCALE_PATH_BLOCKS,
1311 "fsm-scale-path-blocks",
1312 "Scale factor to apply to the number of blocks in a threading path when comparing to the number of (scaled) statements.",
1313 3, 1, 10)
1314
ded1c768 1315DEFPARAM (PARAM_MAX_FSM_THREAD_PATH_INSNS,
1316 "max-fsm-thread-path-insns",
8fb42bbc 1317 "Maximum number of instructions to copy when duplicating blocks on a finite state automaton jump thread path.",
ded1c768 1318 100, 1, 999999)
1319
1320DEFPARAM (PARAM_MAX_FSM_THREAD_LENGTH,
1321 "max-fsm-thread-length",
8fb42bbc 1322 "Maximum number of basic blocks on a finite state automaton jump thread path.",
ded1c768 1323 10, 1, 999999)
1324
1325DEFPARAM (PARAM_MAX_FSM_THREAD_PATHS,
1326 "max-fsm-thread-paths",
8fb42bbc 1327 "Maximum number of new jump thread paths to create for a finite state automaton.",
ded1c768 1328 50, 1, 999999)
9a782341 1329
1330DEFPARAM (PARAM_PARLOOPS_CHUNK_SIZE,
1331 "parloops-chunk-size",
8fb42bbc 1332 "Chunk size of omp schedule for loops parallelized by parloops.",
9a782341 1333 0, 0, 0)
ee230333 1334
2331aa43 1335DEFPARAMENUM5 (PARAM_PARLOOPS_SCHEDULE,
1336 "parloops-schedule",
1337 "Schedule type of omp schedule for loops parallelized by "
8fb42bbc 1338 "parloops (static, dynamic, guided, auto, runtime).",
2331aa43 1339 static,
1340 static, dynamic, guided, auto, runtime)
1341
b3687123 1342DEFPARAM (PARAM_PARLOOPS_MIN_PER_THREAD,
1343 "parloops-min-per-thread",
1344 "Minimum number of iterations per thread of an innermost "
1345 "parallelized loop.",
1346 100, 2, 0)
1347
ee230333 1348DEFPARAM (PARAM_MAX_SSA_NAME_QUERY_DEPTH,
1349 "max-ssa-name-query-depth",
1350 "Maximum recursion depth allowed when querying a property of an"
8fb42bbc 1351 " SSA name.",
d67a31ec 1352 3, 1, 10)
bd8bece2 1353
1354DEFPARAM (PARAM_MAX_RTL_IF_CONVERSION_INSNS,
1355 "max-rtl-if-conversion-insns",
1356 "Maximum number of insns in a basic block to consider for RTL "
1357 "if-conversion.",
1358 10, 0, 99)
56686608 1359
1019399a 1360DEFPARAM (PARAM_MAX_RTL_IF_CONVERSION_PREDICTABLE_COST,
1361 "max-rtl-if-conversion-predictable-cost",
1362 "Maximum permissible cost for the sequence that would be "
1363 "generated by the RTL if-conversion pass for a branch that "
1364 "is considered predictable.",
1365 20, 0, 200)
1366
1367DEFPARAM (PARAM_MAX_RTL_IF_CONVERSION_UNPREDICTABLE_COST,
1368 "max-rtl-if-conversion-unpredictable-cost",
1369 "Maximum permissible cost for the sequence that would be "
1370 "generated by the RTL if-conversion pass for a branch that "
1371 "is considered unpredictable.",
1372 40, 0, 200)
1373
56686608 1374DEFPARAM (PARAM_HSA_GEN_DEBUG_STORES,
1375 "hsa-gen-debug-stores",
2243751f 1376 "Level of hsa debug stores verbosity.",
56686608 1377 0, 0, 1)
1140bac5 1378
1379DEFPARAM (PARAM_MAX_SPECULATIVE_DEVIRT_MAYDEFS,
1380 "max-speculative-devirt-maydefs",
1381 "Maximum number of may-defs visited when devirtualizing "
2243751f 1382 "speculatively.", 50, 0, 0)
1140bac5 1383
7e1856f1 1384DEFPARAM (PARAM_MAX_VRP_SWITCH_ASSERTIONS,
1385 "max-vrp-switch-assertions",
1386 "Maximum number of assertions to add along the default "
2243751f 1387 "edge of a switch statement during VRP.",
7e1856f1 1388 10, 0, 0)
1389
5b631e09 1390DEFPARAM (PARAM_VECT_EPILOGUES_NOMASK,
1391 "vect-epilogues-nomask",
1392 "Enable loop epilogue vectorization using smaller vector size.",
1393 0, 0, 1)
1394
baf1c4a6 1395DEFPARAM(PARAM_UNROLL_JAM_MIN_PERCENT,
1396 "unroll-jam-min-percent",
1397 "Minimum percentage of memrefs that must go away for unroll-and-jam to be considered profitable.",
1398 1, 0, 100)
1399
1400DEFPARAM(PARAM_UNROLL_JAM_MAX_UNROLL,
1401 "unroll-jam-max-unroll",
1402 "Maximum unroll factor for the unroll-and-jam transformation.",
1403 4, 0, 0)
1404
ed306e55 1405DEFPARAM(PARAM_AVOID_FMA_MAX_BITS,
1406 "avoid-fma-max-bits",
1407 "Maximum number of bits for which we avoid creating FMAs.",
1408 0, 0, 512)
1409
8aa5cb12 1410DEFPARAM(PARAM_LOGICAL_OP_NON_SHORT_CIRCUIT,
1411 "logical-op-non-short-circuit",
1412 "True if a non-short-circuit operation is optimal.",
1413 -1, -1, 1)
1414
9435b515 1415DEFPARAM(PARAM_LOOP_VERSIONING_MAX_INNER_INSNS,
1416 "loop-versioning-max-inner-insns",
1417 "The maximum number of instructions in an inner loop that is being"
1418 " considered for versioning.",
1419 200, 0, 0)
1420
1421DEFPARAM(PARAM_LOOP_VERSIONING_MAX_OUTER_INSNS,
1422 "loop-versioning-max-outer-insns",
1423 "The maximum number of instructions in an outer loop that is being"
1424 " considered for versioning, on top of the instructions in inner"
1425 " loops.",
1426 100, 0, 0)
1427
6b33947d 1428DEFPARAM(PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD,
1429 "gimple-fe-computed-hot-bb-threshold",
1430 "The number of executions of a basic block which is considered hot."
e352c934 1431 " The parameter is used only in GIMPLE FE.",
6b33947d 1432 0, 0, 0)
1433
c2880a00 1434DEFPARAM(PARAM_HASH_TABLE_VERIFICATION_LIMIT,
1435 "hash-table-verification-limit",
1436 "The number of elements for which hash table verification is done for "
1437 "each searched element.",
393c7ec6 1438 10, 0, 0)
c2880a00 1439
9a33a2e8 1440/*
bf2b7c22 1441
9a33a2e8 1442Local variables:
1443mode:c
8747a9a4 1444End:
1445*/