1*e4b17023SJohn Marino/* params.def - Run-time parameters. 2*e4b17023SJohn Marino Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 3*e4b17023SJohn Marino 2011, 2012 4*e4b17023SJohn Marino Free Software Foundation, Inc. 5*e4b17023SJohn Marino Written by Mark Mitchell <mark@codesourcery.com>. 6*e4b17023SJohn Marino 7*e4b17023SJohn MarinoThis file is part of GCC. 8*e4b17023SJohn Marino 9*e4b17023SJohn MarinoGCC is free software; you can redistribute it and/or modify it under 10*e4b17023SJohn Marinothe terms of the GNU General Public License as published by the Free 11*e4b17023SJohn MarinoSoftware Foundation; either version 3, or (at your option) any later 12*e4b17023SJohn Marinoversion. 13*e4b17023SJohn Marino 14*e4b17023SJohn MarinoGCC is distributed in the hope that it will be useful, but WITHOUT ANY 15*e4b17023SJohn MarinoWARRANTY; without even the implied warranty of MERCHANTABILITY or 16*e4b17023SJohn MarinoFITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 17*e4b17023SJohn Marinofor more details. 18*e4b17023SJohn Marino 19*e4b17023SJohn MarinoYou should have received a copy of the GNU General Public License 20*e4b17023SJohn Marinoalong with GCC; see the file COPYING3. If not see 21*e4b17023SJohn Marino<http://www.gnu.org/licenses/>. */ 22*e4b17023SJohn Marino 23*e4b17023SJohn Marino/* This file contains definitions for language-independent 24*e4b17023SJohn Marino parameters. The DEFPARAM macro takes 6 arguments: 25*e4b17023SJohn Marino 26*e4b17023SJohn Marino - The enumeral corresponding to this parameter. 27*e4b17023SJohn Marino 28*e4b17023SJohn Marino - The name that can be used to set this parameter using the 29*e4b17023SJohn Marino command-line option `--param <name>=<value>'. 30*e4b17023SJohn Marino 31*e4b17023SJohn Marino - A help string explaining how the parameter is used. 32*e4b17023SJohn Marino 33*e4b17023SJohn Marino - A default value for the parameter. 34*e4b17023SJohn Marino 35*e4b17023SJohn Marino - The minimum acceptable value for the parameter. 36*e4b17023SJohn Marino 37*e4b17023SJohn Marino - The maximum acceptable value for the parameter (if greater than 38*e4b17023SJohn Marino the minimum). 39*e4b17023SJohn Marino 40*e4b17023SJohn Marino Be sure to add an entry to invoke.texi summarizing the parameter. */ 41*e4b17023SJohn Marino 42*e4b17023SJohn Marino/* When branch is predicted to be taken with probability lower than this 43*e4b17023SJohn Marino threshold (in percent), then it is considered well predictable. */ 44*e4b17023SJohn MarinoDEFPARAM (PARAM_PREDICTABLE_BRANCH_OUTCOME, 45*e4b17023SJohn Marino "predictable-branch-outcome", 46*e4b17023SJohn Marino "Maximal estimated outcome of branch considered predictable", 47*e4b17023SJohn Marino 2, 0, 50) 48*e4b17023SJohn Marino 49*e4b17023SJohn Marino/* The single function inlining limit. This is the maximum size 50*e4b17023SJohn Marino of a function counted in internal gcc instructions (not in 51*e4b17023SJohn Marino real machine instructions) that is eligible for inlining 52*e4b17023SJohn Marino by the tree inliner. 53*e4b17023SJohn Marino The default value is 450. 54*e4b17023SJohn Marino Only functions marked inline (or methods defined in the class 55*e4b17023SJohn Marino definition for C++) are affected by this. 56*e4b17023SJohn Marino There are more restrictions to inlining: If inlined functions 57*e4b17023SJohn Marino call other functions, the already inlined instructions are 58*e4b17023SJohn Marino counted and once the recursive inline limit (see 59*e4b17023SJohn Marino "max-inline-insns" parameter) is exceeded, the acceptable size 60*e4b17023SJohn Marino gets decreased. */ 61*e4b17023SJohn MarinoDEFPARAM (PARAM_MAX_INLINE_INSNS_SINGLE, 62*e4b17023SJohn Marino "max-inline-insns-single", 63*e4b17023SJohn Marino "The maximum number of instructions in a single function eligible for inlining", 64*e4b17023SJohn Marino 400, 0, 0) 65*e4b17023SJohn Marino 66*e4b17023SJohn Marino/* The single function inlining limit for functions that are 67*e4b17023SJohn Marino inlined by virtue of -finline-functions (-O3). 68*e4b17023SJohn Marino This limit should be chosen to be below or equal to the limit 69*e4b17023SJohn Marino that is applied to functions marked inlined (or defined in the 70*e4b17023SJohn Marino class declaration in C++) given by the "max-inline-insns-single" 71*e4b17023SJohn Marino parameter. 72*e4b17023SJohn Marino The default value is 40. */ 73*e4b17023SJohn MarinoDEFPARAM (PARAM_MAX_INLINE_INSNS_AUTO, 74*e4b17023SJohn Marino "max-inline-insns-auto", 75*e4b17023SJohn Marino "The maximum number of instructions when automatically inlining", 76*e4b17023SJohn Marino 40, 0, 0) 77*e4b17023SJohn Marino 78*e4b17023SJohn MarinoDEFPARAM (PARAM_MAX_INLINE_INSNS_RECURSIVE, 79*e4b17023SJohn Marino "max-inline-insns-recursive", 80*e4b17023SJohn Marino "The maximum number of instructions inline function can grow to via recursive inlining", 81*e4b17023SJohn Marino 450, 0, 0) 82*e4b17023SJohn Marino 83*e4b17023SJohn MarinoDEFPARAM (PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO, 84*e4b17023SJohn Marino "max-inline-insns-recursive-auto", 85*e4b17023SJohn Marino "The maximum number of instructions non-inline function can grow to via recursive inlining", 86*e4b17023SJohn Marino 450, 0, 0) 87*e4b17023SJohn Marino 88*e4b17023SJohn MarinoDEFPARAM (PARAM_MAX_INLINE_RECURSIVE_DEPTH, 89*e4b17023SJohn Marino "max-inline-recursive-depth", 90*e4b17023SJohn Marino "The maximum depth of recursive inlining for inline functions", 91*e4b17023SJohn Marino 8, 0, 0) 92*e4b17023SJohn Marino 93*e4b17023SJohn MarinoDEFPARAM (PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO, 94*e4b17023SJohn Marino "max-inline-recursive-depth-auto", 95*e4b17023SJohn Marino "The maximum depth of recursive inlining for non-inline functions", 96*e4b17023SJohn Marino 8, 0, 0) 97*e4b17023SJohn Marino 98*e4b17023SJohn MarinoDEFPARAM (PARAM_MIN_INLINE_RECURSIVE_PROBABILITY, 99*e4b17023SJohn Marino "min-inline-recursive-probability", 100*e4b17023SJohn Marino "Inline recursively only when the probability of call being executed exceeds the parameter", 101*e4b17023SJohn Marino 10, 0, 0) 102*e4b17023SJohn Marino 103*e4b17023SJohn Marino/* Limit of iterations of early inliner. This basically bounds number of 104*e4b17023SJohn Marino nested indirect calls early inliner can resolve. Deeper chains are still 105*e4b17023SJohn Marino handled by late inlining. */ 106*e4b17023SJohn MarinoDEFPARAM (PARAM_EARLY_INLINER_MAX_ITERATIONS, 107*e4b17023SJohn Marino "max-early-inliner-iterations", 108*e4b17023SJohn Marino "The maximum number of nested indirect inlining performed by early inliner", 109*e4b17023SJohn Marino 10, 0, 0) 110*e4b17023SJohn Marino 111*e4b17023SJohn Marino/* Limit on probability of entry BB. */ 112*e4b17023SJohn MarinoDEFPARAM (PARAM_COMDAT_SHARING_PROBABILITY, 113*e4b17023SJohn Marino "comdat-sharing-probability", 114*e4b17023SJohn Marino "Probability that COMDAT function will be shared with different compilation unit", 115*e4b17023SJohn Marino 20, 0, 0) 116*e4b17023SJohn Marino 117*e4b17023SJohn Marino/* Limit on probability of entry BB. */ 118*e4b17023SJohn MarinoDEFPARAM (PARAM_PARTIAL_INLINING_ENTRY_PROBABILITY, 119*e4b17023SJohn Marino "partial-inlining-entry-probability", 120*e4b17023SJohn Marino "Maximum probability of the entry BB of split region (in percent relative to entry BB of the function) to make partial inlining happen", 121*e4b17023SJohn Marino 70, 0, 0) 122*e4b17023SJohn Marino 123*e4b17023SJohn Marino/* Limit the number of expansions created by the variable expansion 124*e4b17023SJohn Marino optimization to avoid register pressure. */ 125*e4b17023SJohn MarinoDEFPARAM (PARAM_MAX_VARIABLE_EXPANSIONS, 126*e4b17023SJohn Marino "max-variable-expansions-in-unroller", 127*e4b17023SJohn Marino "If -fvariable-expansion-in-unroller is used, the maximum number of times that an individual variable will be expanded during loop unrolling", 128*e4b17023SJohn Marino 1, 0, 0) 129*e4b17023SJohn Marino 130*e4b17023SJohn Marino/* Limit loop autovectorization to loops with large enough iteration count. */ 131*e4b17023SJohn MarinoDEFPARAM (PARAM_MIN_VECT_LOOP_BOUND, 132*e4b17023SJohn Marino "min-vect-loop-bound", 133*e4b17023SJohn Marino "If -ftree-vectorize is used, the minimal loop bound of a loop to be considered for vectorization", 134*e4b17023SJohn Marino 1, 1, 0) 135*e4b17023SJohn Marino 136*e4b17023SJohn Marino/* The maximum number of instructions to consider when looking for an 137*e4b17023SJohn Marino instruction to fill a delay slot. If more than this arbitrary 138*e4b17023SJohn Marino number of instructions is searched, the time savings from filling 139*e4b17023SJohn Marino the delay slot will be minimal so stop searching. Increasing 140*e4b17023SJohn Marino values mean more aggressive optimization, making the compile time 141*e4b17023SJohn Marino increase with probably small improvement in executable run time. */ 142*e4b17023SJohn MarinoDEFPARAM (PARAM_MAX_DELAY_SLOT_INSN_SEARCH, 143*e4b17023SJohn Marino "max-delay-slot-insn-search", 144*e4b17023SJohn Marino "The maximum number of instructions to consider to fill a delay slot", 145*e4b17023SJohn Marino 100, 0, 0) 146*e4b17023SJohn Marino 147*e4b17023SJohn Marino/* When trying to fill delay slots, the maximum number of instructions 148*e4b17023SJohn Marino to consider when searching for a block with valid live register 149*e4b17023SJohn Marino information. Increasing this arbitrarily chosen value means more 150*e4b17023SJohn Marino aggressive optimization, increasing the compile time. This 151*e4b17023SJohn Marino parameter should be removed when the delay slot code is rewritten 152*e4b17023SJohn Marino to maintain the control-flow graph. */ 153*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_DELAY_SLOT_LIVE_SEARCH, 154*e4b17023SJohn Marino "max-delay-slot-live-search", 155*e4b17023SJohn Marino "The maximum number of instructions to consider to find accurate live register information", 156*e4b17023SJohn Marino 333, 0, 0) 157*e4b17023SJohn Marino 158*e4b17023SJohn Marino/* This parameter limits the number of branch elements that the 159*e4b17023SJohn Marino scheduler will track anti-dependencies through without resetting 160*e4b17023SJohn Marino the tracking mechanism. Large functions with few calls or barriers 161*e4b17023SJohn Marino can generate lists containing many 1000's of dependencies. Generally 162*e4b17023SJohn Marino the compiler either uses all available memory, or runs for far too long. */ 163*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_PENDING_LIST_LENGTH, 164*e4b17023SJohn Marino "max-pending-list-length", 165*e4b17023SJohn Marino "The maximum length of scheduling's pending operations list", 166*e4b17023SJohn Marino 32, 0, 0) 167*e4b17023SJohn Marino 168*e4b17023SJohn Marino/* This parameter limits the number of backtracking attempts when using the 169*e4b17023SJohn Marino haifa scheduler for modulo scheduling. */ 170*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_MODULO_BACKTRACK_ATTEMPTS, 171*e4b17023SJohn Marino "max-modulo-backtrack-attempts", 172*e4b17023SJohn Marino "The maximum number of backtrack attempts the scheduler should make when modulo scheduling a loop", 173*e4b17023SJohn Marino 40, 0, 0) 174*e4b17023SJohn Marino 175*e4b17023SJohn MarinoDEFPARAM(PARAM_LARGE_FUNCTION_INSNS, 176*e4b17023SJohn Marino "large-function-insns", 177*e4b17023SJohn Marino "The size of function body to be considered large", 178*e4b17023SJohn Marino 2700, 0, 0) 179*e4b17023SJohn MarinoDEFPARAM(PARAM_LARGE_FUNCTION_GROWTH, 180*e4b17023SJohn Marino "large-function-growth", 181*e4b17023SJohn Marino "Maximal growth due to inlining of large function (in percent)", 182*e4b17023SJohn Marino 100, 0, 0) 183*e4b17023SJohn MarinoDEFPARAM(PARAM_LARGE_UNIT_INSNS, 184*e4b17023SJohn Marino "large-unit-insns", 185*e4b17023SJohn Marino "The size of translation unit to be considered large", 186*e4b17023SJohn Marino 10000, 0, 0) 187*e4b17023SJohn MarinoDEFPARAM(PARAM_INLINE_UNIT_GROWTH, 188*e4b17023SJohn Marino "inline-unit-growth", 189*e4b17023SJohn Marino "How much can given compilation unit grow because of the inlining (in percent)", 190*e4b17023SJohn Marino 30, 0, 0) 191*e4b17023SJohn MarinoDEFPARAM(PARAM_IPCP_UNIT_GROWTH, 192*e4b17023SJohn Marino "ipcp-unit-growth", 193*e4b17023SJohn Marino "How much can given compilation unit grow because of the interprocedural constant propagation (in percent)", 194*e4b17023SJohn Marino 10, 0, 0) 195*e4b17023SJohn MarinoDEFPARAM(PARAM_EARLY_INLINING_INSNS, 196*e4b17023SJohn Marino "early-inlining-insns", 197*e4b17023SJohn Marino "Maximal estimated growth of function body caused by early inlining of single call", 198*e4b17023SJohn Marino 11, 0, 0) 199*e4b17023SJohn MarinoDEFPARAM(PARAM_LARGE_STACK_FRAME, 200*e4b17023SJohn Marino "large-stack-frame", 201*e4b17023SJohn Marino "The size of stack frame to be considered large", 202*e4b17023SJohn Marino 256, 0, 0) 203*e4b17023SJohn MarinoDEFPARAM(PARAM_STACK_FRAME_GROWTH, 204*e4b17023SJohn Marino "large-stack-frame-growth", 205*e4b17023SJohn Marino "Maximal stack frame growth due to inlining (in percent)", 206*e4b17023SJohn Marino 1000, 0, 0) 207*e4b17023SJohn Marino 208*e4b17023SJohn Marino/* The GCSE optimization will be disabled if it would require 209*e4b17023SJohn Marino significantly more memory than this value. */ 210*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_GCSE_MEMORY, 211*e4b17023SJohn Marino "max-gcse-memory", 212*e4b17023SJohn Marino "The maximum amount of memory to be allocated by GCSE", 213*e4b17023SJohn Marino 50 * 1024 * 1024, 0, 0) 214*e4b17023SJohn Marino 215*e4b17023SJohn Marino/* The GCSE optimization of an expression will avoided if the ratio of 216*e4b17023SJohn Marino insertions to deletions is greater than this value. */ 217*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_GCSE_INSERTION_RATIO, 218*e4b17023SJohn Marino "max-gcse-insertion-ratio", 219*e4b17023SJohn Marino "The maximum ratio of insertions to deletions of expressions in GCSE", 220*e4b17023SJohn Marino 20, 0, 0) 221*e4b17023SJohn Marino 222*e4b17023SJohn Marino/* This is the threshold ratio when to perform partial redundancy 223*e4b17023SJohn Marino elimination after reload. We perform partial redundancy elimination 224*e4b17023SJohn Marino when the following holds: 225*e4b17023SJohn Marino (Redundant load execution count) 226*e4b17023SJohn Marino ------------------------------- >= GCSE_AFTER_RELOAD_PARTIAL_FRACTION 227*e4b17023SJohn Marino (Added loads execution count) */ 228*e4b17023SJohn MarinoDEFPARAM(PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION, 229*e4b17023SJohn Marino "gcse-after-reload-partial-fraction", 230*e4b17023SJohn Marino "The threshold ratio for performing partial redundancy elimination after reload", 231*e4b17023SJohn Marino 3, 0, 0) 232*e4b17023SJohn Marino/* This is the threshold ratio of the critical edges execution count compared to 233*e4b17023SJohn Marino the redundant loads execution count that permits performing the load 234*e4b17023SJohn Marino redundancy elimination in gcse after reload. */ 235*e4b17023SJohn MarinoDEFPARAM(PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION, 236*e4b17023SJohn Marino "gcse-after-reload-critical-fraction", 237*e4b17023SJohn Marino "The threshold ratio of critical edges execution count that permit performing redundancy elimination after reload", 238*e4b17023SJohn Marino 10, 0, 0) 239*e4b17023SJohn Marino 240*e4b17023SJohn Marino/* GCSE will use GCSE_COST_DISTANCE_RATION as a scaling factor 241*e4b17023SJohn Marino to calculate maximum distance for which an expression is allowed to move 242*e4b17023SJohn Marino from its rtx_cost. */ 243*e4b17023SJohn MarinoDEFPARAM(PARAM_GCSE_COST_DISTANCE_RATIO, 244*e4b17023SJohn Marino "gcse-cost-distance-ratio", 245*e4b17023SJohn Marino "Scaling factor in calculation of maximum distance an expression can be moved by GCSE optimizations", 246*e4b17023SJohn Marino 10, 0, 0) 247*e4b17023SJohn Marino/* GCSE won't restrict distance for which an expression with rtx_cost greater 248*e4b17023SJohn Marino than COSTS_N_INSN(GCSE_UNRESTRICTED_COST) is allowed to move. */ 249*e4b17023SJohn MarinoDEFPARAM(PARAM_GCSE_UNRESTRICTED_COST, 250*e4b17023SJohn Marino "gcse-unrestricted-cost", 251*e4b17023SJohn Marino "Cost at which GCSE optimizations will not constraint the distance an expression can travel", 252*e4b17023SJohn Marino 3, 0, 0) 253*e4b17023SJohn Marino 254*e4b17023SJohn Marino/* How deep from a given basic block the dominator tree should be searched 255*e4b17023SJohn Marino for expressions to hoist to the block. The value of 0 will avoid limiting 256*e4b17023SJohn Marino the search. */ 257*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_HOIST_DEPTH, 258*e4b17023SJohn Marino "max-hoist-depth", 259*e4b17023SJohn Marino "Maximum depth of search in the dominator tree for expressions to hoist", 260*e4b17023SJohn Marino 30, 0, 0) 261*e4b17023SJohn Marino 262*e4b17023SJohn Marino/* This parameter limits the number of insns in a loop that will be unrolled, 263*e4b17023SJohn Marino and by how much the loop is unrolled. 264*e4b17023SJohn Marino 265*e4b17023SJohn Marino This limit should be at most half of the peeling limits: loop unroller 266*e4b17023SJohn Marino decides to not unroll loops that iterate fewer than 2*number of allowed 267*e4b17023SJohn Marino unrollings and thus we would have loops that are neither peeled or unrolled 268*e4b17023SJohn Marino otherwise. */ 269*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_UNROLLED_INSNS, 270*e4b17023SJohn Marino "max-unrolled-insns", 271*e4b17023SJohn Marino "The maximum number of instructions to consider to unroll in a loop", 272*e4b17023SJohn Marino 200, 0, 0) 273*e4b17023SJohn Marino/* This parameter limits how many times the loop is unrolled depending 274*e4b17023SJohn Marino on number of insns really executed in each iteration. */ 275*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_AVERAGE_UNROLLED_INSNS, 276*e4b17023SJohn Marino "max-average-unrolled-insns", 277*e4b17023SJohn Marino "The maximum number of instructions to consider to unroll in a loop on average", 278*e4b17023SJohn Marino 80, 0, 0) 279*e4b17023SJohn Marino/* The maximum number of unrollings of a single loop. */ 280*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_UNROLL_TIMES, 281*e4b17023SJohn Marino "max-unroll-times", 282*e4b17023SJohn Marino "The maximum number of unrollings of a single loop", 283*e4b17023SJohn Marino 8, 0, 0) 284*e4b17023SJohn Marino/* The maximum number of insns of a peeled loop. */ 285*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_PEELED_INSNS, 286*e4b17023SJohn Marino "max-peeled-insns", 287*e4b17023SJohn Marino "The maximum number of insns of a peeled loop", 288*e4b17023SJohn Marino 400, 0, 0) 289*e4b17023SJohn Marino/* The maximum number of peelings of a single loop. */ 290*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_PEEL_TIMES, 291*e4b17023SJohn Marino "max-peel-times", 292*e4b17023SJohn Marino "The maximum number of peelings of a single loop", 293*e4b17023SJohn Marino 16, 0, 0) 294*e4b17023SJohn Marino/* The maximum number of insns of a peeled loop. */ 295*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_COMPLETELY_PEELED_INSNS, 296*e4b17023SJohn Marino "max-completely-peeled-insns", 297*e4b17023SJohn Marino "The maximum number of insns of a completely peeled loop", 298*e4b17023SJohn Marino 400, 0, 0) 299*e4b17023SJohn Marino/* The maximum number of peelings of a single loop that is peeled completely. */ 300*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_COMPLETELY_PEEL_TIMES, 301*e4b17023SJohn Marino "max-completely-peel-times", 302*e4b17023SJohn Marino "The maximum number of peelings of a single loop that is peeled completely", 303*e4b17023SJohn Marino 16, 0, 0) 304*e4b17023SJohn Marino/* The maximum number of insns of a peeled loop that rolls only once. */ 305*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_ONCE_PEELED_INSNS, 306*e4b17023SJohn Marino "max-once-peeled-insns", 307*e4b17023SJohn Marino "The maximum number of insns of a peeled loop that rolls only once", 308*e4b17023SJohn Marino 400, 0, 0) 309*e4b17023SJohn Marino/* The maximum depth of a loop nest we completely peel. */ 310*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_UNROLL_ITERATIONS, 311*e4b17023SJohn Marino "max-completely-peel-loop-nest-depth", 312*e4b17023SJohn Marino "The maximum depth of a loop nest we completely peel", 313*e4b17023SJohn Marino 8, 0, 0) 314*e4b17023SJohn Marino 315*e4b17023SJohn Marino/* The maximum number of insns of an unswitched loop. */ 316*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_UNSWITCH_INSNS, 317*e4b17023SJohn Marino "max-unswitch-insns", 318*e4b17023SJohn Marino "The maximum number of insns of an unswitched loop", 319*e4b17023SJohn Marino 50, 0, 0) 320*e4b17023SJohn Marino/* The maximum level of recursion in unswitch_single_loop. */ 321*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_UNSWITCH_LEVEL, 322*e4b17023SJohn Marino "max-unswitch-level", 323*e4b17023SJohn Marino "The maximum number of unswitchings in a single loop", 324*e4b17023SJohn Marino 3, 0, 0) 325*e4b17023SJohn Marino 326*e4b17023SJohn Marino/* The maximum number of iterations of a loop the brute force algorithm 327*e4b17023SJohn Marino for analysis of # of iterations of the loop tries to evaluate. */ 328*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_ITERATIONS_TO_TRACK, 329*e4b17023SJohn Marino "max-iterations-to-track", 330*e4b17023SJohn Marino "Bound on the number of iterations the brute force # of iterations analysis algorithm evaluates", 331*e4b17023SJohn Marino 1000, 0, 0) 332*e4b17023SJohn Marino/* A cutoff to avoid costly computations of the number of iterations in 333*e4b17023SJohn Marino the doloop transformation. */ 334*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_ITERATIONS_COMPUTATION_COST, 335*e4b17023SJohn Marino "max-iterations-computation-cost", 336*e4b17023SJohn Marino "Bound on the cost of an expression to compute the number of iterations", 337*e4b17023SJohn Marino 10, 0, 0) 338*e4b17023SJohn Marino 339*e4b17023SJohn Marino/* This parameter is used to tune SMS MAX II calculations. */ 340*e4b17023SJohn MarinoDEFPARAM(PARAM_SMS_MAX_II_FACTOR, 341*e4b17023SJohn Marino "sms-max-ii-factor", 342*e4b17023SJohn Marino "A factor for tuning the upper bound that swing modulo scheduler uses for scheduling a loop", 343*e4b17023SJohn Marino 100, 0, 0) 344*e4b17023SJohn Marino/* The minimum value of stage count that swing modulo scheduler will generate. */ 345*e4b17023SJohn MarinoDEFPARAM(PARAM_SMS_MIN_SC, 346*e4b17023SJohn Marino "sms-min-sc", 347*e4b17023SJohn Marino "The minimum value of stage count that swing modulo scheduler will generate.", 348*e4b17023SJohn Marino 2, 1, 1) 349*e4b17023SJohn MarinoDEFPARAM(PARAM_SMS_DFA_HISTORY, 350*e4b17023SJohn Marino "sms-dfa-history", 351*e4b17023SJohn Marino "The number of cycles the swing modulo scheduler considers when checking conflicts using DFA", 352*e4b17023SJohn Marino 0, 0, 0) 353*e4b17023SJohn MarinoDEFPARAM(PARAM_SMS_LOOP_AVERAGE_COUNT_THRESHOLD, 354*e4b17023SJohn Marino "sms-loop-average-count-threshold", 355*e4b17023SJohn Marino "A threshold on the average loop count considered by the swing modulo scheduler", 356*e4b17023SJohn Marino 0, 0, 0) 357*e4b17023SJohn Marino 358*e4b17023SJohn MarinoDEFPARAM(HOT_BB_COUNT_FRACTION, 359*e4b17023SJohn Marino "hot-bb-count-fraction", 360*e4b17023SJohn Marino "Select fraction of the maximal count of repetitions of basic block in program given basic block needs to have to be considered hot", 361*e4b17023SJohn Marino 10000, 0, 0) 362*e4b17023SJohn MarinoDEFPARAM(HOT_BB_FREQUENCY_FRACTION, 363*e4b17023SJohn Marino "hot-bb-frequency-fraction", 364*e4b17023SJohn Marino "Select fraction of the maximal frequency of executions of basic block in function given basic block needs to have to be considered hot", 365*e4b17023SJohn Marino 1000, 0, 0) 366*e4b17023SJohn Marino 367*e4b17023SJohn MarinoDEFPARAM (PARAM_ALIGN_THRESHOLD, 368*e4b17023SJohn Marino "align-threshold", 369*e4b17023SJohn Marino "Select fraction of the maximal frequency of executions of basic block in function given basic block get alignment", 370*e4b17023SJohn Marino 100, 0, 0) 371*e4b17023SJohn Marino 372*e4b17023SJohn MarinoDEFPARAM (PARAM_ALIGN_LOOP_ITERATIONS, 373*e4b17023SJohn Marino "align-loop-iterations", 374*e4b17023SJohn Marino "Loops iterating at least selected number of iterations will get loop alignement.", 375*e4b17023SJohn Marino 4, 0, 0) 376*e4b17023SJohn Marino 377*e4b17023SJohn Marino/* For guessed profiles, the loops having unknown number of iterations 378*e4b17023SJohn Marino are predicted to iterate relatively few (10) times at average. 379*e4b17023SJohn Marino For functions containing one loop with large known number of iterations 380*e4b17023SJohn Marino and other loops having unbounded loops we would end up predicting all 381*e4b17023SJohn Marino the other loops cold that is not usually the case. So we need to artificially 382*e4b17023SJohn Marino flatten the profile. 383*e4b17023SJohn Marino 384*e4b17023SJohn Marino We need to cut the maximal predicted iterations to large enough iterations 385*e4b17023SJohn Marino so the loop appears important, but safely within HOT_BB_COUNT_FRACTION 386*e4b17023SJohn Marino range. */ 387*e4b17023SJohn Marino 388*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_PREDICTED_ITERATIONS, 389*e4b17023SJohn Marino "max-predicted-iterations", 390*e4b17023SJohn Marino "The maximum number of loop iterations we predict statically", 391*e4b17023SJohn Marino 100, 0, 0) 392*e4b17023SJohn MarinoDEFPARAM(TRACER_DYNAMIC_COVERAGE_FEEDBACK, 393*e4b17023SJohn Marino "tracer-dynamic-coverage-feedback", 394*e4b17023SJohn Marino "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is available", 395*e4b17023SJohn Marino 95, 0, 100) 396*e4b17023SJohn MarinoDEFPARAM(TRACER_DYNAMIC_COVERAGE, 397*e4b17023SJohn Marino "tracer-dynamic-coverage", 398*e4b17023SJohn Marino "The percentage of function, weighted by execution frequency, that must be covered by trace formation. Used when profile feedback is not available", 399*e4b17023SJohn Marino 75, 0, 100) 400*e4b17023SJohn MarinoDEFPARAM(TRACER_MAX_CODE_GROWTH, 401*e4b17023SJohn Marino "tracer-max-code-growth", 402*e4b17023SJohn Marino "Maximal code growth caused by tail duplication (in percent)", 403*e4b17023SJohn Marino 100, 0, 0) 404*e4b17023SJohn MarinoDEFPARAM(TRACER_MIN_BRANCH_RATIO, 405*e4b17023SJohn Marino "tracer-min-branch-ratio", 406*e4b17023SJohn Marino "Stop reverse growth if the reverse probability of best edge is less than this threshold (in percent)", 407*e4b17023SJohn Marino 10, 0, 100) 408*e4b17023SJohn MarinoDEFPARAM(TRACER_MIN_BRANCH_PROBABILITY_FEEDBACK, 409*e4b17023SJohn Marino "tracer-min-branch-probability-feedback", 410*e4b17023SJohn Marino "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is available", 411*e4b17023SJohn Marino 80, 0, 100) 412*e4b17023SJohn MarinoDEFPARAM(TRACER_MIN_BRANCH_PROBABILITY, 413*e4b17023SJohn Marino "tracer-min-branch-probability", 414*e4b17023SJohn Marino "Stop forward growth if the probability of best edge is less than this threshold (in percent). Used when profile feedback is not available", 415*e4b17023SJohn Marino 50, 0, 100) 416*e4b17023SJohn Marino 417*e4b17023SJohn Marino/* The maximum number of incoming edges to consider for crossjumping. */ 418*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_CROSSJUMP_EDGES, 419*e4b17023SJohn Marino "max-crossjump-edges", 420*e4b17023SJohn Marino "The maximum number of incoming edges to consider for crossjumping", 421*e4b17023SJohn Marino 100, 0, 0) 422*e4b17023SJohn Marino 423*e4b17023SJohn Marino/* The minimum number of matching instructions to consider for crossjumping. */ 424*e4b17023SJohn MarinoDEFPARAM(PARAM_MIN_CROSSJUMP_INSNS, 425*e4b17023SJohn Marino "min-crossjump-insns", 426*e4b17023SJohn Marino "The minimum number of matching instructions to consider for crossjumping", 427*e4b17023SJohn Marino 5, 0, 0) 428*e4b17023SJohn Marino 429*e4b17023SJohn Marino/* The maximum number expansion factor when copying basic blocks. */ 430*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_GROW_COPY_BB_INSNS, 431*e4b17023SJohn Marino "max-grow-copy-bb-insns", 432*e4b17023SJohn Marino "The maximum expansion factor when copying basic blocks", 433*e4b17023SJohn Marino 8, 0, 0) 434*e4b17023SJohn Marino 435*e4b17023SJohn Marino/* The maximum number of insns to duplicate when unfactoring computed gotos. */ 436*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_GOTO_DUPLICATION_INSNS, 437*e4b17023SJohn Marino "max-goto-duplication-insns", 438*e4b17023SJohn Marino "The maximum number of insns to duplicate when unfactoring computed gotos", 439*e4b17023SJohn Marino 8, 0, 0) 440*e4b17023SJohn Marino 441*e4b17023SJohn Marino/* The maximum length of path considered in cse. */ 442*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_CSE_PATH_LENGTH, 443*e4b17023SJohn Marino "max-cse-path-length", 444*e4b17023SJohn Marino "The maximum length of path considered in cse", 445*e4b17023SJohn Marino 10, 0, 0) 446*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_CSE_INSNS, 447*e4b17023SJohn Marino "max-cse-insns", 448*e4b17023SJohn Marino "The maximum instructions CSE process before flushing", 449*e4b17023SJohn Marino 1000, 0, 0) 450*e4b17023SJohn Marino 451*e4b17023SJohn Marino/* The cost of expression in loop invariant motion that is considered 452*e4b17023SJohn Marino expensive. */ 453*e4b17023SJohn MarinoDEFPARAM(PARAM_LIM_EXPENSIVE, 454*e4b17023SJohn Marino "lim-expensive", 455*e4b17023SJohn Marino "The minimum cost of an expensive expression in the loop invariant motion", 456*e4b17023SJohn Marino 20, 0, 0) 457*e4b17023SJohn Marino 458*e4b17023SJohn Marino/* Bound on number of candidates for induction variables below that 459*e4b17023SJohn Marino all candidates are considered for each use in induction variable 460*e4b17023SJohn Marino optimizations. */ 461*e4b17023SJohn Marino 462*e4b17023SJohn MarinoDEFPARAM(PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND, 463*e4b17023SJohn Marino "iv-consider-all-candidates-bound", 464*e4b17023SJohn Marino "Bound on number of candidates below that all candidates are considered in iv optimizations", 465*e4b17023SJohn Marino 30, 0, 0) 466*e4b17023SJohn Marino 467*e4b17023SJohn Marino/* The induction variable optimizations give up on loops that contain more 468*e4b17023SJohn Marino induction variable uses. */ 469*e4b17023SJohn Marino 470*e4b17023SJohn MarinoDEFPARAM(PARAM_IV_MAX_CONSIDERED_USES, 471*e4b17023SJohn Marino "iv-max-considered-uses", 472*e4b17023SJohn Marino "Bound on number of iv uses in loop optimized in iv optimizations", 473*e4b17023SJohn Marino 250, 0, 0) 474*e4b17023SJohn Marino 475*e4b17023SJohn Marino/* If there are at most this number of ivs in the set, try removing unnecessary 476*e4b17023SJohn Marino ivs from the set always. */ 477*e4b17023SJohn Marino 478*e4b17023SJohn MarinoDEFPARAM(PARAM_IV_ALWAYS_PRUNE_CAND_SET_BOUND, 479*e4b17023SJohn Marino "iv-always-prune-cand-set-bound", 480*e4b17023SJohn Marino "If number of candidates in the set is smaller, we always try to remove unused ivs during its optimization", 481*e4b17023SJohn Marino 10, 0, 0) 482*e4b17023SJohn Marino 483*e4b17023SJohn MarinoDEFPARAM(PARAM_SCEV_MAX_EXPR_SIZE, 484*e4b17023SJohn Marino "scev-max-expr-size", 485*e4b17023SJohn Marino "Bound on size of expressions used in the scalar evolutions analyzer", 486*e4b17023SJohn Marino 100, 0, 0) 487*e4b17023SJohn Marino 488*e4b17023SJohn MarinoDEFPARAM(PARAM_SCEV_MAX_EXPR_COMPLEXITY, 489*e4b17023SJohn Marino "scev-max-expr-complexity", 490*e4b17023SJohn Marino "Bound on the complexity of the expressions in the scalar evolutions analyzer", 491*e4b17023SJohn Marino 10, 0, 0) 492*e4b17023SJohn Marino 493*e4b17023SJohn MarinoDEFPARAM(PARAM_OMEGA_MAX_VARS, 494*e4b17023SJohn Marino "omega-max-vars", 495*e4b17023SJohn Marino "Bound on the number of variables in Omega constraint systems", 496*e4b17023SJohn Marino 128, 0, 0) 497*e4b17023SJohn Marino 498*e4b17023SJohn MarinoDEFPARAM(PARAM_OMEGA_MAX_GEQS, 499*e4b17023SJohn Marino "omega-max-geqs", 500*e4b17023SJohn Marino "Bound on the number of inequalities in Omega constraint systems", 501*e4b17023SJohn Marino 256, 0, 0) 502*e4b17023SJohn Marino 503*e4b17023SJohn MarinoDEFPARAM(PARAM_OMEGA_MAX_EQS, 504*e4b17023SJohn Marino "omega-max-eqs", 505*e4b17023SJohn Marino "Bound on the number of equalities in Omega constraint systems", 506*e4b17023SJohn Marino 128, 0, 0) 507*e4b17023SJohn Marino 508*e4b17023SJohn MarinoDEFPARAM(PARAM_OMEGA_MAX_WILD_CARDS, 509*e4b17023SJohn Marino "omega-max-wild-cards", 510*e4b17023SJohn Marino "Bound on the number of wild cards in Omega constraint systems", 511*e4b17023SJohn Marino 18, 0, 0) 512*e4b17023SJohn Marino 513*e4b17023SJohn MarinoDEFPARAM(PARAM_OMEGA_HASH_TABLE_SIZE, 514*e4b17023SJohn Marino "omega-hash-table-size", 515*e4b17023SJohn Marino "Bound on the size of the hash table in Omega constraint systems", 516*e4b17023SJohn Marino 550, 0, 0) 517*e4b17023SJohn Marino 518*e4b17023SJohn MarinoDEFPARAM(PARAM_OMEGA_MAX_KEYS, 519*e4b17023SJohn Marino "omega-max-keys", 520*e4b17023SJohn Marino "Bound on the number of keys in Omega constraint systems", 521*e4b17023SJohn Marino 500, 0, 0) 522*e4b17023SJohn Marino 523*e4b17023SJohn MarinoDEFPARAM(PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS, 524*e4b17023SJohn Marino "omega-eliminate-redundant-constraints", 525*e4b17023SJohn Marino "When set to 1, use expensive methods to eliminate all redundant constraints", 526*e4b17023SJohn Marino 0, 0, 1) 527*e4b17023SJohn Marino 528*e4b17023SJohn MarinoDEFPARAM(PARAM_VECT_MAX_VERSION_FOR_ALIGNMENT_CHECKS, 529*e4b17023SJohn Marino "vect-max-version-for-alignment-checks", 530*e4b17023SJohn Marino "Bound on number of runtime checks inserted by the vectorizer's loop versioning for alignment check", 531*e4b17023SJohn Marino 6, 0, 0) 532*e4b17023SJohn Marino 533*e4b17023SJohn MarinoDEFPARAM(PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS, 534*e4b17023SJohn Marino "vect-max-version-for-alias-checks", 535*e4b17023SJohn Marino "Bound on number of runtime checks inserted by the vectorizer's loop versioning for alias check", 536*e4b17023SJohn Marino 10, 0, 0) 537*e4b17023SJohn Marino 538*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_CSELIB_MEMORY_LOCATIONS, 539*e4b17023SJohn Marino "max-cselib-memory-locations", 540*e4b17023SJohn Marino "The maximum memory locations recorded by cselib", 541*e4b17023SJohn Marino 500, 0, 0) 542*e4b17023SJohn Marino 543*e4b17023SJohn Marino#ifdef ENABLE_GC_ALWAYS_COLLECT 544*e4b17023SJohn Marino# define GGC_MIN_EXPAND_DEFAULT 0 545*e4b17023SJohn Marino# define GGC_MIN_HEAPSIZE_DEFAULT 0 546*e4b17023SJohn Marino#else 547*e4b17023SJohn Marino# define GGC_MIN_EXPAND_DEFAULT 30 548*e4b17023SJohn Marino# define GGC_MIN_HEAPSIZE_DEFAULT 4096 549*e4b17023SJohn Marino#endif 550*e4b17023SJohn Marino 551*e4b17023SJohn MarinoDEFPARAM(GGC_MIN_EXPAND, 552*e4b17023SJohn Marino "ggc-min-expand", 553*e4b17023SJohn Marino "Minimum heap expansion to trigger garbage collection, as a percentage of the total size of the heap", 554*e4b17023SJohn Marino GGC_MIN_EXPAND_DEFAULT, 0, 0) 555*e4b17023SJohn Marino 556*e4b17023SJohn MarinoDEFPARAM(GGC_MIN_HEAPSIZE, 557*e4b17023SJohn Marino "ggc-min-heapsize", 558*e4b17023SJohn Marino "Minimum heap size before we start collecting garbage, in kilobytes", 559*e4b17023SJohn Marino GGC_MIN_HEAPSIZE_DEFAULT, 0, 0) 560*e4b17023SJohn Marino 561*e4b17023SJohn Marino#undef GGC_MIN_EXPAND_DEFAULT 562*e4b17023SJohn Marino#undef GGC_MIN_HEAPSIZE_DEFAULT 563*e4b17023SJohn Marino 564*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_RELOAD_SEARCH_INSNS, 565*e4b17023SJohn Marino "max-reload-search-insns", 566*e4b17023SJohn Marino "The maximum number of instructions to search backward when looking for equivalent reload", 567*e4b17023SJohn Marino 100, 0, 0) 568*e4b17023SJohn Marino 569*e4b17023SJohn MarinoDEFPARAM(PARAM_SINK_FREQUENCY_THRESHOLD, 570*e4b17023SJohn Marino "sink-frequency-threshold", 571*e4b17023SJohn Marino "Target block's relative execution frequency (as a percentage) required to sink a statement", 572*e4b17023SJohn Marino 75, 0, 100) 573*e4b17023SJohn Marino 574*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_SCHED_REGION_BLOCKS, 575*e4b17023SJohn Marino "max-sched-region-blocks", 576*e4b17023SJohn Marino "The maximum number of blocks in a region to be considered for interblock scheduling", 577*e4b17023SJohn Marino 10, 0, 0) 578*e4b17023SJohn Marino 579*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_SCHED_REGION_INSNS, 580*e4b17023SJohn Marino "max-sched-region-insns", 581*e4b17023SJohn Marino "The maximum number of insns in a region to be considered for interblock scheduling", 582*e4b17023SJohn Marino 100, 0, 0) 583*e4b17023SJohn Marino 584*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_PIPELINE_REGION_BLOCKS, 585*e4b17023SJohn Marino "max-pipeline-region-blocks", 586*e4b17023SJohn Marino "The maximum number of blocks in a region to be considered for interblock scheduling", 587*e4b17023SJohn Marino 15, 0, 0) 588*e4b17023SJohn Marino 589*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_PIPELINE_REGION_INSNS, 590*e4b17023SJohn Marino "max-pipeline-region-insns", 591*e4b17023SJohn Marino "The maximum number of insns in a region to be considered for interblock scheduling", 592*e4b17023SJohn Marino 200, 0, 0) 593*e4b17023SJohn Marino 594*e4b17023SJohn MarinoDEFPARAM(PARAM_MIN_SPEC_PROB, 595*e4b17023SJohn Marino "min-spec-prob", 596*e4b17023SJohn Marino "The minimum probability of reaching a source block for interblock speculative scheduling", 597*e4b17023SJohn Marino 40, 0, 0) 598*e4b17023SJohn Marino 599*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS, 600*e4b17023SJohn Marino "max-sched-extend-regions-iters", 601*e4b17023SJohn Marino "The maximum number of iterations through CFG to extend regions", 602*e4b17023SJohn Marino 0, 0, 0) 603*e4b17023SJohn Marino 604*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_SCHED_INSN_CONFLICT_DELAY, 605*e4b17023SJohn Marino "max-sched-insn-conflict-delay", 606*e4b17023SJohn Marino "The maximum conflict delay for an insn to be considered for speculative motion", 607*e4b17023SJohn Marino 3, 1, 10) 608*e4b17023SJohn Marino 609*e4b17023SJohn MarinoDEFPARAM(PARAM_SCHED_SPEC_PROB_CUTOFF, 610*e4b17023SJohn Marino "sched-spec-prob-cutoff", 611*e4b17023SJohn Marino "The minimal probability of speculation success (in percents), so that speculative insn will be scheduled.", 612*e4b17023SJohn Marino 40, 0, 100) 613*e4b17023SJohn Marino 614*e4b17023SJohn MarinoDEFPARAM(PARAM_SELSCHED_MAX_LOOKAHEAD, 615*e4b17023SJohn Marino "selsched-max-lookahead", 616*e4b17023SJohn Marino "The maximum size of the lookahead window of selective scheduling", 617*e4b17023SJohn Marino 50, 0, 0) 618*e4b17023SJohn Marino 619*e4b17023SJohn MarinoDEFPARAM(PARAM_SELSCHED_MAX_SCHED_TIMES, 620*e4b17023SJohn Marino "selsched-max-sched-times", 621*e4b17023SJohn Marino "Maximum number of times that an insn could be scheduled", 622*e4b17023SJohn Marino 2, 0, 0) 623*e4b17023SJohn Marino 624*e4b17023SJohn MarinoDEFPARAM(PARAM_SELSCHED_INSNS_TO_RENAME, 625*e4b17023SJohn Marino "selsched-insns-to-rename", 626*e4b17023SJohn Marino "Maximum number of instructions in the ready list that are considered eligible for renaming", 627*e4b17023SJohn Marino 2, 0, 0) 628*e4b17023SJohn Marino 629*e4b17023SJohn MarinoDEFPARAM (PARAM_SCHED_MEM_TRUE_DEP_COST, 630*e4b17023SJohn Marino "sched-mem-true-dep-cost", 631*e4b17023SJohn Marino "Minimal distance between possibly conflicting store and load", 632*e4b17023SJohn Marino 1, 0, 0) 633*e4b17023SJohn Marino 634*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_LAST_VALUE_RTL, 635*e4b17023SJohn Marino "max-last-value-rtl", 636*e4b17023SJohn Marino "The maximum number of RTL nodes that can be recorded as combiner's last value", 637*e4b17023SJohn Marino 10000, 0, 0) 638*e4b17023SJohn Marino 639*e4b17023SJohn Marino/* INTEGER_CST nodes are shared for values [{-1,0} .. N) for 640*e4b17023SJohn Marino {signed,unsigned} integral types. This determines N. 641*e4b17023SJohn Marino Experimentation shows 251 to be a good value that generates the 642*e4b17023SJohn Marino least amount of garbage for allocating the TREE_VEC storage. */ 643*e4b17023SJohn MarinoDEFPARAM (PARAM_INTEGER_SHARE_LIMIT, 644*e4b17023SJohn Marino "integer-share-limit", 645*e4b17023SJohn Marino "The upper bound for sharing integer constants", 646*e4b17023SJohn Marino 251, 2, 2) 647*e4b17023SJohn Marino 648*e4b17023SJohn Marino/* Incremental SSA updates for virtual operands may be very slow if 649*e4b17023SJohn Marino there is a large number of mappings to process. In those cases, it 650*e4b17023SJohn Marino is faster to rewrite the virtual symbols from scratch as if they 651*e4b17023SJohn Marino had been recently introduced. This heuristic cannot be applied to 652*e4b17023SJohn Marino SSA mappings for real SSA names, only symbols kept in FUD chains. 653*e4b17023SJohn Marino 654*e4b17023SJohn Marino PARAM_MIN_VIRTUAL_MAPPINGS specifies the minimum number of virtual 655*e4b17023SJohn Marino mappings that should be registered to trigger the heuristic. 656*e4b17023SJohn Marino 657*e4b17023SJohn Marino PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO specifies the ratio between 658*e4b17023SJohn Marino mappings and symbols. If the number of virtual mappings is 659*e4b17023SJohn Marino PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO bigger than the number of 660*e4b17023SJohn Marino virtual symbols to be updated, then the updater switches to a full 661*e4b17023SJohn Marino update for those symbols. */ 662*e4b17023SJohn MarinoDEFPARAM (PARAM_MIN_VIRTUAL_MAPPINGS, 663*e4b17023SJohn Marino "min-virtual-mappings", 664*e4b17023SJohn Marino "Minimum number of virtual mappings to consider switching to full virtual renames", 665*e4b17023SJohn Marino 100, 0, 0) 666*e4b17023SJohn Marino 667*e4b17023SJohn MarinoDEFPARAM (PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO, 668*e4b17023SJohn Marino "virtual-mappings-ratio", 669*e4b17023SJohn Marino "Ratio between virtual mappings and virtual symbols to do full virtual renames", 670*e4b17023SJohn Marino 3, 0, 0) 671*e4b17023SJohn Marino 672*e4b17023SJohn MarinoDEFPARAM (PARAM_SSP_BUFFER_SIZE, 673*e4b17023SJohn Marino "ssp-buffer-size", 674*e4b17023SJohn Marino "The lower bound for a buffer to be considered for stack smashing protection", 675*e4b17023SJohn Marino 8, 1, 0) 676*e4b17023SJohn Marino 677*e4b17023SJohn Marino/* When we thread through a block we have to make copies of the 678*e4b17023SJohn Marino statements within the block. Clearly for large blocks the code 679*e4b17023SJohn Marino duplication is bad. 680*e4b17023SJohn Marino 681*e4b17023SJohn Marino PARAM_MAX_JUMP_THREAD_DUPLICATION_STMTS specifies the maximum number 682*e4b17023SJohn Marino of statements and PHI nodes allowed in a block which is going to 683*e4b17023SJohn Marino be duplicated for thread jumping purposes. 684*e4b17023SJohn Marino 685*e4b17023SJohn Marino Some simple analysis showed that more than 99% of the jump 686*e4b17023SJohn Marino threading opportunities are for blocks with less than 15 687*e4b17023SJohn Marino statements. So we can get the benefits of jump threading 688*e4b17023SJohn Marino without excessive code bloat for pathological cases with the 689*e4b17023SJohn Marino throttle set at 15 statements. */ 690*e4b17023SJohn MarinoDEFPARAM (PARAM_MAX_JUMP_THREAD_DUPLICATION_STMTS, 691*e4b17023SJohn Marino "max-jump-thread-duplication-stmts", 692*e4b17023SJohn Marino "Maximum number of statements allowed in a block that needs to be duplicated when threading jumps", 693*e4b17023SJohn Marino 15, 0, 0) 694*e4b17023SJohn Marino 695*e4b17023SJohn Marino/* This is the maximum number of fields a variable may have before the pointer analysis machinery 696*e4b17023SJohn Marino will stop trying to treat it in a field-sensitive manner. 697*e4b17023SJohn Marino There are programs out there with thousands of fields per structure, and handling them 698*e4b17023SJohn Marino field-sensitively is not worth the cost. */ 699*e4b17023SJohn MarinoDEFPARAM (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE, 700*e4b17023SJohn Marino "max-fields-for-field-sensitive", 701*e4b17023SJohn Marino "Maximum number of fields in a structure before pointer analysis treats the structure as a single variable", 702*e4b17023SJohn Marino 0, 0, 0) 703*e4b17023SJohn Marino 704*e4b17023SJohn MarinoDEFPARAM(PARAM_MAX_SCHED_READY_INSNS, 705*e4b17023SJohn Marino "max-sched-ready-insns", 706*e4b17023SJohn Marino "The maximum number of instructions ready to be issued to be considered by the scheduler during the first scheduling pass", 707*e4b17023SJohn Marino 100, 0, 0) 708*e4b17023SJohn Marino 709*e4b17023SJohn Marino/* This is the maximum number of active local stores RTL DSE will consider. */ 710*e4b17023SJohn MarinoDEFPARAM (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES, 711*e4b17023SJohn Marino "max-dse-active-local-stores", 712*e4b17023SJohn Marino "Maximum number of active local stores in RTL dead store elimination", 713*e4b17023SJohn Marino 5000, 0, 0) 714*e4b17023SJohn Marino 715*e4b17023SJohn Marino/* Prefetching and cache-optimizations related parameters. Default values are 716*e4b17023SJohn Marino usually set by machine description. */ 717*e4b17023SJohn Marino 718*e4b17023SJohn Marino/* The number of insns executed before prefetch is completed. */ 719*e4b17023SJohn Marino 720*e4b17023SJohn MarinoDEFPARAM (PARAM_PREFETCH_LATENCY, 721*e4b17023SJohn Marino "prefetch-latency", 722*e4b17023SJohn Marino "The number of insns executed before prefetch is completed", 723*e4b17023SJohn Marino 200, 0, 0) 724*e4b17023SJohn Marino 725*e4b17023SJohn Marino/* The number of prefetches that can run at the same time. */ 726*e4b17023SJohn Marino 727*e4b17023SJohn MarinoDEFPARAM (PARAM_SIMULTANEOUS_PREFETCHES, 728*e4b17023SJohn Marino "simultaneous-prefetches", 729*e4b17023SJohn Marino "The number of prefetches that can run at the same time", 730*e4b17023SJohn Marino 3, 0, 0) 731*e4b17023SJohn Marino 732*e4b17023SJohn Marino/* The size of L1 cache in kB. */ 733*e4b17023SJohn Marino 734*e4b17023SJohn MarinoDEFPARAM (PARAM_L1_CACHE_SIZE, 735*e4b17023SJohn Marino "l1-cache-size", 736*e4b17023SJohn Marino "The size of L1 cache", 737*e4b17023SJohn Marino 64, 0, 0) 738*e4b17023SJohn Marino 739*e4b17023SJohn Marino/* The size of L1 cache line in bytes. */ 740*e4b17023SJohn Marino 741*e4b17023SJohn MarinoDEFPARAM (PARAM_L1_CACHE_LINE_SIZE, 742*e4b17023SJohn Marino "l1-cache-line-size", 743*e4b17023SJohn Marino "The size of L1 cache line", 744*e4b17023SJohn Marino 32, 0, 0) 745*e4b17023SJohn Marino 746*e4b17023SJohn Marino/* The size of L2 cache in kB. */ 747*e4b17023SJohn Marino 748*e4b17023SJohn MarinoDEFPARAM (PARAM_L2_CACHE_SIZE, 749*e4b17023SJohn Marino "l2-cache-size", 750*e4b17023SJohn Marino "The size of L2 cache", 751*e4b17023SJohn Marino 512, 0, 0) 752*e4b17023SJohn Marino 753*e4b17023SJohn Marino/* Whether we should use canonical types rather than deep "structural" 754*e4b17023SJohn Marino type checking. Setting this value to 1 (the default) improves 755*e4b17023SJohn Marino compilation performance in the C++ and Objective-C++ front end; 756*e4b17023SJohn Marino this value should only be set to zero to work around bugs in the 757*e4b17023SJohn Marino canonical type system by disabling it. */ 758*e4b17023SJohn Marino 759*e4b17023SJohn MarinoDEFPARAM (PARAM_USE_CANONICAL_TYPES, 760*e4b17023SJohn Marino "use-canonical-types", 761*e4b17023SJohn Marino "Whether to use canonical types", 762*e4b17023SJohn Marino 1, 0, 1) 763*e4b17023SJohn Marino 764*e4b17023SJohn MarinoDEFPARAM (PARAM_MAX_PARTIAL_ANTIC_LENGTH, 765*e4b17023SJohn Marino "max-partial-antic-length", 766*e4b17023SJohn Marino "Maximum length of partial antic set when performing tree pre optimization", 767*e4b17023SJohn Marino 100, 0, 0) 768*e4b17023SJohn Marino 769*e4b17023SJohn Marino/* The following is used as a stop-gap limit for cases where really huge 770*e4b17023SJohn Marino SCCs blow up memory and compile-time use too much. If we hit this limit, 771*e4b17023SJohn Marino SCCVN and such FRE and PRE will be not done at all for the current 772*e4b17023SJohn Marino function. */ 773*e4b17023SJohn Marino 774*e4b17023SJohn MarinoDEFPARAM (PARAM_SCCVN_MAX_SCC_SIZE, 775*e4b17023SJohn Marino "sccvn-max-scc-size", 776*e4b17023SJohn Marino "Maximum size of a SCC before SCCVN stops processing a function", 777*e4b17023SJohn Marino 10000, 10, 0) 778*e4b17023SJohn Marino 779*e4b17023SJohn MarinoDEFPARAM (PARAM_IRA_MAX_LOOPS_NUM, 780*e4b17023SJohn Marino "ira-max-loops-num", 781*e4b17023SJohn Marino "Max loops number for regional RA", 782*e4b17023SJohn Marino 100, 0, 0) 783*e4b17023SJohn Marino 784*e4b17023SJohn MarinoDEFPARAM (PARAM_IRA_MAX_CONFLICT_TABLE_SIZE, 785*e4b17023SJohn Marino "ira-max-conflict-table-size", 786*e4b17023SJohn Marino "Max size of conflict table in MB", 787*e4b17023SJohn Marino 1000, 0, 0) 788*e4b17023SJohn Marino 789*e4b17023SJohn MarinoDEFPARAM (PARAM_IRA_LOOP_RESERVED_REGS, 790*e4b17023SJohn Marino "ira-loop-reserved-regs", 791*e4b17023SJohn Marino "The number of registers in each class kept unused by loop invariant motion", 792*e4b17023SJohn Marino 2, 0, 0) 793*e4b17023SJohn Marino 794*e4b17023SJohn Marino/* Switch initialization conversion will refuse to create arrays that are 795*e4b17023SJohn Marino bigger than this parameter times the number of switch branches. */ 796*e4b17023SJohn Marino 797*e4b17023SJohn MarinoDEFPARAM (PARAM_SWITCH_CONVERSION_BRANCH_RATIO, 798*e4b17023SJohn Marino "switch-conversion-max-branch-ratio", 799*e4b17023SJohn Marino "The maximum ratio between array size and switch branches for " 800*e4b17023SJohn Marino "a switch conversion to take place", 801*e4b17023SJohn Marino 8, 1, 0) 802*e4b17023SJohn Marino 803*e4b17023SJohn Marino/* Size of tiles when doing loop blocking. */ 804*e4b17023SJohn Marino 805*e4b17023SJohn MarinoDEFPARAM (PARAM_LOOP_BLOCK_TILE_SIZE, 806*e4b17023SJohn Marino "loop-block-tile-size", 807*e4b17023SJohn Marino "size of tiles for loop blocking", 808*e4b17023SJohn Marino 51, 0, 0) 809*e4b17023SJohn Marino 810*e4b17023SJohn Marino/* Maximal number of parameters that we allow in a SCoP. */ 811*e4b17023SJohn Marino 812*e4b17023SJohn MarinoDEFPARAM (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS, 813*e4b17023SJohn Marino "graphite-max-nb-scop-params", 814*e4b17023SJohn Marino "maximum number of parameters in a SCoP", 815*e4b17023SJohn Marino 10, 0, 0) 816*e4b17023SJohn Marino 817*e4b17023SJohn Marino/* Maximal number of basic blocks in the functions analyzed by Graphite. */ 818*e4b17023SJohn Marino 819*e4b17023SJohn MarinoDEFPARAM (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION, 820*e4b17023SJohn Marino "graphite-max-bbs-per-function", 821*e4b17023SJohn Marino "maximum number of basic blocks per function to be analyzed by Graphite", 822*e4b17023SJohn Marino 100, 0, 0) 823*e4b17023SJohn Marino 824*e4b17023SJohn Marino/* Avoid data dependence analysis on very large loops. */ 825*e4b17023SJohn MarinoDEFPARAM (PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS, 826*e4b17023SJohn Marino "loop-max-datarefs-for-datadeps", 827*e4b17023SJohn Marino "Maximum number of datarefs in loop for building loop data dependencies", 828*e4b17023SJohn Marino 1000, 0, 0) 829*e4b17023SJohn Marino 830*e4b17023SJohn Marino/* Avoid doing loop invariant motion on very large loops. */ 831*e4b17023SJohn Marino 832*e4b17023SJohn MarinoDEFPARAM (PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP, 833*e4b17023SJohn Marino "loop-invariant-max-bbs-in-loop", 834*e4b17023SJohn Marino "Max basic blocks number in loop for loop invariant motion", 835*e4b17023SJohn Marino 10000, 0, 0) 836*e4b17023SJohn Marino 837*e4b17023SJohn Marino/* Avoid SLP vectorization of large basic blocks. */ 838*e4b17023SJohn MarinoDEFPARAM (PARAM_SLP_MAX_INSNS_IN_BB, 839*e4b17023SJohn Marino "slp-max-insns-in-bb", 840*e4b17023SJohn Marino "Maximum number of instructions in basic block to be considered for SLP vectorization", 841*e4b17023SJohn Marino 1000, 0, 0) 842*e4b17023SJohn Marino 843*e4b17023SJohn MarinoDEFPARAM (PARAM_MIN_INSN_TO_PREFETCH_RATIO, 844*e4b17023SJohn Marino "min-insn-to-prefetch-ratio", 845*e4b17023SJohn Marino "Min. ratio of insns to prefetches to enable prefetching for " 846*e4b17023SJohn Marino "a loop with an unknown trip count", 847*e4b17023SJohn Marino 9, 0, 0) 848*e4b17023SJohn Marino 849*e4b17023SJohn MarinoDEFPARAM (PARAM_PREFETCH_MIN_INSN_TO_MEM_RATIO, 850*e4b17023SJohn Marino "prefetch-min-insn-to-mem-ratio", 851*e4b17023SJohn Marino "Min. ratio of insns to mem ops to enable prefetching in a loop", 852*e4b17023SJohn Marino 3, 0, 0) 853*e4b17023SJohn Marino 854*e4b17023SJohn Marino/* Set maximum hash table size for var tracking. */ 855*e4b17023SJohn Marino 856*e4b17023SJohn MarinoDEFPARAM (PARAM_MAX_VARTRACK_SIZE, 857*e4b17023SJohn Marino "max-vartrack-size", 858*e4b17023SJohn Marino "Max. size of var tracking hash tables", 859*e4b17023SJohn Marino 50000000, 0, 0) 860*e4b17023SJohn Marino 861*e4b17023SJohn Marino/* Set maximum recursion depth for var tracking expression expansion 862*e4b17023SJohn Marino and resolution. */ 863*e4b17023SJohn Marino 864*e4b17023SJohn MarinoDEFPARAM (PARAM_MAX_VARTRACK_EXPR_DEPTH, 865*e4b17023SJohn Marino "max-vartrack-expr-depth", 866*e4b17023SJohn Marino "Max. recursion depth for expanding var tracking expressions", 867*e4b17023SJohn Marino 12, 0, 0) 868*e4b17023SJohn Marino 869*e4b17023SJohn Marino/* Set minimum insn uid for non-debug insns. */ 870*e4b17023SJohn Marino 871*e4b17023SJohn MarinoDEFPARAM (PARAM_MIN_NONDEBUG_INSN_UID, 872*e4b17023SJohn Marino "min-nondebug-insn-uid", 873*e4b17023SJohn Marino "The minimum UID to be used for a nondebug insn", 874*e4b17023SJohn Marino 0, 1, 0) 875*e4b17023SJohn Marino 876*e4b17023SJohn MarinoDEFPARAM (PARAM_IPA_SRA_PTR_GROWTH_FACTOR, 877*e4b17023SJohn Marino "ipa-sra-ptr-growth-factor", 878*e4b17023SJohn Marino "Maximum allowed growth of size of new parameters ipa-sra replaces " 879*e4b17023SJohn Marino "a pointer to an aggregate with", 880*e4b17023SJohn Marino 2, 0, 0) 881*e4b17023SJohn Marino 882*e4b17023SJohn MarinoDEFPARAM (PARAM_TM_MAX_AGGREGATE_SIZE, 883*e4b17023SJohn Marino "tm-max-aggregate-size", 884*e4b17023SJohn Marino "Size in bytes after which thread-local aggregates should be " 885*e4b17023SJohn Marino "instrumented with the logging functions instead of save/restore " 886*e4b17023SJohn Marino "pairs", 887*e4b17023SJohn Marino 9, 0, 0) 888*e4b17023SJohn Marino 889*e4b17023SJohn MarinoDEFPARAM (PARAM_IPA_CP_VALUE_LIST_SIZE, 890*e4b17023SJohn Marino "ipa-cp-value-list-size", 891*e4b17023SJohn Marino "Maximum size of a list of values associated with each parameter for " 892*e4b17023SJohn Marino "interprocedural constant propagation", 893*e4b17023SJohn Marino 8, 0, 0) 894*e4b17023SJohn Marino 895*e4b17023SJohn MarinoDEFPARAM (PARAM_IPA_CP_EVAL_THRESHOLD, 896*e4b17023SJohn Marino "ipa-cp-eval-threshold", 897*e4b17023SJohn Marino "Threshold ipa-cp opportunity evaluation that is still considered " 898*e4b17023SJohn Marino "beneficial to clone.", 899*e4b17023SJohn Marino 500, 0, 0) 900*e4b17023SJohn Marino 901*e4b17023SJohn Marino/* WHOPR partitioning configuration. */ 902*e4b17023SJohn Marino 903*e4b17023SJohn MarinoDEFPARAM (PARAM_LTO_PARTITIONS, 904*e4b17023SJohn Marino "lto-partitions", 905*e4b17023SJohn Marino "Number of partitions the program should be split to", 906*e4b17023SJohn Marino 32, 1, 0) 907*e4b17023SJohn Marino 908*e4b17023SJohn MarinoDEFPARAM (MIN_PARTITION_SIZE, 909*e4b17023SJohn Marino "lto-min-partition", 910*e4b17023SJohn Marino "Minimal size of a partition for LTO (in estimated instructions)", 911*e4b17023SJohn Marino 1000, 0, 0) 912*e4b17023SJohn Marino 913*e4b17023SJohn Marino/* Diagnostic parameters. */ 914*e4b17023SJohn Marino 915*e4b17023SJohn MarinoDEFPARAM (CXX_MAX_NAMESPACES_FOR_DIAGNOSTIC_HELP, 916*e4b17023SJohn Marino "cxx-max-namespaces-for-diagnostic-help", 917*e4b17023SJohn Marino "Maximum number of namespaces to search for alternatives when " 918*e4b17023SJohn Marino "name lookup fails", 919*e4b17023SJohn Marino 1000, 0, 0) 920*e4b17023SJohn Marino 921*e4b17023SJohn Marino/* Maximum number of conditional store pairs that can be sunk. */ 922*e4b17023SJohn MarinoDEFPARAM (PARAM_MAX_STORES_TO_SINK, 923*e4b17023SJohn Marino "max-stores-to-sink", 924*e4b17023SJohn Marino "Maximum number of conditional store pairs that can be sunk", 925*e4b17023SJohn Marino 2, 0, 0) 926*e4b17023SJohn Marino 927*e4b17023SJohn Marino/* Override CASE_VALUES_THRESHOLD of when to switch from doing switch 928*e4b17023SJohn Marino statements via if statements to using a table jump operation. If the value 929*e4b17023SJohn Marino is 0, the default CASE_VALUES_THRESHOLD will be used. */ 930*e4b17023SJohn MarinoDEFPARAM (PARAM_CASE_VALUES_THRESHOLD, 931*e4b17023SJohn Marino "case-values-threshold", 932*e4b17023SJohn Marino "The smallest number of different values for which it is best to " 933*e4b17023SJohn Marino "use a jump-table instead of a tree of conditional branches, " 934*e4b17023SJohn Marino "if 0, use the default for the machine", 935*e4b17023SJohn Marino 0, 0, 0) 936*e4b17023SJohn Marino 937*e4b17023SJohn Marino/* Data race flags for C++0x memory model compliance. */ 938*e4b17023SJohn MarinoDEFPARAM (PARAM_ALLOW_LOAD_DATA_RACES, 939*e4b17023SJohn Marino "allow-load-data-races", 940*e4b17023SJohn Marino "Allow new data races on loads to be introduced", 941*e4b17023SJohn Marino 1, 0, 1) 942*e4b17023SJohn Marino 943*e4b17023SJohn MarinoDEFPARAM (PARAM_ALLOW_STORE_DATA_RACES, 944*e4b17023SJohn Marino "allow-store-data-races", 945*e4b17023SJohn Marino "Allow new data races on stores to be introduced", 946*e4b17023SJohn Marino 1, 0, 1) 947*e4b17023SJohn Marino 948*e4b17023SJohn MarinoDEFPARAM (PARAM_ALLOW_PACKED_LOAD_DATA_RACES, 949*e4b17023SJohn Marino "allow-packed-load-data-races", 950*e4b17023SJohn Marino "Allow new data races on packed data loads to be introduced", 951*e4b17023SJohn Marino 1, 0, 1) 952*e4b17023SJohn Marino 953*e4b17023SJohn MarinoDEFPARAM (PARAM_ALLOW_PACKED_STORE_DATA_RACES, 954*e4b17023SJohn Marino "allow-packed-store-data-races", 955*e4b17023SJohn Marino "Allow new data races on packed data stores to be introduced", 956*e4b17023SJohn Marino 1, 0, 1) 957*e4b17023SJohn Marino 958*e4b17023SJohn Marino/* Reassociation width to be used by tree reassoc optimization. */ 959*e4b17023SJohn MarinoDEFPARAM (PARAM_TREE_REASSOC_WIDTH, 960*e4b17023SJohn Marino "tree-reassoc-width", 961*e4b17023SJohn Marino "Set the maximum number of instructions executed in parallel in " 962*e4b17023SJohn Marino "reassociated tree. If 0, use the target dependent heuristic.", 963*e4b17023SJohn Marino 0, 0, 0) 964*e4b17023SJohn Marino 965*e4b17023SJohn MarinoDEFPARAM (PARAM_MAX_TAIL_MERGE_COMPARISONS, 966*e4b17023SJohn Marino "max-tail-merge-comparisons", 967*e4b17023SJohn Marino "Maximum amount of similar bbs to compare a bb with", 968*e4b17023SJohn Marino 10, 0, 0) 969*e4b17023SJohn Marino 970*e4b17023SJohn MarinoDEFPARAM (PARAM_MAX_TAIL_MERGE_ITERATIONS, 971*e4b17023SJohn Marino "max-tail-merge-iterations", 972*e4b17023SJohn Marino "Maximum amount of iterations of the pass over a function", 973*e4b17023SJohn Marino 2, 0, 0) 974*e4b17023SJohn Marino 975*e4b17023SJohn Marino/* Maximum number of strings for which strlen optimization pass will 976*e4b17023SJohn Marino track string lenths. */ 977*e4b17023SJohn MarinoDEFPARAM (PARAM_MAX_TRACKED_STRLENS, 978*e4b17023SJohn Marino "max-tracked-strlens", 979*e4b17023SJohn Marino "Maximum number of strings for which strlen optimization pass will " 980*e4b17023SJohn Marino "track string lengths", 981*e4b17023SJohn Marino 1000, 0, 0) 982*e4b17023SJohn Marino 983*e4b17023SJohn Marino/* 984*e4b17023SJohn MarinoLocal variables: 985*e4b17023SJohn Marinomode:c 986*e4b17023SJohn MarinoEnd: 987*e4b17023SJohn Marino*/ 988