| 1 | /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |
| 2 | |* *| |
| 3 | |* Option Parsing Definitions *| |
| 4 | |* *| |
| 5 | |* Automatically generated file, do not edit! *| |
| 6 | |* *| |
| 7 | \*===----------------------------------------------------------------------===*/ |
| 8 | |
| 9 | ///////// |
| 10 | // Tables |
| 11 | |
| 12 | #if defined(OPTTABLE_CODE) || defined(OPTIONS_STRUCT_DEFS) |
| 13 | static llvm::opt::OptTable::Tables optionTables() { |
| 14 | using llvm::opt::DefaultVis, llvm::opt::HelpHidden, |
| 15 | llvm::opt::RenderAsInput, llvm::opt::RenderJoined, |
| 16 | llvm::opt::RenderSeparate; |
| 17 | |
| 18 | #ifdef __GNUC__ |
| 19 | #pragma GCC diagnostic push |
| 20 | #pragma GCC diagnostic ignored "-Woverlength-strings" |
| 21 | #endif |
| 22 | static constexpr char OptionStrTableStorage[] = |
| 23 | "\0" |
| 24 | "-\0" |
| 25 | "--\0" |
| 26 | "<input>\0" |
| 27 | "<unknown>\0" |
| 28 | "-adce-remove-control-flow\0" |
| 29 | "\0" |
| 30 | "\0" |
| 31 | "-adce-remove-loops\0" |
| 32 | "-allow-unroll-and-jam\0" |
| 33 | "Allows loops to be unroll-and-jammed\0" |
| 34 | "-bonus-inst-threshold\0" |
| 35 | "Control the number of bonus instructions\0" |
| 36 | "-callsite-splitting-duplication-threshold\0" |
| 37 | "Only allow instructions before a call, if their cost is below DuplicationThreshold\0" |
| 38 | "-consthoist-gep\0" |
| 39 | "Try hoisting constant gep expressions\0" |
| 40 | "-consthoist-min-num-to-rebase\0" |
| 41 | "Do not rebase if number of dependent constants of a Base is less than this number\0" |
| 42 | "-consthoist-with-block-frequency\0" |
| 43 | "Enable the use of the block frequency analysis to reduce the chance to execute const materialization more frequently than without hoisting\0" |
| 44 | "-constraint-elimination-dump-reproducers\0" |
| 45 | "Dump IR to reproduce successful transformations\0" |
| 46 | "-constraint-elimination-max-rows\0" |
| 47 | "Maximum number of rows to keep in constraint system\0" |
| 48 | "-dfa-cost-threshold\0" |
| 49 | "Maximum cost accepted for the transformation\0" |
| 50 | "-dfa-early-exit-heuristic\0" |
| 51 | "Exit early if an unpredictable value come from the same loop\0" |
| 52 | "-dfa-jump-view-cfg-before\0" |
| 53 | "View the CFG before DFA Jump Threading\0" |
| 54 | "-dfa-max-cloned-rate\0" |
| 55 | "Maximum cloned instructions rate accepted for the transformation\0" |
| 56 | "-dfa-max-num-paths\0" |
| 57 | "Max number of paths enumerated around a switch\0" |
| 58 | "-dfa-max-num-visited-paths\0" |
| 59 | "Max number of blocks visited while enumerating paths around a switch\0" |
| 60 | "-dfa-max-out-use-blocks\0" |
| 61 | "Maximum unduplicated blocks with outer uses accepted for the transformation\0" |
| 62 | "-dfa-max-path-length\0" |
| 63 | "Max number of blocks searched to find a threading path\0" |
| 64 | "-disable-lftr\0" |
| 65 | "Disable Linear Function Test Replace optimization\0" |
| 66 | "-disable-licm-promotion\0" |
| 67 | "Disable memory promotion in LICM pass\0" |
| 68 | "-disable-separate-const-offset-from-gep\0" |
| 69 | "Do not separate the constant offset from a GEP instruction\0" |
| 70 | "-disable-tail-call-elim-for-cold-calls\0" |
| 71 | "Disable tail call elimination and optimization for cold calls or in cold functions\0" |
| 72 | "-dse-max-dom-cond-depth\0" |
| 73 | "Max dominator tree recursion depth for eliminating redundant stores via dominating conditions\0" |
| 74 | "-dse-memoryssa-defs-per-block-limit\0" |
| 75 | "The number of MemoryDefs we consider as candidates to eliminated other stores per basic block\0" |
| 76 | "-dse-memoryssa-otherbb-cost\0" |
| 77 | "The cost of a step in a different basic block than the killing MemoryDef\0" |
| 78 | "-dse-memoryssa-partial-store-limit\0" |
| 79 | "The maximum number candidates that only partially overwrite the killing MemoryDef to consider\0" |
| 80 | "-dse-memoryssa-path-check-limit\0" |
| 81 | "The maximum number of blocks to check when trying to prove that all paths to an exit go through a killing block\0" |
| 82 | "-dse-memoryssa-samebb-cost\0" |
| 83 | "The cost of a step in the same basic block as the killing MemoryDef\0" |
| 84 | "-dse-memoryssa-scanlimit\0" |
| 85 | "The number of memory instructions to scan for dead store elimination\0" |
| 86 | "-dse-memoryssa-walklimit\0" |
| 87 | "The maximum number of steps while walking upwards to find MemoryDefs that may be killed\0" |
| 88 | "-dse-optimize-memoryssa\0" |
| 89 | "Allow DSE to optimize memory accesses\0" |
| 90 | "-earlycse-debug-hash\0" |
| 91 | "Perform extra assertion checking to verify that SimpleValue's hash function is well-behaved w.r.t. its isEqual predicate\0" |
| 92 | "-earlycse-mssa-optimization-cap\0" |
| 93 | "Enable imprecision in EarlyCSE in pathological cases, in exchange for faster compile. Caps the MemorySSA clobbering calls\0" |
| 94 | "-enable-dse-initializes-attr-improvement\0" |
| 95 | "Enable the initializes attr improvement in DSE\0" |
| 96 | "-enable-dse-partial-overwrite-tracking\0" |
| 97 | "Enable partial-overwrite tracking in DSE\0" |
| 98 | "-enable-dse-partial-store-merging\0" |
| 99 | "Enable partial store merging in DSE\0" |
| 100 | "-enable-gvn-memdep\0" |
| 101 | "-enable-gvn-memoryssa\0" |
| 102 | "-enable-load-in-loop-pre\0" |
| 103 | "-enable-load-pre\0" |
| 104 | "-enable-loop-distribute\0" |
| 105 | "Enable the new, experimental LoopDistribution Pass\0" |
| 106 | "-enable-loop-header-duplication-at-minsize\0" |
| 107 | "Enable loop header duplication even for minsize\0" |
| 108 | "-enable-loop-simplifycfg-term-folding\0" |
| 109 | "-enable-lsr-phielim\0" |
| 110 | "Enable LSR phi elimination\0" |
| 111 | "-enable-nontrivial-unswitch\0" |
| 112 | "Forcibly enables non-trivial loop unswitching rather than following the configuration passed into the pass\0" |
| 113 | "-enable-phi-of-ops\0" |
| 114 | "-enable-poison-reuse-guard\0" |
| 115 | "Enable poison-reuse guard\0" |
| 116 | "-enable-scalar-pre\0" |
| 117 | "-enable-split-backedge-in-load-pre\0" |
| 118 | "-enable-store-refinement\0" |
| 119 | "-enable-unswitch-cost-multiplier\0" |
| 120 | "Enable unswitch cost multiplier that prohibits exponential explosion in nontrivial unswitch\0" |
| 121 | "-flat-loop-tripcount-threshold\0" |
| 122 | "If the runtime tripcount for the loop is lower than the threshold, the loop is considered as flat and will be less aggressively unrolled\0" |
| 123 | "-float2int-max-integer-bw\0" |
| 124 | "Max integer bitwidth to consider in float2int\0" |
| 125 | "-force-fuse-matrix\0" |
| 126 | "Force matrix instruction fusion even if not profitable\0" |
| 127 | "-forget-scev-loop-unroll\0" |
| 128 | "Forget everything in SCEV when doing LoopUnroll, instead of just the current top-most loop. This is sometimes preferred to reduce compile time\0" |
| 129 | "-forward-switch-cond\0" |
| 130 | "Forward switch condition to phi ops\0" |
| 131 | "-freeze-loop-unswitch-cond\0" |
| 132 | "If enabled, the freeze instruction will be added to condition of loop unswitch to prevent miscompilation\0" |
| 133 | "-fuse-matrix-loops-threshold\0" |
| 134 | "Generate loop nests for tiling when expected number of operations exceeds threshold\0" |
| 135 | "-fuse-matrix-tile-size\0" |
| 136 | "Tile size for matrix instruction fusion using square-shaped tiles\0" |
| 137 | "-fuse-matrix\0" |
| 138 | "Enable/disable fusing matrix instructions\0" |
| 139 | "-guard-widening-widen-branch-guards\0" |
| 140 | "Whether or not we should widen guards expressed as branches by widenable conditions\0" |
| 141 | "-gvn-hoist-max-bbs\0" |
| 142 | "Max number of basic blocks on the path between hoisting locations (unlimited = -1)\0" |
| 143 | "-gvn-hoist-max-chain-length\0" |
| 144 | "Maximum length of dependent chains to hoist (unlimited = -1)\0" |
| 145 | "-gvn-hoist-max-depth\0" |
| 146 | "Hoist instructions from the beginning of the BB up to the maximum specified depth (unlimited = -1)\0" |
| 147 | "-gvn-max-block-speculations\0" |
| 148 | "Max number of blocks we're willing to speculate on (and recurse into) when deducing if a value is fully available or not in GVN\0" |
| 149 | "-gvn-max-hoisted\0" |
| 150 | "Max number of instructions to hoist (unlimited = -1)\0" |
| 151 | "-gvn-max-num-deps\0" |
| 152 | "Max number of dependences to attempt Load PRE\0" |
| 153 | "-gvn-max-num-insns\0" |
| 154 | "Max number of instructions to scan in each basic block in GVN\0" |
| 155 | "-gvn-max-num-reaching-blocks\0" |
| 156 | "Max number of blocks scanned per load in the MemorySSA reaching-value analysis\0" |
| 157 | "-gvn-max-num-visited-insts\0" |
| 158 | "Max number of visited instructions when trying to find dominating value of select dependency\0" |
| 159 | "-gvn-scan-users-limit\0" |
| 160 | "The number of memory accesses to scan in a block in reaching memory values analysis\0" |
| 161 | "-hoist-common-insts\0" |
| 162 | "hoist common instructions\0" |
| 163 | "-hoist-loads-stores-with-cond-faulting\0" |
| 164 | "Hoist loads/stores if the target supports conditional faulting\0" |
| 165 | "-indvars-post-increment-ranges\0" |
| 166 | "Use post increment control-dependent ranges in IndVarSimplify\0" |
| 167 | "-indvars-predicate-loop-traps\0" |
| 168 | "Predicate conditions that trap in loops with only local writes\0" |
| 169 | "-indvars-predicate-loops\0" |
| 170 | "Predicate conditions in read only loops\0" |
| 171 | "-indvars-widen-indvars\0" |
| 172 | "Allow widening of indvars to eliminate s/zext\0" |
| 173 | "-irce-allow-narrow-latch\0" |
| 174 | "If set to true, IRCE may eliminate wide range checks in loops with narrow latch condition\0" |
| 175 | "-irce-allow-unsigned-latch\0" |
| 176 | "-irce-loop-size-cutoff\0" |
| 177 | "-irce-max-type-size-for-overflow-check\0" |
| 178 | "Maximum size of range check type for which can be produced runtime overflow check of its limit's computation\0" |
| 179 | "-irce-min-eliminated-checks\0" |
| 180 | "-irce-print-changed-loops\0" |
| 181 | "-irce-print-range-checks\0" |
| 182 | "-irce-print-scaled-boundary-range-checks\0" |
| 183 | "-irce-skip-profitability-checks\0" |
| 184 | "-jump-table-to-switch-function-size-threshold\0" |
| 185 | "Only split jump tables containing functions whose sizes are less or equal than this threshold\0" |
| 186 | "-jump-table-to-switch-size-threshold\0" |
| 187 | "Only split jump tables with size less or equal than JumpTableSizeThreshold\0" |
| 188 | "-jump-threading-across-loop-headers\0" |
| 189 | "Allow JumpThreading to thread across loop headers, for testing\0" |
| 190 | "-jump-threading-implication-search-threshold\0" |
| 191 | "The number of predecessors to search for a stronger condition to use to thread over a weaker condition\0" |
| 192 | "-jump-threading-phi-threshold\0" |
| 193 | "Max PHIs in BB to duplicate for jump threading\0" |
| 194 | "-jump-threading-threshold\0" |
| 195 | "Max block size to duplicate for jump threading\0" |
| 196 | "-keep-loops\0" |
| 197 | "Preserve canonical loop structure\0" |
| 198 | "-licm-max-num-fp-reassociations\0" |
| 199 | "Set upper limit for the number of transformations performed during a single round of hoisting the reassociated expressions\0" |
| 200 | "-licm-max-num-int-reassociations\0" |
| 201 | "-licm-max-num-uses-traversed\0" |
| 202 | "Max num uses visited for identifying load invariance in loop using invariant start\0" |
| 203 | "-licm-mssa-max-acc-promotion\0" |
| 204 | "[LICM & MemorySSA] When MSSA in LICM is disabled, this has no effect. When MSSA in LICM is enabled, then this is the maximum number of accesses allowed to be present in a loop in order to enable memory promotion\0" |
| 205 | "-licm-mssa-optimization-cap\0" |
| 206 | "Enable imprecision in LICM in pathological cases, in exchange for faster compile. Caps the MemorySSA clobbering calls\0" |
| 207 | "-licm-versioning-invariant-threshold\0" |
| 208 | "LoopVersioningLICM's minimum allowed percentage of possible invariant instructions per loop\0" |
| 209 | "-licm-versioning-max-depth-threshold\0" |
| 210 | "LoopVersioningLICM's threshold for maximum allowed loop nest/depth\0" |
| 211 | "-likely-branch-weight\0" |
| 212 | "Weight of the branch likely to be taken\0" |
| 213 | "-loop-deletion-enable-symbolic-execution\0" |
| 214 | "Break backedge through symbolic execution of 1st iteration attempting to prove that the backedge is never taken\0" |
| 215 | "-loop-distribute-non-if-convertible\0" |
| 216 | "Whether to distribute into a loop that may not be if-convertible by the loop vectorizer\0" |
| 217 | "-loop-distribute-scev-check-threshold-with-pragma\0" |
| 218 | "The maximum number of SCEV checks allowed for Loop Distribution for loop marked with #pragma clang loop distribute(enable)\0" |
| 219 | "-loop-distribute-scev-check-threshold\0" |
| 220 | "The maximum number of SCEV checks allowed for Loop Distribution\0" |
| 221 | "-loop-distribute-verify\0" |
| 222 | "Turn on DominatorTree and LoopInfo verification after Loop Distribution\0" |
| 223 | "-loop-flatten-assume-no-overflow\0" |
| 224 | "Assume that the product of the two iteration trip counts will never overflow\0" |
| 225 | "-loop-flatten-cost-threshold\0" |
| 226 | "Limit on the cost of instructions that can be repeated due to loop flattening\0" |
| 227 | "-loop-flatten-version-loops\0" |
| 228 | "Version loops if flattened loop could overflow\0" |
| 229 | "-loop-flatten-widen-iv\0" |
| 230 | "Widen the loop induction variables, if possible, so overflow checks won't reject flattening\0" |
| 231 | "-loop-fusion-peel-max-count\0" |
| 232 | "Max number of iterations to be peeled from a loop, such that fusion can take place\0" |
| 233 | "-loop-idiom-crc-strategy\0" |
| 234 | "Preferred strategy for optimizing CRC loops\0" |
| 235 | "<disable|auto|table|clmul>\0" |
| 236 | "disable,auto,table,clmul\0" |
| 237 | "-loop-idiom-force-memset-pattern-intrinsic\0" |
| 238 | "Use memset.pattern intrinsic whenever possible\0" |
| 239 | "-loop-interchange-max-loop-nest-depth\0" |
| 240 | "Maximum depth of loop nest considered for the transform\0" |
| 241 | "-loop-interchange-max-mem-instr-ratio\0" |
| 242 | "Maximum number of load/store instructions squared in relation to the total number of instructions. Higher value may lead to more interchanges at the cost of compile-time\0" |
| 243 | "-loop-interchange-min-loop-nest-depth\0" |
| 244 | "Minimum depth of loop nest considered for the transform\0" |
| 245 | "-loop-interchange-profitabilities\0" |
| 246 | "List of profitability heuristics to be used. They are applied in the given order\0" |
| 247 | "<cache|instorder|vectorize|ignore>\0" |
| 248 | "cache,instorder,vectorize,ignore\0" |
| 249 | "-loop-interchange-reduction-to-mem\0" |
| 250 | "Support for the inner-loop reduction pattern\0" |
| 251 | "-loop-interchange-threshold\0" |
| 252 | "Interchange if you gain more than this number\0" |
| 253 | "-loop-load-elimination-scev-check-threshold\0" |
| 254 | "The maximum number of SCEV checks allowed for Loop Load Elimination\0" |
| 255 | "-loop-predication-enable-count-down-loop\0" |
| 256 | "-loop-predication-enable-iv-truncation\0" |
| 257 | "-loop-predication-insert-assumes-of-predicated-guards-conditions\0" |
| 258 | "Whether or not we should insert assumes of conditions of predicated guards\0" |
| 259 | "-loop-predication-latch-probability-scale\0" |
| 260 | "scale factor for the latch probability. Value should be greater than 1. Lower values are ignored\0" |
| 261 | "-loop-predication-predicate-widenable-branches-to-deopt\0" |
| 262 | "Whether or not we should predicate guards expressed as widenable branches to deoptimize blocks\0" |
| 263 | "-loop-predication-skip-profitability-checks\0" |
| 264 | "-loop-prefetch-writes\0" |
| 265 | "Prefetch write addresses\0" |
| 266 | "-lsr-complexity-limit\0" |
| 267 | "LSR search space complexity limit\0" |
| 268 | "-lsr-drop-scaled-reg-for-vscale\0" |
| 269 | "Avoid using scaled registers with vscale-relative addressing\0" |
| 270 | "-lsr-drop-solution\0" |
| 271 | "Attempt to drop solution if it is less profitable\0" |
| 272 | "-lsr-enable-vscale-immediates\0" |
| 273 | "Enable analysis of vscale-relative immediates in LSR\0" |
| 274 | "-lsr-exp-narrow\0" |
| 275 | "Narrow LSR complex solution using expectation of registers number\0" |
| 276 | "-lsr-filter-same-scaled-reg\0" |
| 277 | "Narrow LSR search space by filtering non-optimal formulae with the same ScaledReg and Scale\0" |
| 278 | "-lsr-insns-cost\0" |
| 279 | "Add instruction count to a LSR cost model\0" |
| 280 | "-lsr-preferred-addressing-mode\0" |
| 281 | "A flag that overrides the target's preferred addressing mode\0" |
| 282 | "<none|preindexed|postindexed|all>\0" |
| 283 | "none,preindexed,postindexed,all\0" |
| 284 | "-lsr-setupcost-depth-limit\0" |
| 285 | "The limit on recursion depth for LSRs setup cost\0" |
| 286 | "-matrix-allow-contract\0" |
| 287 | "Allow the use of FMAs if available and profitable. This may result in different results, due to less rounding error\0" |
| 288 | "-matrix-default-layout\0" |
| 289 | "Sets the default matrix layout\0" |
| 290 | "<column-major|row-major>\0" |
| 291 | "column-major,row-major\0" |
| 292 | "-matrix-print-after-transpose-opt\0" |
| 293 | "-matrix-split-matmul-remainder-over-threshold\0" |
| 294 | "Illegal remainder vectors over this size in bits should be split in the inner loop of matmul\0" |
| 295 | "-max-loads-per-memcmp-opt-size\0" |
| 296 | "Set maximum number of loads used in expanded memcmp for -Os/Oz\0" |
| 297 | "-max-loads-per-memcmp\0" |
| 298 | "Set maximum number of loads used in expanded memcmp\0" |
| 299 | "-max-prefetch-iters-ahead\0" |
| 300 | "Max number of iterations to prefetch ahead\0" |
| 301 | "-max-uses-for-sinking\0" |
| 302 | "Do not sink instructions that have too many uses\0" |
| 303 | "-memcmp-num-loads-per-block\0" |
| 304 | "The number of loads per basic block for inline expansion of memcmp\0" |
| 305 | "-min-prefetch-stride\0" |
| 306 | "Min stride to add prefetches\0" |
| 307 | "-pragma-unroll-and-jam-threshold\0" |
| 308 | "Unrolled size limit for loops with an unroll_and_jam(full) or unroll_count pragma\0" |
| 309 | "-pragma-unroll-full-max-iterations\0" |
| 310 | "Maximum allowed iterations to unroll under pragma unroll full\0" |
| 311 | "-pragma-unroll-threshold\0" |
| 312 | "Unrolled size limit for loops with unroll metadata (full, enable, or count)\0" |
| 313 | "-prefetch-distance\0" |
| 314 | "Number of instructions to prefetch ahead\0" |
| 315 | "-reassociate-geps-verify-no-dead-code\0" |
| 316 | "Verify this pass produces no dead code\0" |
| 317 | "-reassociate-use-cse-local\0" |
| 318 | "Only reorder expressions within a basic block when exposing CSE opportunities\0" |
| 319 | "-replexitval\0" |
| 320 | "Choose the strategy to replace exit value in IndVarSimplify\0" |
| 321 | "<never|cheap|unusedindvarinloop|noharduse|always>\0" |
| 322 | "never,cheap,unusedindvarinloop,noharduse,always\0" |
| 323 | "-rotation-max-header-size\0" |
| 324 | "The default maximum header size for automatic loop rotation\0" |
| 325 | "-rotation-prepare-for-lto\0" |
| 326 | "Run loop-rotation in the prepare-for-lto stage. This option should be used for testing only\0" |
| 327 | "-rs4gc-allow-statepoint-with-no-deopt-info\0" |
| 328 | "-rs4gc-remat-derived-at-uses\0" |
| 329 | "-runtime-check-per-loop-load-elim\0" |
| 330 | "Max number of memchecks allowed per eliminated load on average\0" |
| 331 | "-simple-loop-unswitch-drop-non-trivial-implicit-null-checks\0" |
| 332 | "If enabled, drop make.implicit metadata in unswitched implicit null checks to save time analyzing if we can keep it\0" |
| 333 | "-simple-loop-unswitch-estimate-profile\0" |
| 334 | "-simple-loop-unswitch-guards\0" |
| 335 | "If enabled, simple loop unswitching will also consider llvm.experimental.guard intrinsics as unswitch candidates\0" |
| 336 | "-simple-loop-unswitch-inject-invariant-condition-hotness-threshold\0" |
| 337 | "Only try to inject loop invariant conditions and unswitch on them to eliminate branches that are not-taken 1/<this option> times or less\0" |
| 338 | "-simple-loop-unswitch-inject-invariant-conditions\0" |
| 339 | "Whether we should inject new invariants and unswitch them to eliminate some existing (non-invariant) conditions\0" |
| 340 | "-simple-loop-unswitch-memoryssa-threshold\0" |
| 341 | "Max number of memory uses to explore during partial unswitching analysis\0" |
| 342 | "-sink-common-insts\0" |
| 343 | "Sink common instructions\0" |
| 344 | "-sink-freq-percent-threshold\0" |
| 345 | "Do not sink instructions that require cloning unless they execute less than this percent of the time\0" |
| 346 | "-spec-exec-max-not-hoisted\0" |
| 347 | "Speculative execution is not applied to basic blocks where the number of instructions that would not be speculatively executed exceeds this limit\0" |
| 348 | "-spec-exec-max-speculation-cost\0" |
| 349 | "Speculative execution is not applied to basic blocks where the cost of the instructions to speculatively execute exceeds this limit\0" |
| 350 | "-spec-exec-only-if-divergent-target\0" |
| 351 | "Speculative execution is applied only to targets with divergent branches, even if the pass was configured to apply only to all targets\0" |
| 352 | "-speculate-unpredictables\0" |
| 353 | "Speculate unpredictable branches\0" |
| 354 | "-spp-all-backedges\0" |
| 355 | "-spp-counted-loop-trip-width\0" |
| 356 | "-spp-no-backedge\0" |
| 357 | "-spp-no-call\0" |
| 358 | "-spp-no-entry\0" |
| 359 | "-spp-print-base-pointers\0" |
| 360 | "-spp-print-liveset-size\0" |
| 361 | "-spp-print-liveset\0" |
| 362 | "-spp-rematerialization-threshold\0" |
| 363 | "-spp-split-backedge\0" |
| 364 | "-sroa-skip-mem2reg\0" |
| 365 | "-structurizecfg-relaxed-uniform-regions\0" |
| 366 | "Allow relaxed uniform region checks\0" |
| 367 | "-structurizecfg-skip-uniform-regions\0" |
| 368 | "Force whether the StructurizeCFG pass skips uniform regions\0" |
| 369 | "-switch-range-to-icmp\0" |
| 370 | "Convert switches into an integer range comparison\0" |
| 371 | "-switch-to-lookup\0" |
| 372 | "Convert switches to lookup tables\0" |
| 373 | "-tre-disable-entrycount-recompute\0" |
| 374 | "Force disabling recomputing of function entry count, on successful tail recursion elimination\0" |
| 375 | "-unlikely-branch-weight\0" |
| 376 | "Weight of the branch unlikely to be taken\0" |
| 377 | "-unroll-allow-partial\0" |
| 378 | "Allows loops to be partially unrolled until -unroll-threshold loop size is reached\0" |
| 379 | "-unroll-allow-remainder\0" |
| 380 | "Allow generation of a loop remainder (extra iterations) when unrolling a loop\0" |
| 381 | "-unroll-and-jam-count\0" |
| 382 | "Use this unroll count for all loops including those with unroll_and_jam_count pragma values, for testing purposes\0" |
| 383 | "-unroll-and-jam-threshold\0" |
| 384 | "Threshold to use for inner loop when doing unroll and jam\0" |
| 385 | "-unroll-count\0" |
| 386 | "Use this unroll count for all loops including those with unroll_count pragma values, for testing purposes\0" |
| 387 | "-unroll-full-max-count\0" |
| 388 | "Set the max unroll count for full unrolling, for testing purposes\0" |
| 389 | "-unroll-max-count\0" |
| 390 | "Set the max unroll count for partial and runtime unrolling, fortesting purposes\0" |
| 391 | "-unroll-max-iteration-count-to-analyze\0" |
| 392 | "Don't allow loop unrolling to simulate more than this number of iterations when checking full unroll profitability\0" |
| 393 | "-unroll-max-percent-threshold-boost\0" |
| 394 | "The maximum 'boost' (represented as a percentage >= 100) applied to the threshold when aggressively unrolling a loop due to the dynamic cost savings. If completely unrolling a loop will reduce the total runtime from X to Y, we boost the loop unroll threshold to DefaultThreshold*std::min(MaxPercentThresholdBoost, X/Y). This limit avoids excessive code bloat\0" |
| 395 | "-unroll-max-upperbound\0" |
| 396 | "The max of trip count upper bound that is considered in unrolling\0" |
| 397 | "-unroll-optsize-threshold\0" |
| 398 | "The cost threshold for loop unrolling when optimizing for size\0" |
| 399 | "-unroll-partial-threshold\0" |
| 400 | "The cost threshold for partial loop unrolling\0" |
| 401 | "-unroll-remainder\0" |
| 402 | "Allow the loop remainder to be unrolled\0" |
| 403 | "-unroll-revisit-child-loops\0" |
| 404 | "Enqueue and re-visit child loops in the loop PM after unrolling. This shouldn't typically be needed as child loops (or their clones) were already visited\0" |
| 405 | "-unroll-runtime\0" |
| 406 | "Unroll loops with run-time trip counts\0" |
| 407 | "-unroll-threshold-aggressive\0" |
| 408 | "Threshold (max size of unrolled loop) to use in aggressive (O3) optimizations\0" |
| 409 | "-unroll-threshold-default\0" |
| 410 | "Default threshold (max size of unrolled loop), used in all but O3 optimizations\0" |
| 411 | "-unroll-threshold\0" |
| 412 | "The cost threshold for loop unrolling\0" |
| 413 | "-unswitch-num-initial-unscaled-candidates\0" |
| 414 | "Number of unswitch candidates that are ignored when calculating cost multiplier\0" |
| 415 | "-unswitch-parent-blocks-div\0" |
| 416 | "Outer loop size divisor for cost multiplier\0" |
| 417 | "-unswitch-siblings-toplevel-div\0" |
| 418 | "Toplevel siblings divisor for cost multiplier\0" |
| 419 | "-unswitch-threshold\0" |
| 420 | "The cost threshold for unswitching a loop\0" |
| 421 | "-use-lir-code-size-heurs\0" |
| 422 | "Use loop idiom recognition code size heuristics when compiling with -Os/-Oz\0" |
| 423 | "-verify-matrix-shapes\0" |
| 424 | "Enable/disable matrix shape verification\0" |
| 425 | ; |
| 426 | #ifdef __GNUC__ |
| 427 | #pragma GCC diagnostic pop |
| 428 | #endif |
| 429 | |
| 430 | static constexpr llvm::StringTable |
| 431 | OptionStrTable = OptionStrTableStorage; |
| 432 | |
| 433 | static constexpr llvm::StringTable::Offset OptionPrefixesTable[] = { |
| 434 | 0 /* prefixes */, |
| 435 | 2 /* prefixes */, 1 /* '-' */, 3 /* '--' */ |
| 436 | }; |
| 437 | |
| 438 | static constexpr llvm::opt::OptTable::HelpTextVariant OptionHelpTextVariantsTable[] = { |
| 439 | {0, 0}, |
| 440 | }; |
| 441 | |
| 442 | static constexpr unsigned OptionSubCommandIDsTable[] = { |
| 443 | 0 /* subcommands */ |
| 444 | }; |
| 445 | |
| 446 | static constexpr llvm::opt::OptTable::InfoExtra OptionInfoExtrasTable[] = { |
| 447 | {0, 0, 0, 0, 0, 0, 0, 0}, |
| 448 | {0, 0, 0, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0}, |
| 449 | {9993, 0, 10020, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0}, |
| 450 | {10646, 0, 10681, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0}, |
| 451 | {12234, 0, 12268, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0}, |
| 452 | {12569, 0, 12594, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0}, |
| 453 | {13871, 0, 13921, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0}, |
| 454 | }; |
| 455 | |
| 456 | static constexpr llvm::opt::OptTable::Info OptionInfoTable[] = { |
| 457 | {6 /* <input> */, 0, 0, 0, 1, 0, llvm::opt::Option::InputClass}, |
| 458 | {14 /* <unknown> */, 0, 0, 0, 1, 0, llvm::opt::Option::UnknownClass}, |
| 459 | {24 /* -adce-remove-control-flow */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 460 | {52 /* -adce-remove-loops */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 461 | {71 /* -allow-unroll-and-jam */, 93, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 462 | {130 /* -bonus-inst-threshold */, 152, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 463 | {193 /* -callsite-splitting-duplication-threshold */, 235, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 464 | {318 /* -consthoist-gep */, 334, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 465 | {372 /* -consthoist-min-num-to-rebase */, 402, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 466 | {484 /* -consthoist-with-block-frequency */, 517, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 467 | {656 /* -constraint-elimination-dump-reproducers */, 697, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 468 | {745 /* -constraint-elimination-max-rows */, 778, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 469 | {830 /* -dfa-cost-threshold */, 850, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 470 | {895 /* -dfa-early-exit-heuristic */, 921, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 471 | {982 /* -dfa-jump-view-cfg-before */, 1008, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 472 | {1047 /* -dfa-max-cloned-rate */, 1068, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 473 | {1133 /* -dfa-max-num-paths */, 1152, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 474 | {1199 /* -dfa-max-num-visited-paths */, 1226, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 475 | {1295 /* -dfa-max-out-use-blocks */, 1319, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 476 | {1395 /* -dfa-max-path-length */, 1416, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 477 | {1471 /* -disable-lftr */, 1485, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 478 | {1535 /* -disable-licm-promotion */, 1559, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 479 | {1597 /* -disable-separate-const-offset-from-gep */, 1637, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 480 | {1696 /* -disable-tail-call-elim-for-cold-calls */, 1735, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 481 | {1818 /* -dse-max-dom-cond-depth */, 1842, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 482 | {1936 /* -dse-memoryssa-defs-per-block-limit */, 1972, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 483 | {2066 /* -dse-memoryssa-otherbb-cost */, 2094, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 484 | {2167 /* -dse-memoryssa-partial-store-limit */, 2202, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 485 | {2296 /* -dse-memoryssa-path-check-limit */, 2328, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 486 | {2440 /* -dse-memoryssa-samebb-cost */, 2467, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 487 | {2535 /* -dse-memoryssa-scanlimit */, 2560, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 488 | {2629 /* -dse-memoryssa-walklimit */, 2654, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 489 | {2742 /* -dse-optimize-memoryssa */, 2766, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 490 | {2804 /* -earlycse-debug-hash */, 2825, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 491 | {2946 /* -earlycse-mssa-optimization-cap */, 2978, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 492 | {3100 /* -enable-dse-initializes-attr-improvement */, 3141, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 493 | {3188 /* -enable-dse-partial-overwrite-tracking */, 3227, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 494 | {3268 /* -enable-dse-partial-store-merging */, 3302, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 495 | {3338 /* -enable-gvn-memdep */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 496 | {3357 /* -enable-gvn-memoryssa */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 497 | {3379 /* -enable-load-in-loop-pre */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 498 | {3404 /* -enable-load-pre */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 499 | {3421 /* -enable-loop-distribute */, 3445, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 500 | {3496 /* -enable-loop-header-duplication-at-minsize */, 3539, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 501 | {3587 /* -enable-loop-simplifycfg-term-folding */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 502 | {3625 /* -enable-lsr-phielim */, 3645, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 503 | {3672 /* -enable-nontrivial-unswitch */, 3700, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 504 | {3807 /* -enable-phi-of-ops */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 505 | {3826 /* -enable-poison-reuse-guard */, 3853, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 506 | {3879 /* -enable-scalar-pre */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 507 | {3898 /* -enable-split-backedge-in-load-pre */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 508 | {3933 /* -enable-store-refinement */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 509 | {3958 /* -enable-unswitch-cost-multiplier */, 3991, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 510 | {4083 /* -flat-loop-tripcount-threshold */, 4114, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 511 | {4251 /* -float2int-max-integer-bw */, 4277, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 512 | {4323 /* -force-fuse-matrix */, 4342, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 513 | {4397 /* -forget-scev-loop-unroll */, 4422, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 514 | {4565 /* -forward-switch-cond */, 4586, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 515 | {4622 /* -freeze-loop-unswitch-cond */, 4649, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 516 | {4754 /* -fuse-matrix-loops-threshold */, 4783, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 517 | {4867 /* -fuse-matrix-tile-size */, 4890, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 518 | {4956 /* -fuse-matrix */, 4969, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 519 | {5011 /* -guard-widening-widen-branch-guards */, 5047, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 520 | {5132 /* -gvn-hoist-max-bbs */, 5151, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 521 | {5234 /* -gvn-hoist-max-chain-length */, 5262, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 522 | {5323 /* -gvn-hoist-max-depth */, 5344, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 523 | {5443 /* -gvn-max-block-speculations */, 5471, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 524 | {5599 /* -gvn-max-hoisted */, 5616, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 525 | {5669 /* -gvn-max-num-deps */, 5687, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 526 | {5733 /* -gvn-max-num-insns */, 5752, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 527 | {5814 /* -gvn-max-num-reaching-blocks */, 5843, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 528 | {5922 /* -gvn-max-num-visited-insts */, 5949, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 529 | {6042 /* -gvn-scan-users-limit */, 6064, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 530 | {6148 /* -hoist-common-insts */, 6168, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 531 | {6194 /* -hoist-loads-stores-with-cond-faulting */, 6233, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 532 | {6296 /* -indvars-post-increment-ranges */, 6327, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 533 | {6389 /* -indvars-predicate-loop-traps */, 6419, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 534 | {6482 /* -indvars-predicate-loops */, 6507, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 535 | {6547 /* -indvars-widen-indvars */, 6570, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 536 | {6616 /* -irce-allow-narrow-latch */, 6641, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 537 | {6731 /* -irce-allow-unsigned-latch */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 538 | {6758 /* -irce-loop-size-cutoff */, 50, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 539 | {6781 /* -irce-max-type-size-for-overflow-check */, 6820, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 540 | {6929 /* -irce-min-eliminated-checks */, 50, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 541 | {6957 /* -irce-print-changed-loops */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 542 | {6983 /* -irce-print-range-checks */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 543 | {7008 /* -irce-print-scaled-boundary-range-checks */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 544 | {7049 /* -irce-skip-profitability-checks */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 545 | {7081 /* -jump-table-to-switch-function-size-threshold */, 7127, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 546 | {7221 /* -jump-table-to-switch-size-threshold */, 7258, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 547 | {7333 /* -jump-threading-across-loop-headers */, 7369, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 548 | {7432 /* -jump-threading-implication-search-threshold */, 7477, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 549 | {7580 /* -jump-threading-phi-threshold */, 7610, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 550 | {7657 /* -jump-threading-threshold */, 7683, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 551 | {7730 /* -keep-loops */, 7742, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 552 | {7776 /* -licm-max-num-fp-reassociations */, 7808, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 553 | {7931 /* -licm-max-num-int-reassociations */, 7808, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 554 | {7964 /* -licm-max-num-uses-traversed */, 7993, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 555 | {8076 /* -licm-mssa-max-acc-promotion */, 8105, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 556 | {8317 /* -licm-mssa-optimization-cap */, 8345, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 557 | {8463 /* -licm-versioning-invariant-threshold */, 8500, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 558 | {8592 /* -licm-versioning-max-depth-threshold */, 8629, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 559 | {8696 /* -likely-branch-weight */, 8718, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 560 | {8758 /* -loop-deletion-enable-symbolic-execution */, 8799, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 561 | {8911 /* -loop-distribute-non-if-convertible */, 8947, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 562 | {9035 /* -loop-distribute-scev-check-threshold-with-pragma */, 9085, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 563 | {9208 /* -loop-distribute-scev-check-threshold */, 9246, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 564 | {9310 /* -loop-distribute-verify */, 9334, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 565 | {9406 /* -loop-flatten-assume-no-overflow */, 9439, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 566 | {9516 /* -loop-flatten-cost-threshold */, 9545, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 567 | {9623 /* -loop-flatten-version-loops */, 9651, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 568 | {9698 /* -loop-flatten-widen-iv */, 9721, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 569 | {9813 /* -loop-fusion-peel-max-count */, 9841, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 570 | {9924 /* -loop-idiom-crc-strategy */, 9949, 0, 0, 2, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 571 | {10045 /* -loop-idiom-force-memset-pattern-intrinsic */, 10088, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 572 | {10135 /* -loop-interchange-max-loop-nest-depth */, 10173, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 573 | {10229 /* -loop-interchange-max-mem-instr-ratio */, 10267, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 574 | {10437 /* -loop-interchange-min-loop-nest-depth */, 10475, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 575 | {10531 /* -loop-interchange-profitabilities */, 10565, 0, 0, 3, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 576 | {10714 /* -loop-interchange-reduction-to-mem */, 10749, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 577 | {10794 /* -loop-interchange-threshold */, 10822, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 578 | {10868 /* -loop-load-elimination-scev-check-threshold */, 10912, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 579 | {10980 /* -loop-predication-enable-count-down-loop */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 580 | {11021 /* -loop-predication-enable-iv-truncation */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 581 | {11060 /* -loop-predication-insert-assumes-of-predicated-guards-conditions */, 11125, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 582 | {11200 /* -loop-predication-latch-probability-scale */, 11242, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 583 | {11339 /* -loop-predication-predicate-widenable-branches-to-deopt */, 11395, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 584 | {11490 /* -loop-predication-skip-profitability-checks */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 585 | {11534 /* -loop-prefetch-writes */, 11556, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 586 | {11581 /* -lsr-complexity-limit */, 11603, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 587 | {11637 /* -lsr-drop-scaled-reg-for-vscale */, 11669, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 588 | {11730 /* -lsr-drop-solution */, 11749, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 589 | {11799 /* -lsr-enable-vscale-immediates */, 11829, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 590 | {11882 /* -lsr-exp-narrow */, 11898, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 591 | {11964 /* -lsr-filter-same-scaled-reg */, 11992, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 592 | {12084 /* -lsr-insns-cost */, 12100, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 593 | {12142 /* -lsr-preferred-addressing-mode */, 12173, 0, 0, 4, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 594 | {12300 /* -lsr-setupcost-depth-limit */, 12327, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 595 | {12376 /* -matrix-allow-contract */, 12399, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 596 | {12515 /* -matrix-default-layout */, 12538, 0, 0, 5, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 597 | {12617 /* -matrix-print-after-transpose-opt */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 598 | {12651 /* -matrix-split-matmul-remainder-over-threshold */, 12697, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 599 | {12790 /* -max-loads-per-memcmp-opt-size */, 12821, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 600 | {12884 /* -max-loads-per-memcmp */, 12906, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 601 | {12958 /* -max-prefetch-iters-ahead */, 12984, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 602 | {13027 /* -max-uses-for-sinking */, 13049, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 603 | {13098 /* -memcmp-num-loads-per-block */, 13126, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 604 | {13193 /* -min-prefetch-stride */, 13214, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 605 | {13243 /* -pragma-unroll-and-jam-threshold */, 13276, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 606 | {13358 /* -pragma-unroll-full-max-iterations */, 13393, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 607 | {13455 /* -pragma-unroll-threshold */, 13480, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 608 | {13556 /* -prefetch-distance */, 13575, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 609 | {13616 /* -reassociate-geps-verify-no-dead-code */, 13654, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 610 | {13693 /* -reassociate-use-cse-local */, 13720, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 611 | {13798 /* -replexitval */, 13811, 0, 0, 6, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 612 | {13969 /* -rotation-max-header-size */, 13995, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 613 | {14055 /* -rotation-prepare-for-lto */, 14081, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 614 | {14173 /* -rs4gc-allow-statepoint-with-no-deopt-info */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 615 | {14216 /* -rs4gc-remat-derived-at-uses */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 616 | {14245 /* -runtime-check-per-loop-load-elim */, 14279, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 617 | {14342 /* -simple-loop-unswitch-drop-non-trivial-implicit-null-checks */, 14402, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 618 | {14518 /* -simple-loop-unswitch-estimate-profile */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 619 | {14557 /* -simple-loop-unswitch-guards */, 14586, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 620 | {14699 /* -simple-loop-unswitch-inject-invariant-condition-hotness-threshold */, 14766, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 621 | {14903 /* -simple-loop-unswitch-inject-invariant-conditions */, 14953, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 622 | {15065 /* -simple-loop-unswitch-memoryssa-threshold */, 15107, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 623 | {15180 /* -sink-common-insts */, 15199, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 624 | {15224 /* -sink-freq-percent-threshold */, 15253, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 625 | {15354 /* -spec-exec-max-not-hoisted */, 15381, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 626 | {15527 /* -spec-exec-max-speculation-cost */, 15559, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 627 | {15691 /* -spec-exec-only-if-divergent-target */, 15727, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 628 | {15862 /* -speculate-unpredictables */, 15888, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 629 | {15921 /* -spp-all-backedges */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 630 | {15940 /* -spp-counted-loop-trip-width */, 50, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 631 | {15969 /* -spp-no-backedge */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 632 | {15986 /* -spp-no-call */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 633 | {15999 /* -spp-no-entry */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 634 | {16013 /* -spp-print-base-pointers */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 635 | {16038 /* -spp-print-liveset-size */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 636 | {16062 /* -spp-print-liveset */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 637 | {16081 /* -spp-rematerialization-threshold */, 50, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 638 | {16114 /* -spp-split-backedge */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 639 | {16134 /* -sroa-skip-mem2reg */, 50, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 640 | {16153 /* -structurizecfg-relaxed-uniform-regions */, 16193, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 641 | {16229 /* -structurizecfg-skip-uniform-regions */, 16266, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 642 | {16326 /* -switch-range-to-icmp */, 16348, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 643 | {16398 /* -switch-to-lookup */, 16416, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 644 | {16450 /* -tre-disable-entrycount-recompute */, 16484, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 645 | {16578 /* -unlikely-branch-weight */, 16602, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 646 | {16644 /* -unroll-allow-partial */, 16666, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 647 | {16749 /* -unroll-allow-remainder */, 16773, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 648 | {16851 /* -unroll-and-jam-count */, 16873, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 649 | {16987 /* -unroll-and-jam-threshold */, 17013, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 650 | {17071 /* -unroll-count */, 17085, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 651 | {17191 /* -unroll-full-max-count */, 17214, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 652 | {17280 /* -unroll-max-count */, 17298, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 653 | {17378 /* -unroll-max-iteration-count-to-analyze */, 17417, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 654 | {17532 /* -unroll-max-percent-threshold-boost */, 17568, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 655 | {17927 /* -unroll-max-upperbound */, 17950, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 656 | {18016 /* -unroll-optsize-threshold */, 18042, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 657 | {18105 /* -unroll-partial-threshold */, 18131, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 658 | {18177 /* -unroll-remainder */, 18195, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 659 | {18235 /* -unroll-revisit-child-loops */, 18263, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 660 | {18417 /* -unroll-runtime */, 18433, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 661 | {18472 /* -unroll-threshold-aggressive */, 18501, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 662 | {18579 /* -unroll-threshold-default */, 18605, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 663 | {18685 /* -unroll-threshold */, 18703, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 664 | {18741 /* -unswitch-num-initial-unscaled-candidates */, 18783, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 665 | {18863 /* -unswitch-parent-blocks-div */, 18891, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 666 | {18935 /* -unswitch-siblings-toplevel-div */, 18967, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 667 | {19013 /* -unswitch-threshold */, 19033, 0, 0, 1, 1, llvm::opt::Option::SeparateOrEqClass}, |
| 668 | {19075 /* -use-lir-code-size-heurs */, 19100, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 669 | {19176 /* -verify-matrix-shapes */, 19198, 0, 0, 1, 1, llvm::opt::Option::FlagOrEqClass}, |
| 670 | }; |
| 671 | |
| 672 | return {OptionStrTable, OptionPrefixesTable, |
| 673 | OptionInfoTable, OptionInfoExtrasTable, OptionHelpTextVariantsTable, {}, OptionSubCommandIDsTable}; |
| 674 | } |
| 675 | #undef OPTTABLE_CODE |
| 676 | #endif // OPTTABLE_CODE || OPTIONS_STRUCT_DEFS |
| 677 | |
| 678 | |
| 679 | #ifdef OPTIONS_STRUCT_DECL |
| 680 | #undef OPTIONS_STRUCT_DECL |
| 681 | #include "llvm/ADT/ArrayRef.h" |
| 682 | #include "llvm/ADT/BoolOrDefault.h" |
| 683 | #include "llvm/ADT/StringRef.h" |
| 684 | #include "llvm/Support/Allocator.h" |
| 685 | |
| 686 | namespace llvm { |
| 687 | namespace opt { |
| 688 | class Arg; |
| 689 | class OptTable; |
| 690 | } // namespace opt |
| 691 | } // namespace llvm |
| 692 | |
| 693 | namespace llvm { |
| 694 | struct ScalarOptions { |
| 695 | bool adce_remove_control_flow{true}; |
| 696 | bool adce_remove_loops{false}; |
| 697 | unsigned callsite_splitting_duplication_threshold{5}; |
| 698 | bool consthoist_gep{false}; |
| 699 | unsigned consthoist_min_num_to_rebase{0}; |
| 700 | bool consthoist_with_block_frequency{true}; |
| 701 | bool constraint_elimination_dump_reproducers{false}; |
| 702 | unsigned constraint_elimination_max_rows{500}; |
| 703 | unsigned dse_max_dom_cond_depth{1024}; |
| 704 | unsigned dse_memoryssa_defs_per_block_limit{5000}; |
| 705 | unsigned dse_memoryssa_otherbb_cost{5}; |
| 706 | unsigned dse_memoryssa_partial_store_limit{5}; |
| 707 | unsigned dse_memoryssa_path_check_limit{50}; |
| 708 | unsigned dse_memoryssa_samebb_cost{1}; |
| 709 | unsigned dse_memoryssa_scanlimit{150}; |
| 710 | unsigned dse_memoryssa_walklimit{90}; |
| 711 | bool dse_optimize_memoryssa{true}; |
| 712 | bool enable_dse_initializes_attr_improvement{true}; |
| 713 | bool enable_dse_partial_overwrite_tracking{true}; |
| 714 | bool enable_dse_partial_store_merging{true}; |
| 715 | unsigned dfa_cost_threshold{50}; |
| 716 | bool dfa_early_exit_heuristic{true}; |
| 717 | bool dfa_jump_view_cfg_before{false}; |
| 718 | double dfa_max_cloned_rate{7.5}; |
| 719 | unsigned dfa_max_num_paths{200}; |
| 720 | unsigned dfa_max_num_visited_paths{2500}; |
| 721 | unsigned dfa_max_out_use_blocks{40}; |
| 722 | unsigned dfa_max_path_length{20}; |
| 723 | bool earlycse_debug_hash{false}; |
| 724 | unsigned earlycse_mssa_optimization_cap{500}; |
| 725 | std::optional<unsigned> max_loads_per_memcmp{}; |
| 726 | std::optional<unsigned> max_loads_per_memcmp_opt_size{}; |
| 727 | std::optional<unsigned> memcmp_num_loads_per_block{}; |
| 728 | unsigned float2int_max_integer_bw{64}; |
| 729 | bool guard_widening_widen_branch_guards{true}; |
| 730 | llvm::BoolOrDefault enable_gvn_memdep{llvm::BoolOrDefault::Default}; |
| 731 | bool enable_gvn_memoryssa{false}; |
| 732 | bool enable_load_in_loop_pre{true}; |
| 733 | bool enable_load_pre{true}; |
| 734 | bool enable_scalar_pre{true}; |
| 735 | bool enable_split_backedge_in_load_pre{false}; |
| 736 | uint32_t gvn_max_block_speculations{600}; |
| 737 | uint32_t gvn_max_num_deps{100}; |
| 738 | uint32_t gvn_max_num_insns{100}; |
| 739 | uint32_t gvn_max_num_reaching_blocks{200}; |
| 740 | uint32_t gvn_max_num_visited_insts{100}; |
| 741 | unsigned gvn_scan_users_limit{100}; |
| 742 | int gvn_hoist_max_bbs{4}; |
| 743 | int gvn_hoist_max_chain_length{10}; |
| 744 | int gvn_hoist_max_depth{100}; |
| 745 | int gvn_max_hoisted{-1}; |
| 746 | bool irce_allow_narrow_latch{true}; |
| 747 | bool irce_allow_unsigned_latch{true}; |
| 748 | unsigned irce_loop_size_cutoff{64}; |
| 749 | unsigned irce_max_type_size_for_overflow_check{32}; |
| 750 | unsigned irce_min_eliminated_checks{10}; |
| 751 | bool irce_print_changed_loops{false}; |
| 752 | bool irce_print_range_checks{false}; |
| 753 | bool irce_print_scaled_boundary_range_checks{false}; |
| 754 | bool irce_skip_profitability_checks{false}; |
| 755 | bool disable_lftr{false}; |
| 756 | bool indvars_post_increment_ranges{true}; |
| 757 | bool indvars_predicate_loop_traps{true}; |
| 758 | bool indvars_predicate_loops{true}; |
| 759 | bool indvars_widen_indvars{true}; |
| 760 | ReplaceExitVal replexitval{OnlyCheapRepl}; |
| 761 | unsigned jump_table_to_switch_function_size_threshold{50}; |
| 762 | unsigned jump_table_to_switch_size_threshold{10}; |
| 763 | bool {false}; |
| 764 | unsigned jump_threading_implication_search_threshold{3}; |
| 765 | unsigned jump_threading_phi_threshold{76}; |
| 766 | std::optional<unsigned> jump_threading_threshold{}; |
| 767 | bool disable_licm_promotion{false}; |
| 768 | unsigned licm_max_num_fp_reassociations{5U}; |
| 769 | unsigned licm_max_num_int_reassociations{5U}; |
| 770 | uint32_t licm_max_num_uses_traversed{8}; |
| 771 | unsigned licm_mssa_max_acc_promotion{250}; |
| 772 | unsigned licm_mssa_optimization_cap{100}; |
| 773 | llvm::BoolOrDefault loop_prefetch_writes{llvm::BoolOrDefault::Default}; |
| 774 | std::optional<unsigned> max_prefetch_iters_ahead{}; |
| 775 | std::optional<unsigned> min_prefetch_stride{}; |
| 776 | std::optional<unsigned> prefetch_distance{}; |
| 777 | bool loop_deletion_enable_symbolic_execution{true}; |
| 778 | bool enable_loop_distribute{false}; |
| 779 | bool loop_distribute_non_if_convertible{false}; |
| 780 | unsigned loop_distribute_scev_check_threshold{8}; |
| 781 | unsigned loop_distribute_scev_check_threshold_with_pragma{128}; |
| 782 | bool loop_distribute_verify{false}; |
| 783 | bool loop_flatten_assume_no_overflow{false}; |
| 784 | unsigned loop_flatten_cost_threshold{2}; |
| 785 | bool loop_flatten_version_loops{true}; |
| 786 | bool loop_flatten_widen_iv{true}; |
| 787 | uint32_t loop_fusion_peel_max_count{0}; |
| 788 | CRCStrategyKind loop_idiom_crc_strategy{CRCStrategyKind::Auto}; |
| 789 | bool loop_idiom_force_memset_pattern_intrinsic{false}; |
| 790 | bool use_lir_code_size_heurs{true}; |
| 791 | unsigned loop_interchange_max_loop_nest_depth{10}; |
| 792 | unsigned loop_interchange_max_mem_instr_ratio{4}; |
| 793 | unsigned loop_interchange_min_loop_nest_depth{2}; |
| 794 | llvm::ArrayRef<LoopInterchangeRule> loop_interchange_profitabilities{}; |
| 795 | bool loop_interchange_reduction_to_mem{false}; |
| 796 | int loop_interchange_threshold{0}; |
| 797 | unsigned loop_load_elimination_scev_check_threshold{8}; |
| 798 | unsigned runtime_check_per_loop_load_elim{1}; |
| 799 | bool loop_predication_enable_count_down_loop{true}; |
| 800 | bool loop_predication_enable_iv_truncation{true}; |
| 801 | bool loop_predication_insert_assumes_of_predicated_guards_conditions{true}; |
| 802 | float loop_predication_latch_probability_scale{2.0}; |
| 803 | bool loop_predication_predicate_widenable_branches_to_deopt{true}; |
| 804 | bool loop_predication_skip_profitability_checks{false}; |
| 805 | bool {false}; |
| 806 | unsigned {16}; |
| 807 | bool rotation_prepare_for_lto{false}; |
| 808 | bool enable_loop_simplifycfg_term_folding{true}; |
| 809 | unsigned max_uses_for_sinking{30}; |
| 810 | unsigned sink_freq_percent_threshold{90}; |
| 811 | bool enable_lsr_phielim{true}; |
| 812 | unsigned lsr_complexity_limit{std::numeric_limits<uint16_t>::max()}; |
| 813 | bool lsr_drop_scaled_reg_for_vscale{true}; |
| 814 | llvm::BoolOrDefault lsr_drop_solution{llvm::BoolOrDefault::Default}; |
| 815 | bool lsr_enable_vscale_immediates{true}; |
| 816 | bool lsr_exp_narrow{false}; |
| 817 | bool lsr_filter_same_scaled_reg{true}; |
| 818 | llvm::BoolOrDefault lsr_insns_cost{llvm::BoolOrDefault::Default}; |
| 819 | std::optional<TargetTransformInfo::AddressingModeKind> lsr_preferred_addressing_mode{}; |
| 820 | unsigned lsr_setupcost_depth_limit{7}; |
| 821 | llvm::BoolOrDefault allow_unroll_and_jam{llvm::BoolOrDefault::Default}; |
| 822 | unsigned pragma_unroll_and_jam_threshold{1024}; |
| 823 | std::optional<unsigned> unroll_and_jam_count{}; |
| 824 | std::optional<unsigned> unroll_and_jam_threshold{}; |
| 825 | unsigned flat_loop_tripcount_threshold{5}; |
| 826 | bool forget_scev_loop_unroll{false}; |
| 827 | unsigned pragma_unroll_full_max_iterations{1'000'000}; |
| 828 | unsigned pragma_unroll_threshold{16 * 1024}; |
| 829 | llvm::BoolOrDefault unroll_allow_partial{llvm::BoolOrDefault::Default}; |
| 830 | llvm::BoolOrDefault unroll_allow_remainder{llvm::BoolOrDefault::Default}; |
| 831 | std::optional<unsigned> unroll_count{}; |
| 832 | std::optional<unsigned> unroll_full_max_count{}; |
| 833 | std::optional<unsigned> unroll_max_count{}; |
| 834 | std::optional<unsigned> unroll_max_iteration_count_to_analyze{}; |
| 835 | std::optional<unsigned> unroll_max_percent_threshold_boost{}; |
| 836 | std::optional<unsigned> unroll_max_upperbound{}; |
| 837 | unsigned unroll_optsize_threshold{0}; |
| 838 | std::optional<unsigned> unroll_partial_threshold{}; |
| 839 | llvm::BoolOrDefault unroll_remainder{llvm::BoolOrDefault::Default}; |
| 840 | bool unroll_revisit_child_loops{false}; |
| 841 | llvm::BoolOrDefault unroll_runtime{llvm::BoolOrDefault::Default}; |
| 842 | std::optional<unsigned> unroll_threshold{}; |
| 843 | unsigned unroll_threshold_aggressive{300}; |
| 844 | unsigned unroll_threshold_default{150}; |
| 845 | float licm_versioning_invariant_threshold{25}; |
| 846 | unsigned licm_versioning_max_depth_threshold{2}; |
| 847 | uint32_t likely_branch_weight{2000}; |
| 848 | uint32_t unlikely_branch_weight{1}; |
| 849 | bool force_fuse_matrix{false}; |
| 850 | bool fuse_matrix{true}; |
| 851 | unsigned fuse_matrix_loops_threshold{200}; |
| 852 | unsigned fuse_matrix_tile_size{4}; |
| 853 | bool matrix_allow_contract{false}; |
| 854 | MatrixLayoutTy matrix_default_layout{MatrixLayoutTy::ColumnMajor}; |
| 855 | bool matrix_print_after_transpose_opt{false}; |
| 856 | unsigned matrix_split_matmul_remainder_over_threshold{0}; |
| 857 | bool verify_matrix_shapes{false}; |
| 858 | bool enable_phi_of_ops{true}; |
| 859 | bool enable_store_refinement{false}; |
| 860 | bool spp_all_backedges{false}; |
| 861 | int spp_counted_loop_trip_width{32}; |
| 862 | bool spp_no_backedge{false}; |
| 863 | bool spp_no_call{false}; |
| 864 | bool spp_no_entry{false}; |
| 865 | bool spp_split_backedge{false}; |
| 866 | bool reassociate_use_cse_local{true}; |
| 867 | bool rs4gc_allow_statepoint_with_no_deopt_info{true}; |
| 868 | bool rs4gc_remat_derived_at_uses{true}; |
| 869 | bool spp_print_base_pointers{false}; |
| 870 | bool spp_print_liveset{false}; |
| 871 | bool spp_print_liveset_size{false}; |
| 872 | unsigned spp_rematerialization_threshold{6}; |
| 873 | bool disable_separate_const_offset_from_gep{false}; |
| 874 | bool reassociate_geps_verify_no_dead_code{false}; |
| 875 | bool enable_nontrivial_unswitch{false}; |
| 876 | bool enable_unswitch_cost_multiplier{true}; |
| 877 | bool freeze_loop_unswitch_cond{true}; |
| 878 | bool simple_loop_unswitch_drop_non_trivial_implicit_null_checks{false}; |
| 879 | bool simple_loop_unswitch_estimate_profile{true}; |
| 880 | bool simple_loop_unswitch_guards{true}; |
| 881 | unsigned simple_loop_unswitch_inject_invariant_condition_hotness_threshold{16}; |
| 882 | bool simple_loop_unswitch_inject_invariant_conditions{true}; |
| 883 | unsigned simple_loop_unswitch_memoryssa_threshold{100}; |
| 884 | int unswitch_num_initial_unscaled_candidates{8}; |
| 885 | int unswitch_parent_blocks_div{8}; |
| 886 | int unswitch_siblings_toplevel_div{2}; |
| 887 | int unswitch_threshold{50}; |
| 888 | std::optional<unsigned> bonus_inst_threshold{}; |
| 889 | llvm::BoolOrDefault forward_switch_cond{llvm::BoolOrDefault::Default}; |
| 890 | llvm::BoolOrDefault hoist_common_insts{llvm::BoolOrDefault::Default}; |
| 891 | llvm::BoolOrDefault hoist_loads_stores_with_cond_faulting{llvm::BoolOrDefault::Default}; |
| 892 | llvm::BoolOrDefault keep_loops{llvm::BoolOrDefault::Default}; |
| 893 | llvm::BoolOrDefault sink_common_insts{llvm::BoolOrDefault::Default}; |
| 894 | llvm::BoolOrDefault speculate_unpredictables{llvm::BoolOrDefault::Default}; |
| 895 | llvm::BoolOrDefault switch_range_to_icmp{llvm::BoolOrDefault::Default}; |
| 896 | llvm::BoolOrDefault switch_to_lookup{llvm::BoolOrDefault::Default}; |
| 897 | unsigned spec_exec_max_not_hoisted{5}; |
| 898 | unsigned spec_exec_max_speculation_cost{7}; |
| 899 | bool spec_exec_only_if_divergent_target{false}; |
| 900 | bool sroa_skip_mem2reg{false}; |
| 901 | bool enable_poison_reuse_guard{true}; |
| 902 | bool structurizecfg_relaxed_uniform_regions{true}; |
| 903 | llvm::BoolOrDefault structurizecfg_skip_uniform_regions{llvm::BoolOrDefault::Default}; |
| 904 | bool disable_tail_call_elim_for_cold_calls{false}; |
| 905 | bool tre_disable_entrycount_recompute{false}; |
| 906 | |
| 907 | /// The instance cl::ParseCommandLineOptions sets. |
| 908 | static ScalarOptions Global; |
| 909 | |
| 910 | static const llvm::opt::OptTable &optTable(); |
| 911 | /// Sets the member that \p A names, allocating a list from \p Alloc. |
| 912 | /// Returns false if the value is invalid. |
| 913 | bool apply(const llvm::opt::Arg &A, llvm::BumpPtrAllocator &Alloc); |
| 914 | }; |
| 915 | } // namespace llvm |
| 916 | #endif // OPTIONS_STRUCT_DECL |
| 917 | |
| 918 | #ifdef OPTIONS_STRUCT_DEFS |
| 919 | #undef OPTIONS_STRUCT_DEFS |
| 920 | llvm::ScalarOptions llvm::ScalarOptions::Global; |
| 921 | |
| 922 | namespace { |
| 923 | enum ID : unsigned { |
| 924 | OPT_INVALID = 0, |
| 925 | OPT_INPUT, |
| 926 | OPT_UNKNOWN, |
| 927 | OPT_adce_remove_control_flow, |
| 928 | OPT_adce_remove_loops, |
| 929 | OPT_allow_unroll_and_jam, |
| 930 | OPT_bonus_inst_threshold, |
| 931 | OPT_callsite_splitting_duplication_threshold, |
| 932 | OPT_consthoist_gep, |
| 933 | OPT_consthoist_min_num_to_rebase, |
| 934 | OPT_consthoist_with_block_frequency, |
| 935 | OPT_constraint_elimination_dump_reproducers, |
| 936 | OPT_constraint_elimination_max_rows, |
| 937 | OPT_dfa_cost_threshold, |
| 938 | OPT_dfa_early_exit_heuristic, |
| 939 | OPT_dfa_jump_view_cfg_before, |
| 940 | OPT_dfa_max_cloned_rate, |
| 941 | OPT_dfa_max_num_paths, |
| 942 | OPT_dfa_max_num_visited_paths, |
| 943 | OPT_dfa_max_out_use_blocks, |
| 944 | OPT_dfa_max_path_length, |
| 945 | OPT_disable_lftr, |
| 946 | OPT_disable_licm_promotion, |
| 947 | OPT_disable_separate_const_offset_from_gep, |
| 948 | OPT_disable_tail_call_elim_for_cold_calls, |
| 949 | OPT_dse_max_dom_cond_depth, |
| 950 | OPT_dse_memoryssa_defs_per_block_limit, |
| 951 | OPT_dse_memoryssa_otherbb_cost, |
| 952 | OPT_dse_memoryssa_partial_store_limit, |
| 953 | OPT_dse_memoryssa_path_check_limit, |
| 954 | OPT_dse_memoryssa_samebb_cost, |
| 955 | OPT_dse_memoryssa_scanlimit, |
| 956 | OPT_dse_memoryssa_walklimit, |
| 957 | OPT_dse_optimize_memoryssa, |
| 958 | OPT_earlycse_debug_hash, |
| 959 | OPT_earlycse_mssa_optimization_cap, |
| 960 | OPT_enable_dse_initializes_attr_improvement, |
| 961 | OPT_enable_dse_partial_overwrite_tracking, |
| 962 | OPT_enable_dse_partial_store_merging, |
| 963 | OPT_enable_gvn_memdep, |
| 964 | OPT_enable_gvn_memoryssa, |
| 965 | OPT_enable_load_in_loop_pre, |
| 966 | OPT_enable_load_pre, |
| 967 | OPT_enable_loop_distribute, |
| 968 | OPT_enable_loop_header_duplication_at_minsize, |
| 969 | OPT_enable_loop_simplifycfg_term_folding, |
| 970 | OPT_enable_lsr_phielim, |
| 971 | OPT_enable_nontrivial_unswitch, |
| 972 | OPT_enable_phi_of_ops, |
| 973 | OPT_enable_poison_reuse_guard, |
| 974 | OPT_enable_scalar_pre, |
| 975 | OPT_enable_split_backedge_in_load_pre, |
| 976 | OPT_enable_store_refinement, |
| 977 | OPT_enable_unswitch_cost_multiplier, |
| 978 | OPT_flat_loop_tripcount_threshold, |
| 979 | OPT_float2int_max_integer_bw, |
| 980 | OPT_force_fuse_matrix, |
| 981 | OPT_forget_scev_loop_unroll, |
| 982 | OPT_forward_switch_cond, |
| 983 | OPT_freeze_loop_unswitch_cond, |
| 984 | OPT_fuse_matrix_loops_threshold, |
| 985 | OPT_fuse_matrix_tile_size, |
| 986 | OPT_fuse_matrix, |
| 987 | OPT_guard_widening_widen_branch_guards, |
| 988 | OPT_gvn_hoist_max_bbs, |
| 989 | OPT_gvn_hoist_max_chain_length, |
| 990 | OPT_gvn_hoist_max_depth, |
| 991 | OPT_gvn_max_block_speculations, |
| 992 | OPT_gvn_max_hoisted, |
| 993 | OPT_gvn_max_num_deps, |
| 994 | OPT_gvn_max_num_insns, |
| 995 | OPT_gvn_max_num_reaching_blocks, |
| 996 | OPT_gvn_max_num_visited_insts, |
| 997 | OPT_gvn_scan_users_limit, |
| 998 | OPT_hoist_common_insts, |
| 999 | OPT_hoist_loads_stores_with_cond_faulting, |
| 1000 | OPT_indvars_post_increment_ranges, |
| 1001 | OPT_indvars_predicate_loop_traps, |
| 1002 | OPT_indvars_predicate_loops, |
| 1003 | OPT_indvars_widen_indvars, |
| 1004 | OPT_irce_allow_narrow_latch, |
| 1005 | OPT_irce_allow_unsigned_latch, |
| 1006 | OPT_irce_loop_size_cutoff, |
| 1007 | OPT_irce_max_type_size_for_overflow_check, |
| 1008 | OPT_irce_min_eliminated_checks, |
| 1009 | OPT_irce_print_changed_loops, |
| 1010 | OPT_irce_print_range_checks, |
| 1011 | OPT_irce_print_scaled_boundary_range_checks, |
| 1012 | OPT_irce_skip_profitability_checks, |
| 1013 | OPT_jump_table_to_switch_function_size_threshold, |
| 1014 | OPT_jump_table_to_switch_size_threshold, |
| 1015 | OPT_jump_threading_across_loop_headers, |
| 1016 | OPT_jump_threading_implication_search_threshold, |
| 1017 | OPT_jump_threading_phi_threshold, |
| 1018 | OPT_jump_threading_threshold, |
| 1019 | OPT_keep_loops, |
| 1020 | OPT_licm_max_num_fp_reassociations, |
| 1021 | OPT_licm_max_num_int_reassociations, |
| 1022 | OPT_licm_max_num_uses_traversed, |
| 1023 | OPT_licm_mssa_max_acc_promotion, |
| 1024 | OPT_licm_mssa_optimization_cap, |
| 1025 | OPT_licm_versioning_invariant_threshold, |
| 1026 | OPT_licm_versioning_max_depth_threshold, |
| 1027 | OPT_likely_branch_weight, |
| 1028 | OPT_loop_deletion_enable_symbolic_execution, |
| 1029 | OPT_loop_distribute_non_if_convertible, |
| 1030 | OPT_loop_distribute_scev_check_threshold_with_pragma, |
| 1031 | OPT_loop_distribute_scev_check_threshold, |
| 1032 | OPT_loop_distribute_verify, |
| 1033 | OPT_loop_flatten_assume_no_overflow, |
| 1034 | OPT_loop_flatten_cost_threshold, |
| 1035 | OPT_loop_flatten_version_loops, |
| 1036 | OPT_loop_flatten_widen_iv, |
| 1037 | OPT_loop_fusion_peel_max_count, |
| 1038 | OPT_loop_idiom_crc_strategy, |
| 1039 | OPT_loop_idiom_force_memset_pattern_intrinsic, |
| 1040 | OPT_loop_interchange_max_loop_nest_depth, |
| 1041 | OPT_loop_interchange_max_mem_instr_ratio, |
| 1042 | OPT_loop_interchange_min_loop_nest_depth, |
| 1043 | OPT_loop_interchange_profitabilities, |
| 1044 | OPT_loop_interchange_reduction_to_mem, |
| 1045 | OPT_loop_interchange_threshold, |
| 1046 | OPT_loop_load_elimination_scev_check_threshold, |
| 1047 | OPT_loop_predication_enable_count_down_loop, |
| 1048 | OPT_loop_predication_enable_iv_truncation, |
| 1049 | OPT_loop_predication_insert_assumes_of_predicated_guards_conditions, |
| 1050 | OPT_loop_predication_latch_probability_scale, |
| 1051 | OPT_loop_predication_predicate_widenable_branches_to_deopt, |
| 1052 | OPT_loop_predication_skip_profitability_checks, |
| 1053 | OPT_loop_prefetch_writes, |
| 1054 | OPT_lsr_complexity_limit, |
| 1055 | OPT_lsr_drop_scaled_reg_for_vscale, |
| 1056 | OPT_lsr_drop_solution, |
| 1057 | OPT_lsr_enable_vscale_immediates, |
| 1058 | OPT_lsr_exp_narrow, |
| 1059 | OPT_lsr_filter_same_scaled_reg, |
| 1060 | OPT_lsr_insns_cost, |
| 1061 | OPT_lsr_preferred_addressing_mode, |
| 1062 | OPT_lsr_setupcost_depth_limit, |
| 1063 | OPT_matrix_allow_contract, |
| 1064 | OPT_matrix_default_layout, |
| 1065 | OPT_matrix_print_after_transpose_opt, |
| 1066 | OPT_matrix_split_matmul_remainder_over_threshold, |
| 1067 | OPT_max_loads_per_memcmp_opt_size, |
| 1068 | OPT_max_loads_per_memcmp, |
| 1069 | OPT_max_prefetch_iters_ahead, |
| 1070 | OPT_max_uses_for_sinking, |
| 1071 | OPT_memcmp_num_loads_per_block, |
| 1072 | OPT_min_prefetch_stride, |
| 1073 | OPT_pragma_unroll_and_jam_threshold, |
| 1074 | OPT_pragma_unroll_full_max_iterations, |
| 1075 | OPT_pragma_unroll_threshold, |
| 1076 | OPT_prefetch_distance, |
| 1077 | OPT_reassociate_geps_verify_no_dead_code, |
| 1078 | OPT_reassociate_use_cse_local, |
| 1079 | OPT_replexitval, |
| 1080 | OPT_rotation_max_header_size, |
| 1081 | OPT_rotation_prepare_for_lto, |
| 1082 | OPT_rs4gc_allow_statepoint_with_no_deopt_info, |
| 1083 | OPT_rs4gc_remat_derived_at_uses, |
| 1084 | OPT_runtime_check_per_loop_load_elim, |
| 1085 | OPT_simple_loop_unswitch_drop_non_trivial_implicit_null_checks, |
| 1086 | OPT_simple_loop_unswitch_estimate_profile, |
| 1087 | OPT_simple_loop_unswitch_guards, |
| 1088 | OPT_simple_loop_unswitch_inject_invariant_condition_hotness_threshold, |
| 1089 | OPT_simple_loop_unswitch_inject_invariant_conditions, |
| 1090 | OPT_simple_loop_unswitch_memoryssa_threshold, |
| 1091 | OPT_sink_common_insts, |
| 1092 | OPT_sink_freq_percent_threshold, |
| 1093 | OPT_spec_exec_max_not_hoisted, |
| 1094 | OPT_spec_exec_max_speculation_cost, |
| 1095 | OPT_spec_exec_only_if_divergent_target, |
| 1096 | OPT_speculate_unpredictables, |
| 1097 | OPT_spp_all_backedges, |
| 1098 | OPT_spp_counted_loop_trip_width, |
| 1099 | OPT_spp_no_backedge, |
| 1100 | OPT_spp_no_call, |
| 1101 | OPT_spp_no_entry, |
| 1102 | OPT_spp_print_base_pointers, |
| 1103 | OPT_spp_print_liveset_size, |
| 1104 | OPT_spp_print_liveset, |
| 1105 | OPT_spp_rematerialization_threshold, |
| 1106 | OPT_spp_split_backedge, |
| 1107 | OPT_sroa_skip_mem2reg, |
| 1108 | OPT_structurizecfg_relaxed_uniform_regions, |
| 1109 | OPT_structurizecfg_skip_uniform_regions, |
| 1110 | OPT_switch_range_to_icmp, |
| 1111 | OPT_switch_to_lookup, |
| 1112 | OPT_tre_disable_entrycount_recompute, |
| 1113 | OPT_unlikely_branch_weight, |
| 1114 | OPT_unroll_allow_partial, |
| 1115 | OPT_unroll_allow_remainder, |
| 1116 | OPT_unroll_and_jam_count, |
| 1117 | OPT_unroll_and_jam_threshold, |
| 1118 | OPT_unroll_count, |
| 1119 | OPT_unroll_full_max_count, |
| 1120 | OPT_unroll_max_count, |
| 1121 | OPT_unroll_max_iteration_count_to_analyze, |
| 1122 | OPT_unroll_max_percent_threshold_boost, |
| 1123 | OPT_unroll_max_upperbound, |
| 1124 | OPT_unroll_optsize_threshold, |
| 1125 | OPT_unroll_partial_threshold, |
| 1126 | OPT_unroll_remainder, |
| 1127 | OPT_unroll_revisit_child_loops, |
| 1128 | OPT_unroll_runtime, |
| 1129 | OPT_unroll_threshold_aggressive, |
| 1130 | OPT_unroll_threshold_default, |
| 1131 | OPT_unroll_threshold, |
| 1132 | OPT_unswitch_num_initial_unscaled_candidates, |
| 1133 | OPT_unswitch_parent_blocks_div, |
| 1134 | OPT_unswitch_siblings_toplevel_div, |
| 1135 | OPT_unswitch_threshold, |
| 1136 | OPT_use_lir_code_size_heurs, |
| 1137 | OPT_verify_matrix_shapes, |
| 1138 | }; |
| 1139 | } // namespace |
| 1140 | |
| 1141 | const llvm::opt::OptTable &llvm::ScalarOptions::optTable() { |
| 1142 | static const llvm::opt::LibraryOptTable T(optionTables()); |
| 1143 | return T; |
| 1144 | } |
| 1145 | |
| 1146 | bool llvm::ScalarOptions::apply(const llvm::opt::Arg &A, llvm::BumpPtrAllocator &Alloc) { |
| 1147 | switch (A.getOption().getID()) { |
| 1148 | case OPT_adce_remove_control_flow: |
| 1149 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , adce_remove_control_flow, Alloc); |
| 1150 | case OPT_adce_remove_loops: |
| 1151 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , adce_remove_loops, Alloc); |
| 1152 | case OPT_allow_unroll_and_jam: |
| 1153 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , allow_unroll_and_jam, Alloc); |
| 1154 | case OPT_bonus_inst_threshold: |
| 1155 | return llvm::opt::parseArgValue(A.getValue(), bonus_inst_threshold, Alloc); |
| 1156 | case OPT_callsite_splitting_duplication_threshold: |
| 1157 | return llvm::opt::parseArgValue(A.getValue(), callsite_splitting_duplication_threshold, Alloc); |
| 1158 | case OPT_consthoist_gep: |
| 1159 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , consthoist_gep, Alloc); |
| 1160 | case OPT_consthoist_min_num_to_rebase: |
| 1161 | return llvm::opt::parseArgValue(A.getValue(), consthoist_min_num_to_rebase, Alloc); |
| 1162 | case OPT_consthoist_with_block_frequency: |
| 1163 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , consthoist_with_block_frequency, Alloc); |
| 1164 | case OPT_constraint_elimination_dump_reproducers: |
| 1165 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , constraint_elimination_dump_reproducers, Alloc); |
| 1166 | case OPT_constraint_elimination_max_rows: |
| 1167 | return llvm::opt::parseArgValue(A.getValue(), constraint_elimination_max_rows, Alloc); |
| 1168 | case OPT_dfa_cost_threshold: |
| 1169 | return llvm::opt::parseArgValue(A.getValue(), dfa_cost_threshold, Alloc); |
| 1170 | case OPT_dfa_early_exit_heuristic: |
| 1171 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , dfa_early_exit_heuristic, Alloc); |
| 1172 | case OPT_dfa_jump_view_cfg_before: |
| 1173 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , dfa_jump_view_cfg_before, Alloc); |
| 1174 | case OPT_dfa_max_cloned_rate: |
| 1175 | return llvm::opt::parseArgValue(A.getValue(), dfa_max_cloned_rate, Alloc); |
| 1176 | case OPT_dfa_max_num_paths: |
| 1177 | return llvm::opt::parseArgValue(A.getValue(), dfa_max_num_paths, Alloc); |
| 1178 | case OPT_dfa_max_num_visited_paths: |
| 1179 | return llvm::opt::parseArgValue(A.getValue(), dfa_max_num_visited_paths, Alloc); |
| 1180 | case OPT_dfa_max_out_use_blocks: |
| 1181 | return llvm::opt::parseArgValue(A.getValue(), dfa_max_out_use_blocks, Alloc); |
| 1182 | case OPT_dfa_max_path_length: |
| 1183 | return llvm::opt::parseArgValue(A.getValue(), dfa_max_path_length, Alloc); |
| 1184 | case OPT_disable_lftr: |
| 1185 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , disable_lftr, Alloc); |
| 1186 | case OPT_disable_licm_promotion: |
| 1187 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , disable_licm_promotion, Alloc); |
| 1188 | case OPT_disable_separate_const_offset_from_gep: |
| 1189 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , disable_separate_const_offset_from_gep, Alloc); |
| 1190 | case OPT_disable_tail_call_elim_for_cold_calls: |
| 1191 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , disable_tail_call_elim_for_cold_calls, Alloc); |
| 1192 | case OPT_dse_max_dom_cond_depth: |
| 1193 | return llvm::opt::parseArgValue(A.getValue(), dse_max_dom_cond_depth, Alloc); |
| 1194 | case OPT_dse_memoryssa_defs_per_block_limit: |
| 1195 | return llvm::opt::parseArgValue(A.getValue(), dse_memoryssa_defs_per_block_limit, Alloc); |
| 1196 | case OPT_dse_memoryssa_otherbb_cost: |
| 1197 | return llvm::opt::parseArgValue(A.getValue(), dse_memoryssa_otherbb_cost, Alloc); |
| 1198 | case OPT_dse_memoryssa_partial_store_limit: |
| 1199 | return llvm::opt::parseArgValue(A.getValue(), dse_memoryssa_partial_store_limit, Alloc); |
| 1200 | case OPT_dse_memoryssa_path_check_limit: |
| 1201 | return llvm::opt::parseArgValue(A.getValue(), dse_memoryssa_path_check_limit, Alloc); |
| 1202 | case OPT_dse_memoryssa_samebb_cost: |
| 1203 | return llvm::opt::parseArgValue(A.getValue(), dse_memoryssa_samebb_cost, Alloc); |
| 1204 | case OPT_dse_memoryssa_scanlimit: |
| 1205 | return llvm::opt::parseArgValue(A.getValue(), dse_memoryssa_scanlimit, Alloc); |
| 1206 | case OPT_dse_memoryssa_walklimit: |
| 1207 | return llvm::opt::parseArgValue(A.getValue(), dse_memoryssa_walklimit, Alloc); |
| 1208 | case OPT_dse_optimize_memoryssa: |
| 1209 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , dse_optimize_memoryssa, Alloc); |
| 1210 | case OPT_earlycse_debug_hash: |
| 1211 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , earlycse_debug_hash, Alloc); |
| 1212 | case OPT_earlycse_mssa_optimization_cap: |
| 1213 | return llvm::opt::parseArgValue(A.getValue(), earlycse_mssa_optimization_cap, Alloc); |
| 1214 | case OPT_enable_dse_initializes_attr_improvement: |
| 1215 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , enable_dse_initializes_attr_improvement, Alloc); |
| 1216 | case OPT_enable_dse_partial_overwrite_tracking: |
| 1217 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , enable_dse_partial_overwrite_tracking, Alloc); |
| 1218 | case OPT_enable_dse_partial_store_merging: |
| 1219 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , enable_dse_partial_store_merging, Alloc); |
| 1220 | case OPT_enable_gvn_memdep: |
| 1221 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , enable_gvn_memdep, Alloc); |
| 1222 | case OPT_enable_gvn_memoryssa: |
| 1223 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , enable_gvn_memoryssa, Alloc); |
| 1224 | case OPT_enable_load_in_loop_pre: |
| 1225 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , enable_load_in_loop_pre, Alloc); |
| 1226 | case OPT_enable_load_pre: |
| 1227 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , enable_load_pre, Alloc); |
| 1228 | case OPT_enable_loop_distribute: |
| 1229 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , enable_loop_distribute, Alloc); |
| 1230 | case OPT_enable_loop_header_duplication_at_minsize: |
| 1231 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , enable_loop_header_duplication_at_minsize, Alloc); |
| 1232 | case OPT_enable_loop_simplifycfg_term_folding: |
| 1233 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , enable_loop_simplifycfg_term_folding, Alloc); |
| 1234 | case OPT_enable_lsr_phielim: |
| 1235 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , enable_lsr_phielim, Alloc); |
| 1236 | case OPT_enable_nontrivial_unswitch: |
| 1237 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , enable_nontrivial_unswitch, Alloc); |
| 1238 | case OPT_enable_phi_of_ops: |
| 1239 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , enable_phi_of_ops, Alloc); |
| 1240 | case OPT_enable_poison_reuse_guard: |
| 1241 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , enable_poison_reuse_guard, Alloc); |
| 1242 | case OPT_enable_scalar_pre: |
| 1243 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , enable_scalar_pre, Alloc); |
| 1244 | case OPT_enable_split_backedge_in_load_pre: |
| 1245 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , enable_split_backedge_in_load_pre, Alloc); |
| 1246 | case OPT_enable_store_refinement: |
| 1247 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , enable_store_refinement, Alloc); |
| 1248 | case OPT_enable_unswitch_cost_multiplier: |
| 1249 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , enable_unswitch_cost_multiplier, Alloc); |
| 1250 | case OPT_flat_loop_tripcount_threshold: |
| 1251 | return llvm::opt::parseArgValue(A.getValue(), flat_loop_tripcount_threshold, Alloc); |
| 1252 | case OPT_float2int_max_integer_bw: |
| 1253 | return llvm::opt::parseArgValue(A.getValue(), float2int_max_integer_bw, Alloc); |
| 1254 | case OPT_force_fuse_matrix: |
| 1255 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , force_fuse_matrix, Alloc); |
| 1256 | case OPT_forget_scev_loop_unroll: |
| 1257 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , forget_scev_loop_unroll, Alloc); |
| 1258 | case OPT_forward_switch_cond: |
| 1259 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , forward_switch_cond, Alloc); |
| 1260 | case OPT_freeze_loop_unswitch_cond: |
| 1261 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , freeze_loop_unswitch_cond, Alloc); |
| 1262 | case OPT_fuse_matrix_loops_threshold: |
| 1263 | return llvm::opt::parseArgValue(A.getValue(), fuse_matrix_loops_threshold, Alloc); |
| 1264 | case OPT_fuse_matrix_tile_size: |
| 1265 | return llvm::opt::parseArgValue(A.getValue(), fuse_matrix_tile_size, Alloc); |
| 1266 | case OPT_fuse_matrix: |
| 1267 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , fuse_matrix, Alloc); |
| 1268 | case OPT_guard_widening_widen_branch_guards: |
| 1269 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , guard_widening_widen_branch_guards, Alloc); |
| 1270 | case OPT_gvn_hoist_max_bbs: |
| 1271 | return llvm::opt::parseArgValue(A.getValue(), gvn_hoist_max_bbs, Alloc); |
| 1272 | case OPT_gvn_hoist_max_chain_length: |
| 1273 | return llvm::opt::parseArgValue(A.getValue(), gvn_hoist_max_chain_length, Alloc); |
| 1274 | case OPT_gvn_hoist_max_depth: |
| 1275 | return llvm::opt::parseArgValue(A.getValue(), gvn_hoist_max_depth, Alloc); |
| 1276 | case OPT_gvn_max_block_speculations: |
| 1277 | return llvm::opt::parseArgValue(A.getValue(), gvn_max_block_speculations, Alloc); |
| 1278 | case OPT_gvn_max_hoisted: |
| 1279 | return llvm::opt::parseArgValue(A.getValue(), gvn_max_hoisted, Alloc); |
| 1280 | case OPT_gvn_max_num_deps: |
| 1281 | return llvm::opt::parseArgValue(A.getValue(), gvn_max_num_deps, Alloc); |
| 1282 | case OPT_gvn_max_num_insns: |
| 1283 | return llvm::opt::parseArgValue(A.getValue(), gvn_max_num_insns, Alloc); |
| 1284 | case OPT_gvn_max_num_reaching_blocks: |
| 1285 | return llvm::opt::parseArgValue(A.getValue(), gvn_max_num_reaching_blocks, Alloc); |
| 1286 | case OPT_gvn_max_num_visited_insts: |
| 1287 | return llvm::opt::parseArgValue(A.getValue(), gvn_max_num_visited_insts, Alloc); |
| 1288 | case OPT_gvn_scan_users_limit: |
| 1289 | return llvm::opt::parseArgValue(A.getValue(), gvn_scan_users_limit, Alloc); |
| 1290 | case OPT_hoist_common_insts: |
| 1291 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , hoist_common_insts, Alloc); |
| 1292 | case OPT_hoist_loads_stores_with_cond_faulting: |
| 1293 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , hoist_loads_stores_with_cond_faulting, Alloc); |
| 1294 | case OPT_indvars_post_increment_ranges: |
| 1295 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , indvars_post_increment_ranges, Alloc); |
| 1296 | case OPT_indvars_predicate_loop_traps: |
| 1297 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , indvars_predicate_loop_traps, Alloc); |
| 1298 | case OPT_indvars_predicate_loops: |
| 1299 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , indvars_predicate_loops, Alloc); |
| 1300 | case OPT_indvars_widen_indvars: |
| 1301 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , indvars_widen_indvars, Alloc); |
| 1302 | case OPT_irce_allow_narrow_latch: |
| 1303 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , irce_allow_narrow_latch, Alloc); |
| 1304 | case OPT_irce_allow_unsigned_latch: |
| 1305 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , irce_allow_unsigned_latch, Alloc); |
| 1306 | case OPT_irce_loop_size_cutoff: |
| 1307 | return llvm::opt::parseArgValue(A.getValue(), irce_loop_size_cutoff, Alloc); |
| 1308 | case OPT_irce_max_type_size_for_overflow_check: |
| 1309 | return llvm::opt::parseArgValue(A.getValue(), irce_max_type_size_for_overflow_check, Alloc); |
| 1310 | case OPT_irce_min_eliminated_checks: |
| 1311 | return llvm::opt::parseArgValue(A.getValue(), irce_min_eliminated_checks, Alloc); |
| 1312 | case OPT_irce_print_changed_loops: |
| 1313 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , irce_print_changed_loops, Alloc); |
| 1314 | case OPT_irce_print_range_checks: |
| 1315 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , irce_print_range_checks, Alloc); |
| 1316 | case OPT_irce_print_scaled_boundary_range_checks: |
| 1317 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , irce_print_scaled_boundary_range_checks, Alloc); |
| 1318 | case OPT_irce_skip_profitability_checks: |
| 1319 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , irce_skip_profitability_checks, Alloc); |
| 1320 | case OPT_jump_table_to_switch_function_size_threshold: |
| 1321 | return llvm::opt::parseArgValue(A.getValue(), jump_table_to_switch_function_size_threshold, Alloc); |
| 1322 | case OPT_jump_table_to_switch_size_threshold: |
| 1323 | return llvm::opt::parseArgValue(A.getValue(), jump_table_to_switch_size_threshold, Alloc); |
| 1324 | case OPT_jump_threading_across_loop_headers: |
| 1325 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , jump_threading_across_loop_headers, Alloc); |
| 1326 | case OPT_jump_threading_implication_search_threshold: |
| 1327 | return llvm::opt::parseArgValue(A.getValue(), jump_threading_implication_search_threshold, Alloc); |
| 1328 | case OPT_jump_threading_phi_threshold: |
| 1329 | return llvm::opt::parseArgValue(A.getValue(), jump_threading_phi_threshold, Alloc); |
| 1330 | case OPT_jump_threading_threshold: |
| 1331 | return llvm::opt::parseArgValue(A.getValue(), jump_threading_threshold, Alloc); |
| 1332 | case OPT_keep_loops: |
| 1333 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , keep_loops, Alloc); |
| 1334 | case OPT_licm_max_num_fp_reassociations: |
| 1335 | return llvm::opt::parseArgValue(A.getValue(), licm_max_num_fp_reassociations, Alloc); |
| 1336 | case OPT_licm_max_num_int_reassociations: |
| 1337 | return llvm::opt::parseArgValue(A.getValue(), licm_max_num_int_reassociations, Alloc); |
| 1338 | case OPT_licm_max_num_uses_traversed: |
| 1339 | return llvm::opt::parseArgValue(A.getValue(), licm_max_num_uses_traversed, Alloc); |
| 1340 | case OPT_licm_mssa_max_acc_promotion: |
| 1341 | return llvm::opt::parseArgValue(A.getValue(), licm_mssa_max_acc_promotion, Alloc); |
| 1342 | case OPT_licm_mssa_optimization_cap: |
| 1343 | return llvm::opt::parseArgValue(A.getValue(), licm_mssa_optimization_cap, Alloc); |
| 1344 | case OPT_licm_versioning_invariant_threshold: |
| 1345 | return llvm::opt::parseArgValue(A.getValue(), licm_versioning_invariant_threshold, Alloc); |
| 1346 | case OPT_licm_versioning_max_depth_threshold: |
| 1347 | return llvm::opt::parseArgValue(A.getValue(), licm_versioning_max_depth_threshold, Alloc); |
| 1348 | case OPT_likely_branch_weight: |
| 1349 | return llvm::opt::parseArgValue(A.getValue(), likely_branch_weight, Alloc); |
| 1350 | case OPT_loop_deletion_enable_symbolic_execution: |
| 1351 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , loop_deletion_enable_symbolic_execution, Alloc); |
| 1352 | case OPT_loop_distribute_non_if_convertible: |
| 1353 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , loop_distribute_non_if_convertible, Alloc); |
| 1354 | case OPT_loop_distribute_scev_check_threshold_with_pragma: |
| 1355 | return llvm::opt::parseArgValue(A.getValue(), loop_distribute_scev_check_threshold_with_pragma, Alloc); |
| 1356 | case OPT_loop_distribute_scev_check_threshold: |
| 1357 | return llvm::opt::parseArgValue(A.getValue(), loop_distribute_scev_check_threshold, Alloc); |
| 1358 | case OPT_loop_distribute_verify: |
| 1359 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , loop_distribute_verify, Alloc); |
| 1360 | case OPT_loop_flatten_assume_no_overflow: |
| 1361 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , loop_flatten_assume_no_overflow, Alloc); |
| 1362 | case OPT_loop_flatten_cost_threshold: |
| 1363 | return llvm::opt::parseArgValue(A.getValue(), loop_flatten_cost_threshold, Alloc); |
| 1364 | case OPT_loop_flatten_version_loops: |
| 1365 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , loop_flatten_version_loops, Alloc); |
| 1366 | case OPT_loop_flatten_widen_iv: |
| 1367 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , loop_flatten_widen_iv, Alloc); |
| 1368 | case OPT_loop_fusion_peel_max_count: |
| 1369 | return llvm::opt::parseArgValue(A.getValue(), loop_fusion_peel_max_count, Alloc); |
| 1370 | case OPT_loop_idiom_crc_strategy: |
| 1371 | return llvm::opt::parseArgValue(A.getValue(), loop_idiom_crc_strategy, Alloc, [](llvm::StringRef V, auto &X) { |
| 1372 | if (V == "disable" ) { |
| 1373 | X = CRCStrategyKind::Disable; |
| 1374 | return true; |
| 1375 | } |
| 1376 | if (V == "auto" ) { |
| 1377 | X = CRCStrategyKind::Auto; |
| 1378 | return true; |
| 1379 | } |
| 1380 | if (V == "table" ) { |
| 1381 | X = CRCStrategyKind::Table; |
| 1382 | return true; |
| 1383 | } |
| 1384 | if (V == "clmul" ) { |
| 1385 | X = CRCStrategyKind::Clmul; |
| 1386 | return true; |
| 1387 | } |
| 1388 | return false; |
| 1389 | }); |
| 1390 | case OPT_loop_idiom_force_memset_pattern_intrinsic: |
| 1391 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , loop_idiom_force_memset_pattern_intrinsic, Alloc); |
| 1392 | case OPT_loop_interchange_max_loop_nest_depth: |
| 1393 | return llvm::opt::parseArgValue(A.getValue(), loop_interchange_max_loop_nest_depth, Alloc); |
| 1394 | case OPT_loop_interchange_max_mem_instr_ratio: |
| 1395 | return llvm::opt::parseArgValue(A.getValue(), loop_interchange_max_mem_instr_ratio, Alloc); |
| 1396 | case OPT_loop_interchange_min_loop_nest_depth: |
| 1397 | return llvm::opt::parseArgValue(A.getValue(), loop_interchange_min_loop_nest_depth, Alloc); |
| 1398 | case OPT_loop_interchange_profitabilities: |
| 1399 | return llvm::opt::parseArgValue(A.getValue(), loop_interchange_profitabilities, Alloc, [](llvm::StringRef V, auto &X) { |
| 1400 | if (V == "cache" ) { |
| 1401 | X = LoopInterchangeRule::PerLoopCacheAnalysis; |
| 1402 | return true; |
| 1403 | } |
| 1404 | if (V == "instorder" ) { |
| 1405 | X = LoopInterchangeRule::PerInstrOrderCost; |
| 1406 | return true; |
| 1407 | } |
| 1408 | if (V == "vectorize" ) { |
| 1409 | X = LoopInterchangeRule::ForVectorization; |
| 1410 | return true; |
| 1411 | } |
| 1412 | if (V == "ignore" ) { |
| 1413 | X = LoopInterchangeRule::Ignore; |
| 1414 | return true; |
| 1415 | } |
| 1416 | return false; |
| 1417 | }); |
| 1418 | case OPT_loop_interchange_reduction_to_mem: |
| 1419 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , loop_interchange_reduction_to_mem, Alloc); |
| 1420 | case OPT_loop_interchange_threshold: |
| 1421 | return llvm::opt::parseArgValue(A.getValue(), loop_interchange_threshold, Alloc); |
| 1422 | case OPT_loop_load_elimination_scev_check_threshold: |
| 1423 | return llvm::opt::parseArgValue(A.getValue(), loop_load_elimination_scev_check_threshold, Alloc); |
| 1424 | case OPT_loop_predication_enable_count_down_loop: |
| 1425 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , loop_predication_enable_count_down_loop, Alloc); |
| 1426 | case OPT_loop_predication_enable_iv_truncation: |
| 1427 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , loop_predication_enable_iv_truncation, Alloc); |
| 1428 | case OPT_loop_predication_insert_assumes_of_predicated_guards_conditions: |
| 1429 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , loop_predication_insert_assumes_of_predicated_guards_conditions, Alloc); |
| 1430 | case OPT_loop_predication_latch_probability_scale: |
| 1431 | return llvm::opt::parseArgValue(A.getValue(), loop_predication_latch_probability_scale, Alloc); |
| 1432 | case OPT_loop_predication_predicate_widenable_branches_to_deopt: |
| 1433 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , loop_predication_predicate_widenable_branches_to_deopt, Alloc); |
| 1434 | case OPT_loop_predication_skip_profitability_checks: |
| 1435 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , loop_predication_skip_profitability_checks, Alloc); |
| 1436 | case OPT_loop_prefetch_writes: |
| 1437 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , loop_prefetch_writes, Alloc); |
| 1438 | case OPT_lsr_complexity_limit: |
| 1439 | return llvm::opt::parseArgValue(A.getValue(), lsr_complexity_limit, Alloc); |
| 1440 | case OPT_lsr_drop_scaled_reg_for_vscale: |
| 1441 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , lsr_drop_scaled_reg_for_vscale, Alloc); |
| 1442 | case OPT_lsr_drop_solution: |
| 1443 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , lsr_drop_solution, Alloc); |
| 1444 | case OPT_lsr_enable_vscale_immediates: |
| 1445 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , lsr_enable_vscale_immediates, Alloc); |
| 1446 | case OPT_lsr_exp_narrow: |
| 1447 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , lsr_exp_narrow, Alloc); |
| 1448 | case OPT_lsr_filter_same_scaled_reg: |
| 1449 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , lsr_filter_same_scaled_reg, Alloc); |
| 1450 | case OPT_lsr_insns_cost: |
| 1451 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , lsr_insns_cost, Alloc); |
| 1452 | case OPT_lsr_preferred_addressing_mode: |
| 1453 | return llvm::opt::parseArgValue(A.getValue(), lsr_preferred_addressing_mode, Alloc, [](llvm::StringRef V, auto &X) { |
| 1454 | if (V == "none" ) { |
| 1455 | X = TargetTransformInfo::AMK_None; |
| 1456 | return true; |
| 1457 | } |
| 1458 | if (V == "preindexed" ) { |
| 1459 | X = TargetTransformInfo::AMK_PreIndexed; |
| 1460 | return true; |
| 1461 | } |
| 1462 | if (V == "postindexed" ) { |
| 1463 | X = TargetTransformInfo::AMK_PostIndexed; |
| 1464 | return true; |
| 1465 | } |
| 1466 | if (V == "all" ) { |
| 1467 | X = TargetTransformInfo::AMK_All; |
| 1468 | return true; |
| 1469 | } |
| 1470 | return false; |
| 1471 | }); |
| 1472 | case OPT_lsr_setupcost_depth_limit: |
| 1473 | return llvm::opt::parseArgValue(A.getValue(), lsr_setupcost_depth_limit, Alloc); |
| 1474 | case OPT_matrix_allow_contract: |
| 1475 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , matrix_allow_contract, Alloc); |
| 1476 | case OPT_matrix_default_layout: |
| 1477 | return llvm::opt::parseArgValue(A.getValue(), matrix_default_layout, Alloc, [](llvm::StringRef V, auto &X) { |
| 1478 | if (V == "column-major" ) { |
| 1479 | X = MatrixLayoutTy::ColumnMajor; |
| 1480 | return true; |
| 1481 | } |
| 1482 | if (V == "row-major" ) { |
| 1483 | X = MatrixLayoutTy::RowMajor; |
| 1484 | return true; |
| 1485 | } |
| 1486 | return false; |
| 1487 | }); |
| 1488 | case OPT_matrix_print_after_transpose_opt: |
| 1489 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , matrix_print_after_transpose_opt, Alloc); |
| 1490 | case OPT_matrix_split_matmul_remainder_over_threshold: |
| 1491 | return llvm::opt::parseArgValue(A.getValue(), matrix_split_matmul_remainder_over_threshold, Alloc); |
| 1492 | case OPT_max_loads_per_memcmp_opt_size: |
| 1493 | return llvm::opt::parseArgValue(A.getValue(), max_loads_per_memcmp_opt_size, Alloc); |
| 1494 | case OPT_max_loads_per_memcmp: |
| 1495 | return llvm::opt::parseArgValue(A.getValue(), max_loads_per_memcmp, Alloc); |
| 1496 | case OPT_max_prefetch_iters_ahead: |
| 1497 | return llvm::opt::parseArgValue(A.getValue(), max_prefetch_iters_ahead, Alloc); |
| 1498 | case OPT_max_uses_for_sinking: |
| 1499 | return llvm::opt::parseArgValue(A.getValue(), max_uses_for_sinking, Alloc); |
| 1500 | case OPT_memcmp_num_loads_per_block: |
| 1501 | return llvm::opt::parseArgValue(A.getValue(), memcmp_num_loads_per_block, Alloc); |
| 1502 | case OPT_min_prefetch_stride: |
| 1503 | return llvm::opt::parseArgValue(A.getValue(), min_prefetch_stride, Alloc); |
| 1504 | case OPT_pragma_unroll_and_jam_threshold: |
| 1505 | return llvm::opt::parseArgValue(A.getValue(), pragma_unroll_and_jam_threshold, Alloc); |
| 1506 | case OPT_pragma_unroll_full_max_iterations: |
| 1507 | return llvm::opt::parseArgValue(A.getValue(), pragma_unroll_full_max_iterations, Alloc); |
| 1508 | case OPT_pragma_unroll_threshold: |
| 1509 | return llvm::opt::parseArgValue(A.getValue(), pragma_unroll_threshold, Alloc); |
| 1510 | case OPT_prefetch_distance: |
| 1511 | return llvm::opt::parseArgValue(A.getValue(), prefetch_distance, Alloc); |
| 1512 | case OPT_reassociate_geps_verify_no_dead_code: |
| 1513 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , reassociate_geps_verify_no_dead_code, Alloc); |
| 1514 | case OPT_reassociate_use_cse_local: |
| 1515 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , reassociate_use_cse_local, Alloc); |
| 1516 | case OPT_replexitval: |
| 1517 | return llvm::opt::parseArgValue(A.getValue(), replexitval, Alloc, [](llvm::StringRef V, auto &X) { |
| 1518 | if (V == "never" ) { |
| 1519 | X = NeverRepl; |
| 1520 | return true; |
| 1521 | } |
| 1522 | if (V == "cheap" ) { |
| 1523 | X = OnlyCheapRepl; |
| 1524 | return true; |
| 1525 | } |
| 1526 | if (V == "unusedindvarinloop" ) { |
| 1527 | X = UnusedIndVarInLoop; |
| 1528 | return true; |
| 1529 | } |
| 1530 | if (V == "noharduse" ) { |
| 1531 | X = NoHardUse; |
| 1532 | return true; |
| 1533 | } |
| 1534 | if (V == "always" ) { |
| 1535 | X = AlwaysRepl; |
| 1536 | return true; |
| 1537 | } |
| 1538 | return false; |
| 1539 | }); |
| 1540 | case OPT_rotation_max_header_size: |
| 1541 | return llvm::opt::parseArgValue(A.getValue(), rotation_max_header_size, Alloc); |
| 1542 | case OPT_rotation_prepare_for_lto: |
| 1543 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , rotation_prepare_for_lto, Alloc); |
| 1544 | case OPT_rs4gc_allow_statepoint_with_no_deopt_info: |
| 1545 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , rs4gc_allow_statepoint_with_no_deopt_info, Alloc); |
| 1546 | case OPT_rs4gc_remat_derived_at_uses: |
| 1547 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , rs4gc_remat_derived_at_uses, Alloc); |
| 1548 | case OPT_runtime_check_per_loop_load_elim: |
| 1549 | return llvm::opt::parseArgValue(A.getValue(), runtime_check_per_loop_load_elim, Alloc); |
| 1550 | case OPT_simple_loop_unswitch_drop_non_trivial_implicit_null_checks: |
| 1551 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , simple_loop_unswitch_drop_non_trivial_implicit_null_checks, Alloc); |
| 1552 | case OPT_simple_loop_unswitch_estimate_profile: |
| 1553 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , simple_loop_unswitch_estimate_profile, Alloc); |
| 1554 | case OPT_simple_loop_unswitch_guards: |
| 1555 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , simple_loop_unswitch_guards, Alloc); |
| 1556 | case OPT_simple_loop_unswitch_inject_invariant_condition_hotness_threshold: |
| 1557 | return llvm::opt::parseArgValue(A.getValue(), simple_loop_unswitch_inject_invariant_condition_hotness_threshold, Alloc); |
| 1558 | case OPT_simple_loop_unswitch_inject_invariant_conditions: |
| 1559 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , simple_loop_unswitch_inject_invariant_conditions, Alloc); |
| 1560 | case OPT_simple_loop_unswitch_memoryssa_threshold: |
| 1561 | return llvm::opt::parseArgValue(A.getValue(), simple_loop_unswitch_memoryssa_threshold, Alloc); |
| 1562 | case OPT_sink_common_insts: |
| 1563 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , sink_common_insts, Alloc); |
| 1564 | case OPT_sink_freq_percent_threshold: |
| 1565 | return llvm::opt::parseArgValue(A.getValue(), sink_freq_percent_threshold, Alloc); |
| 1566 | case OPT_spec_exec_max_not_hoisted: |
| 1567 | return llvm::opt::parseArgValue(A.getValue(), spec_exec_max_not_hoisted, Alloc); |
| 1568 | case OPT_spec_exec_max_speculation_cost: |
| 1569 | return llvm::opt::parseArgValue(A.getValue(), spec_exec_max_speculation_cost, Alloc); |
| 1570 | case OPT_spec_exec_only_if_divergent_target: |
| 1571 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , spec_exec_only_if_divergent_target, Alloc); |
| 1572 | case OPT_speculate_unpredictables: |
| 1573 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , speculate_unpredictables, Alloc); |
| 1574 | case OPT_spp_all_backedges: |
| 1575 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , spp_all_backedges, Alloc); |
| 1576 | case OPT_spp_counted_loop_trip_width: |
| 1577 | return llvm::opt::parseArgValue(A.getValue(), spp_counted_loop_trip_width, Alloc); |
| 1578 | case OPT_spp_no_backedge: |
| 1579 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , spp_no_backedge, Alloc); |
| 1580 | case OPT_spp_no_call: |
| 1581 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , spp_no_call, Alloc); |
| 1582 | case OPT_spp_no_entry: |
| 1583 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , spp_no_entry, Alloc); |
| 1584 | case OPT_spp_print_base_pointers: |
| 1585 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , spp_print_base_pointers, Alloc); |
| 1586 | case OPT_spp_print_liveset_size: |
| 1587 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , spp_print_liveset_size, Alloc); |
| 1588 | case OPT_spp_print_liveset: |
| 1589 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , spp_print_liveset, Alloc); |
| 1590 | case OPT_spp_rematerialization_threshold: |
| 1591 | return llvm::opt::parseArgValue(A.getValue(), spp_rematerialization_threshold, Alloc); |
| 1592 | case OPT_spp_split_backedge: |
| 1593 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , spp_split_backedge, Alloc); |
| 1594 | case OPT_sroa_skip_mem2reg: |
| 1595 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , sroa_skip_mem2reg, Alloc); |
| 1596 | case OPT_structurizecfg_relaxed_uniform_regions: |
| 1597 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , structurizecfg_relaxed_uniform_regions, Alloc); |
| 1598 | case OPT_structurizecfg_skip_uniform_regions: |
| 1599 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , structurizecfg_skip_uniform_regions, Alloc); |
| 1600 | case OPT_switch_range_to_icmp: |
| 1601 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , switch_range_to_icmp, Alloc); |
| 1602 | case OPT_switch_to_lookup: |
| 1603 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , switch_to_lookup, Alloc); |
| 1604 | case OPT_tre_disable_entrycount_recompute: |
| 1605 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , tre_disable_entrycount_recompute, Alloc); |
| 1606 | case OPT_unlikely_branch_weight: |
| 1607 | return llvm::opt::parseArgValue(A.getValue(), unlikely_branch_weight, Alloc); |
| 1608 | case OPT_unroll_allow_partial: |
| 1609 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , unroll_allow_partial, Alloc); |
| 1610 | case OPT_unroll_allow_remainder: |
| 1611 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , unroll_allow_remainder, Alloc); |
| 1612 | case OPT_unroll_and_jam_count: |
| 1613 | return llvm::opt::parseArgValue(A.getValue(), unroll_and_jam_count, Alloc); |
| 1614 | case OPT_unroll_and_jam_threshold: |
| 1615 | return llvm::opt::parseArgValue(A.getValue(), unroll_and_jam_threshold, Alloc); |
| 1616 | case OPT_unroll_count: |
| 1617 | return llvm::opt::parseArgValue(A.getValue(), unroll_count, Alloc); |
| 1618 | case OPT_unroll_full_max_count: |
| 1619 | return llvm::opt::parseArgValue(A.getValue(), unroll_full_max_count, Alloc); |
| 1620 | case OPT_unroll_max_count: |
| 1621 | return llvm::opt::parseArgValue(A.getValue(), unroll_max_count, Alloc); |
| 1622 | case OPT_unroll_max_iteration_count_to_analyze: |
| 1623 | return llvm::opt::parseArgValue(A.getValue(), unroll_max_iteration_count_to_analyze, Alloc); |
| 1624 | case OPT_unroll_max_percent_threshold_boost: |
| 1625 | return llvm::opt::parseArgValue(A.getValue(), unroll_max_percent_threshold_boost, Alloc); |
| 1626 | case OPT_unroll_max_upperbound: |
| 1627 | return llvm::opt::parseArgValue(A.getValue(), unroll_max_upperbound, Alloc); |
| 1628 | case OPT_unroll_optsize_threshold: |
| 1629 | return llvm::opt::parseArgValue(A.getValue(), unroll_optsize_threshold, Alloc); |
| 1630 | case OPT_unroll_partial_threshold: |
| 1631 | return llvm::opt::parseArgValue(A.getValue(), unroll_partial_threshold, Alloc); |
| 1632 | case OPT_unroll_remainder: |
| 1633 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , unroll_remainder, Alloc); |
| 1634 | case OPT_unroll_revisit_child_loops: |
| 1635 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , unroll_revisit_child_loops, Alloc); |
| 1636 | case OPT_unroll_runtime: |
| 1637 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , unroll_runtime, Alloc); |
| 1638 | case OPT_unroll_threshold_aggressive: |
| 1639 | return llvm::opt::parseArgValue(A.getValue(), unroll_threshold_aggressive, Alloc); |
| 1640 | case OPT_unroll_threshold_default: |
| 1641 | return llvm::opt::parseArgValue(A.getValue(), unroll_threshold_default, Alloc); |
| 1642 | case OPT_unroll_threshold: |
| 1643 | return llvm::opt::parseArgValue(A.getValue(), unroll_threshold, Alloc); |
| 1644 | case OPT_unswitch_num_initial_unscaled_candidates: |
| 1645 | return llvm::opt::parseArgValue(A.getValue(), unswitch_num_initial_unscaled_candidates, Alloc); |
| 1646 | case OPT_unswitch_parent_blocks_div: |
| 1647 | return llvm::opt::parseArgValue(A.getValue(), unswitch_parent_blocks_div, Alloc); |
| 1648 | case OPT_unswitch_siblings_toplevel_div: |
| 1649 | return llvm::opt::parseArgValue(A.getValue(), unswitch_siblings_toplevel_div, Alloc); |
| 1650 | case OPT_unswitch_threshold: |
| 1651 | return llvm::opt::parseArgValue(A.getValue(), unswitch_threshold, Alloc); |
| 1652 | case OPT_use_lir_code_size_heurs: |
| 1653 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , use_lir_code_size_heurs, Alloc); |
| 1654 | case OPT_verify_matrix_shapes: |
| 1655 | return llvm::opt::parseArgValue(A.getNumValues() ? A.getValue() : "true" , verify_matrix_shapes, Alloc); |
| 1656 | } |
| 1657 | llvm_unreachable("option without a member" ); |
| 1658 | } |
| 1659 | #endif // OPTIONS_STRUCT_DEFS |
| 1660 | ///////// |
| 1661 | // ValuesCode |
| 1662 | |
| 1663 | #ifdef OPTTABLE_VALUES_CODE |
| 1664 | static llvm::StringRef getOptionValuesCode(unsigned ID) { |
| 1665 | switch (ID) { |
| 1666 | } |
| 1667 | return {}; |
| 1668 | } |
| 1669 | #undef OPTTABLE_VALUES_CODE |
| 1670 | #endif // OPTTABLE_VALUES_CODE |
| 1671 | ///////// |
| 1672 | // Groups |
| 1673 | |
| 1674 | #ifdef OPTION |
| 1675 | |
| 1676 | ////////// |
| 1677 | // Options |
| 1678 | |
| 1679 | OPTION(0, 6 /* <input> */, INPUT, Input, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0, 0, 0, 0) |
| 1680 | OPTION(0, 14 /* <unknown> */, UNKNOWN, Unknown, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 0, 0, 0, 0, 0) |
| 1681 | OPTION(1, 24 /* -adce-remove-control-flow */, anonymous_0, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1682 | OPTION(1, 52 /* -adce-remove-loops */, anonymous_1, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1683 | OPTION(1, 71 /* -allow-unroll-and-jam */, anonymous_126, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 93, 0, 0, 0, 0) |
| 1684 | OPTION(1, 130 /* -bonus-inst-threshold */, anonymous_193, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 152, 0, 0, 0, 0) |
| 1685 | OPTION(1, 193 /* -callsite-splitting-duplication-threshold */, anonymous_2, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 235, 0, 0, 0, 0) |
| 1686 | OPTION(1, 318 /* -consthoist-gep */, anonymous_3, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 334, 0, 0, 0, 0) |
| 1687 | OPTION(1, 372 /* -consthoist-min-num-to-rebase */, anonymous_4, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 402, 0, 0, 0, 0) |
| 1688 | OPTION(1, 484 /* -consthoist-with-block-frequency */, anonymous_5, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 517, 0, 0, 0, 0) |
| 1689 | OPTION(1, 656 /* -constraint-elimination-dump-reproducers */, anonymous_6, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 697, 0, 0, 0, 0) |
| 1690 | OPTION(1, 745 /* -constraint-elimination-max-rows */, anonymous_7, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 778, 0, 0, 0, 0) |
| 1691 | OPTION(1, 830 /* -dfa-cost-threshold */, anonymous_20, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 850, 0, 0, 0, 0) |
| 1692 | OPTION(1, 895 /* -dfa-early-exit-heuristic */, anonymous_21, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 921, 0, 0, 0, 0) |
| 1693 | OPTION(1, 982 /* -dfa-jump-view-cfg-before */, anonymous_22, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1008, 0, 0, 0, 0) |
| 1694 | OPTION(1, 1047 /* -dfa-max-cloned-rate */, anonymous_23, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1068, 0, 0, 0, 0) |
| 1695 | OPTION(1, 1133 /* -dfa-max-num-paths */, anonymous_24, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1152, 0, 0, 0, 0) |
| 1696 | OPTION(1, 1199 /* -dfa-max-num-visited-paths */, anonymous_25, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1226, 0, 0, 0, 0) |
| 1697 | OPTION(1, 1295 /* -dfa-max-out-use-blocks */, anonymous_26, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1319, 0, 0, 0, 0) |
| 1698 | OPTION(1, 1395 /* -dfa-max-path-length */, anonymous_27, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1416, 0, 0, 0, 0) |
| 1699 | OPTION(1, 1471 /* -disable-lftr */, anonymous_60, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1485, 0, 0, 0, 0) |
| 1700 | OPTION(1, 1535 /* -disable-licm-promotion */, anonymous_72, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1559, 0, 0, 0, 0) |
| 1701 | OPTION(1, 1597 /* -disable-separate-const-offset-from-gep */, anonymous_178, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1637, 0, 0, 0, 0) |
| 1702 | OPTION(1, 1696 /* -disable-tail-call-elim-for-cold-calls */, anonymous_209, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1735, 0, 0, 0, 0) |
| 1703 | OPTION(1, 1818 /* -dse-max-dom-cond-depth */, anonymous_8, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1842, 0, 0, 0, 0) |
| 1704 | OPTION(1, 1936 /* -dse-memoryssa-defs-per-block-limit */, anonymous_9, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 1972, 0, 0, 0, 0) |
| 1705 | OPTION(1, 2066 /* -dse-memoryssa-otherbb-cost */, anonymous_10, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2094, 0, 0, 0, 0) |
| 1706 | OPTION(1, 2167 /* -dse-memoryssa-partial-store-limit */, anonymous_11, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2202, 0, 0, 0, 0) |
| 1707 | OPTION(1, 2296 /* -dse-memoryssa-path-check-limit */, anonymous_12, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2328, 0, 0, 0, 0) |
| 1708 | OPTION(1, 2440 /* -dse-memoryssa-samebb-cost */, anonymous_13, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2467, 0, 0, 0, 0) |
| 1709 | OPTION(1, 2535 /* -dse-memoryssa-scanlimit */, anonymous_14, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2560, 0, 0, 0, 0) |
| 1710 | OPTION(1, 2629 /* -dse-memoryssa-walklimit */, anonymous_15, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2654, 0, 0, 0, 0) |
| 1711 | OPTION(1, 2742 /* -dse-optimize-memoryssa */, anonymous_16, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2766, 0, 0, 0, 0) |
| 1712 | OPTION(1, 2804 /* -earlycse-debug-hash */, anonymous_28, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2825, 0, 0, 0, 0) |
| 1713 | OPTION(1, 2946 /* -earlycse-mssa-optimization-cap */, anonymous_29, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 2978, 0, 0, 0, 0) |
| 1714 | OPTION(1, 3100 /* -enable-dse-initializes-attr-improvement */, anonymous_17, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3141, 0, 0, 0, 0) |
| 1715 | OPTION(1, 3188 /* -enable-dse-partial-overwrite-tracking */, anonymous_18, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3227, 0, 0, 0, 0) |
| 1716 | OPTION(1, 3268 /* -enable-dse-partial-store-merging */, anonymous_19, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3302, 0, 0, 0, 0) |
| 1717 | OPTION(1, 3338 /* -enable-gvn-memdep */, anonymous_35, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1718 | OPTION(1, 3357 /* -enable-gvn-memoryssa */, anonymous_36, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1719 | OPTION(1, 3379 /* -enable-load-in-loop-pre */, anonymous_37, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1720 | OPTION(1, 3404 /* -enable-load-pre */, anonymous_38, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1721 | OPTION(1, 3421 /* -enable-loop-distribute */, anonymous_83, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3445, 0, 0, 0, 0) |
| 1722 | OPTION(1, 3496 /* -enable-loop-header-duplication-at-minsize */, anonymous_110, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3539, 0, 0, 0, 0) |
| 1723 | OPTION(1, 3587 /* -enable-loop-simplifycfg-term-folding */, anonymous_113, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1724 | OPTION(1, 3625 /* -enable-lsr-phielim */, anonymous_116, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3645, 0, 0, 0, 0) |
| 1725 | OPTION(1, 3672 /* -enable-nontrivial-unswitch */, anonymous_180, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3700, 0, 0, 0, 0) |
| 1726 | OPTION(1, 3807 /* -enable-phi-of-ops */, anonymous_163, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1727 | OPTION(1, 3826 /* -enable-poison-reuse-guard */, anonymous_206, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3853, 0, 0, 0, 0) |
| 1728 | OPTION(1, 3879 /* -enable-scalar-pre */, anonymous_39, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1729 | OPTION(1, 3898 /* -enable-split-backedge-in-load-pre */, anonymous_40, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1730 | OPTION(1, 3933 /* -enable-store-refinement */, anonymous_164, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1731 | OPTION(1, 3958 /* -enable-unswitch-cost-multiplier */, anonymous_181, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 3991, 0, 0, 0, 0) |
| 1732 | OPTION(1, 4083 /* -flat-loop-tripcount-threshold */, anonymous_130, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4114, 0, 0, 0, 0) |
| 1733 | OPTION(1, 4251 /* -float2int-max-integer-bw */, anonymous_33, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4277, 0, 0, 0, 0) |
| 1734 | OPTION(1, 4323 /* -force-fuse-matrix */, anonymous_154, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4342, 0, 0, 0, 0) |
| 1735 | OPTION(1, 4397 /* -forget-scev-loop-unroll */, anonymous_131, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4422, 0, 0, 0, 0) |
| 1736 | OPTION(1, 4565 /* -forward-switch-cond */, anonymous_194, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4586, 0, 0, 0, 0) |
| 1737 | OPTION(1, 4622 /* -freeze-loop-unswitch-cond */, anonymous_182, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4649, 0, 0, 0, 0) |
| 1738 | OPTION(1, 4754 /* -fuse-matrix-loops-threshold */, anonymous_156, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4783, 0, 0, 0, 0) |
| 1739 | OPTION(1, 4867 /* -fuse-matrix-tile-size */, anonymous_157, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4890, 0, 0, 0, 0) |
| 1740 | OPTION(1, 4956 /* -fuse-matrix */, anonymous_155, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 4969, 0, 0, 0, 0) |
| 1741 | OPTION(1, 5011 /* -guard-widening-widen-branch-guards */, anonymous_34, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5047, 0, 0, 0, 0) |
| 1742 | OPTION(1, 5132 /* -gvn-hoist-max-bbs */, anonymous_47, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5151, 0, 0, 0, 0) |
| 1743 | OPTION(1, 5234 /* -gvn-hoist-max-chain-length */, anonymous_48, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5262, 0, 0, 0, 0) |
| 1744 | OPTION(1, 5323 /* -gvn-hoist-max-depth */, anonymous_49, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5344, 0, 0, 0, 0) |
| 1745 | OPTION(1, 5443 /* -gvn-max-block-speculations */, anonymous_41, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5471, 0, 0, 0, 0) |
| 1746 | OPTION(1, 5599 /* -gvn-max-hoisted */, anonymous_50, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5616, 0, 0, 0, 0) |
| 1747 | OPTION(1, 5669 /* -gvn-max-num-deps */, anonymous_42, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5687, 0, 0, 0, 0) |
| 1748 | OPTION(1, 5733 /* -gvn-max-num-insns */, anonymous_43, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5752, 0, 0, 0, 0) |
| 1749 | OPTION(1, 5814 /* -gvn-max-num-reaching-blocks */, anonymous_44, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5843, 0, 0, 0, 0) |
| 1750 | OPTION(1, 5922 /* -gvn-max-num-visited-insts */, anonymous_45, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 5949, 0, 0, 0, 0) |
| 1751 | OPTION(1, 6042 /* -gvn-scan-users-limit */, anonymous_46, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6064, 0, 0, 0, 0) |
| 1752 | OPTION(1, 6148 /* -hoist-common-insts */, anonymous_195, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6168, 0, 0, 0, 0) |
| 1753 | OPTION(1, 6194 /* -hoist-loads-stores-with-cond-faulting */, anonymous_196, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6233, 0, 0, 0, 0) |
| 1754 | OPTION(1, 6296 /* -indvars-post-increment-ranges */, anonymous_61, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6327, 0, 0, 0, 0) |
| 1755 | OPTION(1, 6389 /* -indvars-predicate-loop-traps */, anonymous_62, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6419, 0, 0, 0, 0) |
| 1756 | OPTION(1, 6482 /* -indvars-predicate-loops */, anonymous_63, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6507, 0, 0, 0, 0) |
| 1757 | OPTION(1, 6547 /* -indvars-widen-indvars */, anonymous_64, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6570, 0, 0, 0, 0) |
| 1758 | OPTION(1, 6616 /* -irce-allow-narrow-latch */, anonymous_51, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6641, 0, 0, 0, 0) |
| 1759 | OPTION(1, 6731 /* -irce-allow-unsigned-latch */, anonymous_52, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1760 | OPTION(1, 6758 /* -irce-loop-size-cutoff */, anonymous_53, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1761 | OPTION(1, 6781 /* -irce-max-type-size-for-overflow-check */, anonymous_54, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 6820, 0, 0, 0, 0) |
| 1762 | OPTION(1, 6929 /* -irce-min-eliminated-checks */, anonymous_55, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1763 | OPTION(1, 6957 /* -irce-print-changed-loops */, anonymous_56, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1764 | OPTION(1, 6983 /* -irce-print-range-checks */, anonymous_57, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1765 | OPTION(1, 7008 /* -irce-print-scaled-boundary-range-checks */, anonymous_58, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1766 | OPTION(1, 7049 /* -irce-skip-profitability-checks */, anonymous_59, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1767 | OPTION(1, 7081 /* -jump-table-to-switch-function-size-threshold */, anonymous_66, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7127, 0, 0, 0, 0) |
| 1768 | OPTION(1, 7221 /* -jump-table-to-switch-size-threshold */, anonymous_67, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7258, 0, 0, 0, 0) |
| 1769 | OPTION(1, 7333 /* -jump-threading-across-loop-headers */, anonymous_68, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7369, 0, 0, 0, 0) |
| 1770 | OPTION(1, 7432 /* -jump-threading-implication-search-threshold */, anonymous_69, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7477, 0, 0, 0, 0) |
| 1771 | OPTION(1, 7580 /* -jump-threading-phi-threshold */, anonymous_70, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7610, 0, 0, 0, 0) |
| 1772 | OPTION(1, 7657 /* -jump-threading-threshold */, anonymous_71, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7683, 0, 0, 0, 0) |
| 1773 | OPTION(1, 7730 /* -keep-loops */, anonymous_197, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7742, 0, 0, 0, 0) |
| 1774 | OPTION(1, 7776 /* -licm-max-num-fp-reassociations */, anonymous_73, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7808, 0, 0, 0, 0) |
| 1775 | OPTION(1, 7931 /* -licm-max-num-int-reassociations */, anonymous_74, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7808, 0, 0, 0, 0) |
| 1776 | OPTION(1, 7964 /* -licm-max-num-uses-traversed */, anonymous_75, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 7993, 0, 0, 0, 0) |
| 1777 | OPTION(1, 8076 /* -licm-mssa-max-acc-promotion */, anonymous_76, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8105, 0, 0, 0, 0) |
| 1778 | OPTION(1, 8317 /* -licm-mssa-optimization-cap */, anonymous_77, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8345, 0, 0, 0, 0) |
| 1779 | OPTION(1, 8463 /* -licm-versioning-invariant-threshold */, anonymous_150, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8500, 0, 0, 0, 0) |
| 1780 | OPTION(1, 8592 /* -licm-versioning-max-depth-threshold */, anonymous_151, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8629, 0, 0, 0, 0) |
| 1781 | OPTION(1, 8696 /* -likely-branch-weight */, anonymous_152, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8718, 0, 0, 0, 0) |
| 1782 | OPTION(1, 8758 /* -loop-deletion-enable-symbolic-execution */, anonymous_82, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8799, 0, 0, 0, 0) |
| 1783 | OPTION(1, 8911 /* -loop-distribute-non-if-convertible */, anonymous_84, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 8947, 0, 0, 0, 0) |
| 1784 | OPTION(1, 9035 /* -loop-distribute-scev-check-threshold-with-pragma */, anonymous_86, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9085, 0, 0, 0, 0) |
| 1785 | OPTION(1, 9208 /* -loop-distribute-scev-check-threshold */, anonymous_85, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9246, 0, 0, 0, 0) |
| 1786 | OPTION(1, 9310 /* -loop-distribute-verify */, anonymous_87, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9334, 0, 0, 0, 0) |
| 1787 | OPTION(1, 9406 /* -loop-flatten-assume-no-overflow */, anonymous_88, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9439, 0, 0, 0, 0) |
| 1788 | OPTION(1, 9516 /* -loop-flatten-cost-threshold */, anonymous_89, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9545, 0, 0, 0, 0) |
| 1789 | OPTION(1, 9623 /* -loop-flatten-version-loops */, anonymous_90, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9651, 0, 0, 0, 0) |
| 1790 | OPTION(1, 9698 /* -loop-flatten-widen-iv */, anonymous_91, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9721, 0, 0, 0, 0) |
| 1791 | OPTION(1, 9813 /* -loop-fusion-peel-max-count */, anonymous_92, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9841, 0, 0, 0, 0) |
| 1792 | OPTION(1, 9924 /* -loop-idiom-crc-strategy */, anonymous_93, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 9949, 0, 9993, 10020, 0) |
| 1793 | OPTION(1, 10045 /* -loop-idiom-force-memset-pattern-intrinsic */, anonymous_94, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10088, 0, 0, 0, 0) |
| 1794 | OPTION(1, 10135 /* -loop-interchange-max-loop-nest-depth */, anonymous_96, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10173, 0, 0, 0, 0) |
| 1795 | OPTION(1, 10229 /* -loop-interchange-max-mem-instr-ratio */, anonymous_97, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10267, 0, 0, 0, 0) |
| 1796 | OPTION(1, 10437 /* -loop-interchange-min-loop-nest-depth */, anonymous_98, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10475, 0, 0, 0, 0) |
| 1797 | OPTION(1, 10531 /* -loop-interchange-profitabilities */, anonymous_99, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10565, 0, 10646, 10681, 0) |
| 1798 | OPTION(1, 10714 /* -loop-interchange-reduction-to-mem */, anonymous_100, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10749, 0, 0, 0, 0) |
| 1799 | OPTION(1, 10794 /* -loop-interchange-threshold */, anonymous_101, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10822, 0, 0, 0, 0) |
| 1800 | OPTION(1, 10868 /* -loop-load-elimination-scev-check-threshold */, anonymous_102, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 10912, 0, 0, 0, 0) |
| 1801 | OPTION(1, 10980 /* -loop-predication-enable-count-down-loop */, anonymous_104, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1802 | OPTION(1, 11021 /* -loop-predication-enable-iv-truncation */, anonymous_105, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1803 | OPTION(1, 11060 /* -loop-predication-insert-assumes-of-predicated-guards-conditions */, anonymous_106, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11125, 0, 0, 0, 0) |
| 1804 | OPTION(1, 11200 /* -loop-predication-latch-probability-scale */, anonymous_107, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11242, 0, 0, 0, 0) |
| 1805 | OPTION(1, 11339 /* -loop-predication-predicate-widenable-branches-to-deopt */, anonymous_108, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11395, 0, 0, 0, 0) |
| 1806 | OPTION(1, 11490 /* -loop-predication-skip-profitability-checks */, anonymous_109, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1807 | OPTION(1, 11534 /* -loop-prefetch-writes */, anonymous_78, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11556, 0, 0, 0, 0) |
| 1808 | OPTION(1, 11581 /* -lsr-complexity-limit */, anonymous_117, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11603, 0, 0, 0, 0) |
| 1809 | OPTION(1, 11637 /* -lsr-drop-scaled-reg-for-vscale */, anonymous_118, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11669, 0, 0, 0, 0) |
| 1810 | OPTION(1, 11730 /* -lsr-drop-solution */, anonymous_119, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11749, 0, 0, 0, 0) |
| 1811 | OPTION(1, 11799 /* -lsr-enable-vscale-immediates */, anonymous_120, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11829, 0, 0, 0, 0) |
| 1812 | OPTION(1, 11882 /* -lsr-exp-narrow */, anonymous_121, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11898, 0, 0, 0, 0) |
| 1813 | OPTION(1, 11964 /* -lsr-filter-same-scaled-reg */, anonymous_122, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 11992, 0, 0, 0, 0) |
| 1814 | OPTION(1, 12084 /* -lsr-insns-cost */, anonymous_123, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12100, 0, 0, 0, 0) |
| 1815 | OPTION(1, 12142 /* -lsr-preferred-addressing-mode */, anonymous_124, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12173, 0, 12234, 12268, 0) |
| 1816 | OPTION(1, 12300 /* -lsr-setupcost-depth-limit */, anonymous_125, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12327, 0, 0, 0, 0) |
| 1817 | OPTION(1, 12376 /* -matrix-allow-contract */, anonymous_158, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12399, 0, 0, 0, 0) |
| 1818 | OPTION(1, 12515 /* -matrix-default-layout */, anonymous_159, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12538, 0, 12569, 12594, 0) |
| 1819 | OPTION(1, 12617 /* -matrix-print-after-transpose-opt */, anonymous_160, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1820 | OPTION(1, 12651 /* -matrix-split-matmul-remainder-over-threshold */, anonymous_161, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12697, 0, 0, 0, 0) |
| 1821 | OPTION(1, 12790 /* -max-loads-per-memcmp-opt-size */, anonymous_31, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12821, 0, 0, 0, 0) |
| 1822 | OPTION(1, 12884 /* -max-loads-per-memcmp */, anonymous_30, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12906, 0, 0, 0, 0) |
| 1823 | OPTION(1, 12958 /* -max-prefetch-iters-ahead */, anonymous_79, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 12984, 0, 0, 0, 0) |
| 1824 | OPTION(1, 13027 /* -max-uses-for-sinking */, anonymous_114, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13049, 0, 0, 0, 0) |
| 1825 | OPTION(1, 13098 /* -memcmp-num-loads-per-block */, anonymous_32, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13126, 0, 0, 0, 0) |
| 1826 | OPTION(1, 13193 /* -min-prefetch-stride */, anonymous_80, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13214, 0, 0, 0, 0) |
| 1827 | OPTION(1, 13243 /* -pragma-unroll-and-jam-threshold */, anonymous_127, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13276, 0, 0, 0, 0) |
| 1828 | OPTION(1, 13358 /* -pragma-unroll-full-max-iterations */, anonymous_132, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13393, 0, 0, 0, 0) |
| 1829 | OPTION(1, 13455 /* -pragma-unroll-threshold */, anonymous_133, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13480, 0, 0, 0, 0) |
| 1830 | OPTION(1, 13556 /* -prefetch-distance */, anonymous_81, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13575, 0, 0, 0, 0) |
| 1831 | OPTION(1, 13616 /* -reassociate-geps-verify-no-dead-code */, anonymous_179, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13654, 0, 0, 0, 0) |
| 1832 | OPTION(1, 13693 /* -reassociate-use-cse-local */, anonymous_171, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13720, 0, 0, 0, 0) |
| 1833 | OPTION(1, 13798 /* -replexitval */, anonymous_65, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13811, 0, 13871, 13921, 0) |
| 1834 | OPTION(1, 13969 /* -rotation-max-header-size */, anonymous_111, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 13995, 0, 0, 0, 0) |
| 1835 | OPTION(1, 14055 /* -rotation-prepare-for-lto */, anonymous_112, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 14081, 0, 0, 0, 0) |
| 1836 | OPTION(1, 14173 /* -rs4gc-allow-statepoint-with-no-deopt-info */, anonymous_172, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1837 | OPTION(1, 14216 /* -rs4gc-remat-derived-at-uses */, anonymous_173, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1838 | OPTION(1, 14245 /* -runtime-check-per-loop-load-elim */, anonymous_103, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 14279, 0, 0, 0, 0) |
| 1839 | OPTION(1, 14342 /* -simple-loop-unswitch-drop-non-trivial-implicit-null-checks */, anonymous_183, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 14402, 0, 0, 0, 0) |
| 1840 | OPTION(1, 14518 /* -simple-loop-unswitch-estimate-profile */, anonymous_184, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1841 | OPTION(1, 14557 /* -simple-loop-unswitch-guards */, anonymous_185, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 14586, 0, 0, 0, 0) |
| 1842 | OPTION(1, 14699 /* -simple-loop-unswitch-inject-invariant-condition-hotness-threshold */, anonymous_186, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 14766, 0, 0, 0, 0) |
| 1843 | OPTION(1, 14903 /* -simple-loop-unswitch-inject-invariant-conditions */, anonymous_187, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 14953, 0, 0, 0, 0) |
| 1844 | OPTION(1, 15065 /* -simple-loop-unswitch-memoryssa-threshold */, anonymous_188, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15107, 0, 0, 0, 0) |
| 1845 | OPTION(1, 15180 /* -sink-common-insts */, anonymous_198, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15199, 0, 0, 0, 0) |
| 1846 | OPTION(1, 15224 /* -sink-freq-percent-threshold */, anonymous_115, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15253, 0, 0, 0, 0) |
| 1847 | OPTION(1, 15354 /* -spec-exec-max-not-hoisted */, anonymous_202, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15381, 0, 0, 0, 0) |
| 1848 | OPTION(1, 15527 /* -spec-exec-max-speculation-cost */, anonymous_203, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15559, 0, 0, 0, 0) |
| 1849 | OPTION(1, 15691 /* -spec-exec-only-if-divergent-target */, anonymous_204, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15727, 0, 0, 0, 0) |
| 1850 | OPTION(1, 15862 /* -speculate-unpredictables */, anonymous_199, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 15888, 0, 0, 0, 0) |
| 1851 | OPTION(1, 15921 /* -spp-all-backedges */, anonymous_165, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1852 | OPTION(1, 15940 /* -spp-counted-loop-trip-width */, anonymous_166, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1853 | OPTION(1, 15969 /* -spp-no-backedge */, anonymous_167, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1854 | OPTION(1, 15986 /* -spp-no-call */, anonymous_168, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1855 | OPTION(1, 15999 /* -spp-no-entry */, anonymous_169, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1856 | OPTION(1, 16013 /* -spp-print-base-pointers */, anonymous_174, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1857 | OPTION(1, 16038 /* -spp-print-liveset-size */, anonymous_176, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1858 | OPTION(1, 16062 /* -spp-print-liveset */, anonymous_175, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1859 | OPTION(1, 16081 /* -spp-rematerialization-threshold */, anonymous_177, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1860 | OPTION(1, 16114 /* -spp-split-backedge */, anonymous_170, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1861 | OPTION(1, 16134 /* -sroa-skip-mem2reg */, anonymous_205, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 50, 0, 0, 0, 0) |
| 1862 | OPTION(1, 16153 /* -structurizecfg-relaxed-uniform-regions */, anonymous_207, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16193, 0, 0, 0, 0) |
| 1863 | OPTION(1, 16229 /* -structurizecfg-skip-uniform-regions */, anonymous_208, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16266, 0, 0, 0, 0) |
| 1864 | OPTION(1, 16326 /* -switch-range-to-icmp */, anonymous_200, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16348, 0, 0, 0, 0) |
| 1865 | OPTION(1, 16398 /* -switch-to-lookup */, anonymous_201, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16416, 0, 0, 0, 0) |
| 1866 | OPTION(1, 16450 /* -tre-disable-entrycount-recompute */, anonymous_210, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16484, 0, 0, 0, 0) |
| 1867 | OPTION(1, 16578 /* -unlikely-branch-weight */, anonymous_153, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16602, 0, 0, 0, 0) |
| 1868 | OPTION(1, 16644 /* -unroll-allow-partial */, anonymous_134, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16666, 0, 0, 0, 0) |
| 1869 | OPTION(1, 16749 /* -unroll-allow-remainder */, anonymous_135, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16773, 0, 0, 0, 0) |
| 1870 | OPTION(1, 16851 /* -unroll-and-jam-count */, anonymous_128, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 16873, 0, 0, 0, 0) |
| 1871 | OPTION(1, 16987 /* -unroll-and-jam-threshold */, anonymous_129, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 17013, 0, 0, 0, 0) |
| 1872 | OPTION(1, 17071 /* -unroll-count */, anonymous_136, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 17085, 0, 0, 0, 0) |
| 1873 | OPTION(1, 17191 /* -unroll-full-max-count */, anonymous_137, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 17214, 0, 0, 0, 0) |
| 1874 | OPTION(1, 17280 /* -unroll-max-count */, anonymous_138, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 17298, 0, 0, 0, 0) |
| 1875 | OPTION(1, 17378 /* -unroll-max-iteration-count-to-analyze */, anonymous_139, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 17417, 0, 0, 0, 0) |
| 1876 | OPTION(1, 17532 /* -unroll-max-percent-threshold-boost */, anonymous_140, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 17568, 0, 0, 0, 0) |
| 1877 | OPTION(1, 17927 /* -unroll-max-upperbound */, anonymous_141, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 17950, 0, 0, 0, 0) |
| 1878 | OPTION(1, 18016 /* -unroll-optsize-threshold */, anonymous_142, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18042, 0, 0, 0, 0) |
| 1879 | OPTION(1, 18105 /* -unroll-partial-threshold */, anonymous_143, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18131, 0, 0, 0, 0) |
| 1880 | OPTION(1, 18177 /* -unroll-remainder */, anonymous_144, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18195, 0, 0, 0, 0) |
| 1881 | OPTION(1, 18235 /* -unroll-revisit-child-loops */, anonymous_145, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18263, 0, 0, 0, 0) |
| 1882 | OPTION(1, 18417 /* -unroll-runtime */, anonymous_146, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18433, 0, 0, 0, 0) |
| 1883 | OPTION(1, 18472 /* -unroll-threshold-aggressive */, anonymous_148, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18501, 0, 0, 0, 0) |
| 1884 | OPTION(1, 18579 /* -unroll-threshold-default */, anonymous_149, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18605, 0, 0, 0, 0) |
| 1885 | OPTION(1, 18685 /* -unroll-threshold */, anonymous_147, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18703, 0, 0, 0, 0) |
| 1886 | OPTION(1, 18741 /* -unswitch-num-initial-unscaled-candidates */, anonymous_189, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18783, 0, 0, 0, 0) |
| 1887 | OPTION(1, 18863 /* -unswitch-parent-blocks-div */, anonymous_190, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18891, 0, 0, 0, 0) |
| 1888 | OPTION(1, 18935 /* -unswitch-siblings-toplevel-div */, anonymous_191, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 18967, 0, 0, 0, 0) |
| 1889 | OPTION(1, 19013 /* -unswitch-threshold */, anonymous_192, SeparateOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19033, 0, 0, 0, 0) |
| 1890 | OPTION(1, 19075 /* -use-lir-code-size-heurs */, anonymous_95, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19100, 0, 0, 0, 0) |
| 1891 | OPTION(1, 19176 /* -verify-matrix-shapes */, anonymous_162, FlagOrEq, INVALID, INVALID, 0, 0, static_cast<unsigned>(DefaultVis), 0, 19198, 0, 0, 0, 0) |
| 1892 | #endif // OPTION |
| 1893 | |
| 1894 | #ifdef SIMPLE_ENUM_VALUE_TABLE |
| 1895 | |
| 1896 | struct SimpleEnumValue { |
| 1897 | const char *Name; |
| 1898 | unsigned Value; |
| 1899 | }; |
| 1900 | |
| 1901 | struct SimpleEnumValueTable { |
| 1902 | const SimpleEnumValue *Table; |
| 1903 | unsigned Size; |
| 1904 | }; |
| 1905 | static const SimpleEnumValueTable SimpleEnumValueTables[] = {}; |
| 1906 | static const unsigned SimpleEnumValueTablesSize = std::size(SimpleEnumValueTables); |
| 1907 | #endif // SIMPLE_ENUM_VALUE_TABLE |
| 1908 | |