`foo` matches all passes for functions whose name contains 'foo', `foo & ConstProp` only the 'ConstProp' pass for function names containing 'foo', `foo | bar` all passes for function names containing 'foo' or 'bar'.dump_mir_dataflowin addition to `.mir` files, create graphviz `.dot` files with dataflow results (default: no)dump_mir_dirthe directory the MIR is dumped into (default: `mir_dump`)dump_mir_exclude_alloc_bytesexclude the raw bytes of allocations when dumping MIR (used in tests) (default: no)dump_mir_exclude_pass_numberexclude the pass number when dumping MIR (used in tests) (default: no)dump_mir_graphvizin addition to `.mir` files, create graphviz `.dot` files (default: no)dump_mono_statsan optional path to the profiling data output directoryoutput statistics about monomorphization collectiondump_mono_stats_format`markdown` (default) or `json`the format to use for -Z dump-mono-stats (`markdown` (default) or `json`)version of DWARF debug information to emit (default: 2 or 4, depending on platform)dylib_ltoeagerly_emit_delayed_bugsemit delayed bugs eagerly as errors instead of stashing them and emitting them only if an error has not been emittedehcont_guardgenerate Windows EHCont Guard tablesembed_metadataembed metadata in rlibs and dylibs (default: yes)embed_sourceembed source text in DWARF debug sections (default: no)emit a section containing stack size metadata (default: no)emit_thin_ltoemit the bc module with thin LTO info (default: yes)emscripten_wasm_ehUse WebAssembly error handling for wasm32-unknown-emscriptenenforce_type_length_limitenforce the type length limit when monomorphizing instances in codegenexperimental_default_boundsenable default bounds for experimental group of auto traitsexport_executable_symbolsexport symbols from executables, as if they were dynamic librariesrely on user specified linker commands to find clangrtextra_const_ub_checksturns on more checks to detect const UB, which can be slow (default: no)fewer_namesreduce memory use by retaining fewer names within compilation artifacts (LLVM-IR) (default: no)fixed_x18make the x18 register reserved on AArch64 (default: no)flatten_format_argsflatten nested format_args!() and literals into a simplified format_args!() call (default: yes)fmt_debugeither `full`, `shallow`, or `none`how detailed `#[derive(Debug)]` should be. `full` prints types recursively, `shallow` prints only type names, `none` prints nothing and disables `{:?}`. (default: `full`)force_unstable_if_unmarkedforce all crates to be `rustc_private` unstable (default: no)function_return`keep` or `thunk-extern`replace returns with jumps to `__x86_return_thunk` (default: `keep`)function_sectionswhether each function should go in its own sectionfuture_incompat_testforces all lints to be future incompatible, used for internal testing (default: no)graphviz_dark_modeuse dark-themed colors in graphviz output (default: no)graphviz_fontuse the given `fontname` in graphviz output; can be overridden by setting environment variable `RUSTC_GRAPHVIZ_FONT` (default: `Courier, monospace`)explicitly enable the `cfg(target_thread_local)` directivehigher_ranked_assumptionsallow deducing higher-ranked outlives assumptions from coroutines when proving auto traitshint_mostly_unusedhint that most of this crate will go unused, to minimize work for uncalled functionshuman_readable_cgu_namesgenerate human-readable, predictable names for codegen units (default: no)display unnamed regions as `'`, using a non-ident unique id (default: no)ignore_directory_in_diagnostics_source_blocksdo not display the source code block in diagnostics for files in the directoryincremental_ignore_spansignore spans during ICH computation -- used for testing (default: no)print high-level information about incremental reuse (or the lack thereof) (default: no)incremental_verify_ichverify extended properties for incr. comp. (default: no): - hashes of green query instances - hash collisions of query keys - hash collisions when creating dep-nodesinline_llvmenable LLVM inlining (default: yes)inline_mirenable MIR inlining (default: no)inline_mir_forwarder_thresholdinlining threshold when the caller is a simple forwarding function (default: 30)inline_mir_hint_thresholdinlining threshold for functions with inline hint (default: 100)inline_mir_preserve_debugwhen MIR inlining, whether to preserve debug info for callee variables (default: preserve for debuginfo != None, otherwise remove)inline_mir_thresholda default MIR inlining threshold (default: 50)input_statsprint some statistics about AST and HIR (default: no)instrument_mcountinsert function instrument code for mcount-based tracing (default: no)instrument_xrayeither a boolean (`yes`, `no`, `on`, `off`, etc), or a comma separated list of settings: `always` or `never` (mutually exclusive), `ignore-loops`, `instruction-threshold=N`, `skip-entry`, `skip-exit`insert function instrument code for XRay-based tracing (default: no) Optional extra settings: `=always` `=never` `=ignore-loops` `=instruction-threshold=N` `=skip-entry` `=skip-exit` Multiple options can be combined with commas.layout_seedseed layout randomizationlink_directiveshonor #[link] directives in the compiled crate (default: yes)link_native_librarieslink native libraries in the linker invocation (default: yes)link_onlylink the `.rlink` file generated by `-Z no-link` (default: no)lint_llvm_irlint LLVM IR (default: no)lint MIR before and after each transformation:::. Type must currently be `u32`. Behavior should be one of (`error`, `warning`, `require`, `override`, `append`, `appendunique`, `max`, `min`)a list of module flags to pass to LLVM (space separated)llvm_pluginsa space-separated list of stringsa list LLVM plugins to enable (space separated)llvm_time_tracegenerate JSON tracing data file from LLVM data (default: no)location_detaileither `none`, or a comma separated list of location details to track: `file`, `line`, or `column`what location details should be tracked when using caller_location, either `none`, or a comma separated list of location details, for which valid options are `file`, `line`, and `column` (default: `file,line,column`)lsdecode and print various parts of the crate metadata for a library crate (space separated)macro_backtraceshow macro backtraces (default: no)macro_statsprint some statistics about macro expansions (default: no)maximal_hir_to_mir_coveragesave as much information as possible about the correspondence between MIR and HIR as source scopes (default: no)merge_functionsone of: `disabled`, `trampolines`, or `aliases`control the operation of the MergeFunctions LLVM pass, taking the same values as the target option of the same namemeta_statsgather metadata statistics (default: no)metrics_dira paththe directory metrics emitted by rustc are dumped into (implicitly enables default set of metrics)min_function_alignmenta number that is a power of 2 between 1 and 2^29align all functions to at least this many bytes. Must be a power of 2mir_emit_retagemit Retagging MIR statements, interpreted e.g., by miri; implies -Zmir-opt-level=0 (default: no)mir_enable_passesa comma-separated list of strings, with elements beginning with + or -use like `-Zmir-enable-passes=+DestinationPropagation,-InstSimplify`. Forces the specified passes to be enabled, overriding all other checks. In particular, this will enable unsound (known-buggy and hence usually disabled) passes without further warning! Passes that are not specified are enabled or disabled by other flags as usual.mir_include_spanseither a boolean (`yes`, `no`, `on`, `off`, etc), or `nll` (default: `nll`)include extra comments in mir pretty printing, like line numbers and statement indices, details about types, etc. (boolean for all passes, 'nll' to enable in NLL MIR only, default: 'nll')mir_opt_levelMIR optimization level (0-4; default: 1 in non optimized builds and 2 in optimized builds)mir_preserve_ubkeep place mention statements and reads in trivial SwitchInt terminators, which are interpreted e.g., by miri; implies -Zmir-opt-level=0 (default: no)mir_strip_debuginfoone of `none`, `locals-in-tiny-functions`, or `all-locals`Whether to remove some of the MIR debug info from methods. Default: Nonemove_size_limitthe size at which the `large_assignments` lint starts to be emittedmutable_noaliasemit noalias metadata for mutable references (default: yes)namespaced_cratesallow crates to be namespaced by other crates (default: no)next_solvereither `globally` (when used without an argument), `coherence` (default) or `no`enable and configure the next generation trait solver used by rustcnll_factsdump facts from NLL analysis into side files (default: no)nll_facts_dirthe directory the NLL facts are dumped into (default: `nll-facts`)no_analysisparse and expand the source, but run no analysisno_codegenrun all passes except codegen; no outputno_generate_arange_sectionomit DWARF address ranges that give faster lookupsno_implied_bounds_compatdisable the compatibility version of the `implied_bounds_ty` queryno_jump_tablesdisable the jump tables and lookup tables that can be generated from a switch case loweringno_leak_checkdisable the 'leak check' for subtyping; unsound, but useful for testsno_linkcompile without linkingno_parallel_backendrun LLVM in non-parallel mode (while keeping codegen-units and ThinLTO)no_profiler_runtimeprevent automatic injection of the profiler_builtins crateno_steal_thirdon't steal the THIR when we're done with it; useful for rustc drivers (default: no)no_trait_vptrdisable generation of trait vptr in vtable for upcastingno_unique_section_namesdo not use unique names for text and data sections when -Z function-sections is usednormalize_docsnormalize associated items in rustdoc when generating documentationoffloada comma separated list of settings: `Enable`a list of offload flags to enable Mandatory setting: `=Enable` Currently the only option availableon_broken_pipeeither `kill`, `error`, or `inherit`behavior of std::io::ErrorKind::BrokenPipe (SIGPIPE)oomeither `panic` or `abort`panic strategy for out-of-memory handlingosx_rpath_install_namepass `-install_name @rpath/...` to the macOS linker (default: no)packed_bundled_libschange rlib format to store native libraries as archivespanic_abort_testssupport compiling tests with panic=abort (default: no)panic_in_dropeither `unwind` or `abort`panic strategy for panics in dropsparse_crate_root_onlyparse the crate root file only; do not parse other files, compile, assemble, or link (default: no)patchable_function_entryeither two comma separated integers (total_nops,prefix_nops), with prefix_nops <= total_nops, or one integer (total_nops)nop padding at function entrypltwhether to use the PLT when calling into shared libraries; only has effect for PIC code on systems with ELF binaries (default: PLT is disabled if full relro is enabled on x86_64)either no value or `legacy` (the default), or `next`enable polonius-based borrow-checker (default: no)pre_link_arga single extra argument to prepend the linker invocation (can be used several times)pre_link_argsextra arguments to prepend to the linker invocation (space separated)precise_enum_drop_elaborationuse a more precise version of drop elaboration for matches on enums (default: yes). This results in better codegen, but has caused miscompilations on some tier 2 platforms. See #77382 and #74551.print_codegen_statsprint codegen statistics (default: no)print_llvm_passesprint the LLVM optimization passes being run (default: no)print the result of the monomorphization collection pass (default: no)print layout information for each type encountered (default: no)proc_macro_backtraceshow backtraces for panics during proc-macro execution (default: no)proc_macro_execution_strategyone of supported execution strategies (`same-thread`, or `cross-thread`)how to run proc-macro code (default: same-thread)profile size of closuresprofile_sample_useuse the given `.prof` file for sampled profile-guided optimization (also known as AutoFDO)name of the profiler runtime crate to automatically inject (default: `profiler_builtins`)query_dep_graphenable queries of the dependency graph for regression testing (default: no)randomize the layout of types (default: no)reg_struct_returnOn x86-32 targets, it overrides the default ABI to return small structs in registers. It is UNSOUND to link together crates that use different values for this flag!regparmOn x86-32 targets, setting this to N causes the compiler to pass N arguments in registers EAX, EDX, and ECX instead of on the stack for"C", "cdecl", and "stdcall" fn.It is UNSOUND to link together crates that use different values for this flag!relax_elf_relocationswhether ELF relocations can be relaxedremap paths under the current working directory to this path prefixcomma separated list of scopes: `macro`, `diagnostics`, `debuginfo`, `object`, `all`remap path scope (default: all)remark_dirdirectory into which to write optimization remarks (if not specified, they will be written to standard error output)retpolineenables retpoline-indirect-branches and retpoline-indirect-calls target features (default: no)retpoline_external_thunkenables retpoline-external-thunk, retpoline-indirect-branches and retpoline-indirect-calls target features (default: no)sanitizercomma separated list of sanitizers: `address`, `cfi`, `dataflow`, `hwaddress`, `kcfi`, `kernel-address`, `leak`, `memory`, `memtag`, `safestack`, `shadow-call-stack`, or `thread`use a sanitizersanitizer_cfi_canonical_jump_tablesenable canonical jump tables (default: yes)sanitizer_cfi_generalize_pointersenable generalizing pointer types (default: no)enable normalizing integer types (default: no)sanitizer_dataflow_abilistadditional ABI list files that control how shadow parameters are passed (comma separated)sanitizer_kcfi_arityenable KCFI arity indicator (default: no)sanitizer_memory_track_origins0, 1, or 2enable origins tracking in MemorySanitizersanitizer_recoverenable recovery for selected sanitizerssaturating_float_castsmake float->int casts UB-free: numbers outside the integer type's range are clipped to the max/min integer respectively, and NaN is mapped to 0 (default: yes)self_profilerun the self profiler and output the raw event dataself_profile_countercounter used by the self profiler (default: `wall-time`), one of: `wall-time` (monotonic clock, i.e. `std::time::Instant`) `instructions:u` (retired instructions, userspace-only) `instructions-minus-irqs:u` (subtracting hardware interrupt counts for extra accuracy)self_profile_eventsspecify the events recorded by the self profiler; for example: `-Z self-profile-events=default,query-keys` all options: none, all, default, generic-activity, query-provider, query-cache-hit query-blocked, incr-cache-load, incr-result-hashing, query-keys, function-args, args, llvm, artifact-sizesshare_genericsmake the current crate share its generic instantiationsshell_argfilesallow argument files to be specified with POSIX "shell-style" argument quotingsimulate_remapped_rust_src_basesimulate the effect of remap-debuginfo = true at bootstrapping by remapping path to rust's source base directory. only meant for testing purposessmall_data_thresholdSet the threshold for objects to be stored in a "small data" sectionspan_debugforward proc_macro::Span's `Debug` impl to `Span`span_free_formatsexclude spans when debug-printing compiler state (default: no)split_dwarf_inliningprovide minimal debug info in the object/executable to facilitate online symbolication/stack traces in the absence of .dwo/.dwp files when using Split DWARFone of supported split dwarf modes (`split` or `single`)split dwarf variant (only if -Csplit-debuginfo is enabled and on relevant platform) (default: `split`) `split`: sections which do not require relocation are written into a DWARF object (`.dwo`) file which is ignored by the linker `single`: sections which do not require relocation are written into object file but ignored by the linkersplit_lto_unitenable LTO unit splitting (default: no)src_hash_algorithmone of `md5`, `sha1`, or `sha256`hash algorithm of source files in debug info (`md5`, `sha1`, or `sha256`)stack_protectorone of (`none` (default), `basic`, `strong`, or `all`)control stack smash protection strategy (`rustc --print stack-protector-strategies` for details)staticlib_allow_rdylib_depsallow staticlibs to have rust dylib dependenciesstaticlib_prefer_dynamicprefer dynamic linking to static linking for staticlibs (default: no)strict_init_checkscontrol if mem::uninitialized and mem::zeroed panic on more UBteachshow extended diagnostic help (default: no)temps_dirthe directory the intermediate files are written toterminal_urlseither a boolean (`yes`, `no`, `on`, `off`, etc), or `auto`use the OSC 8 hyperlink terminal specification to print hyperlinks in the compiler outputthinltoenable ThinLTO when possiblethreadsmeasure time of each LLVM pass (default: no)time_passesmeasure time of each rustc pass (default: no)time_passes_format`text` (default) or `json`the format to use for -Z time-passes (`text` (default) or `json`)tiny_const_eval_limitsets a tiny, non-configurable limit for const eval; useful for compiler teststls_modelone of supported TLS models (`rustc --print tls-models`)choose the TLS model to use (`rustc --print tls-models` for details)trace_macrosfor every macro invocation, print its name and arguments (default: no)track_diagnosticstracks where in rustc a diagnostic was emittedtranslate_additional_ftladditional fluent translation to preferentially use (for testing translation)emit directionality isolation markers in translated diagnosticstranslate_langa language identifierlanguage identifier for diagnostic outputtranslate_remapped_path_to_local_pathtranslate remapped paths into local paths when possible (default: yes)generate trap instructions for unreachable intrinsics (default: use target setting, usually yes)either no value or a non-negative numbertreat the `val`th error that occurs as bug (default if not specified: 0 - don't treat errors as bugs. default if specified without a value: 1 - treat the first error as bug)trim_diagnostic_pathsin diagnostics, use heuristics to shorten paths referring to itemsselect processor to schedule for (`rustc --print target-cpus` for details)typing_mode_borrowckenable `TypingMode::Borrowck`, changing the way opaque types are handled during MIR borrowckub_checksemit runtime checks for Undefined Behavior (default: -Cdebug-assertions)ui_testingemit compiler diagnostics in a form suitable for UI testing (default: no)uninit_const_chunk_thresholdallow generating const initializers with mixed init/uninit chunks, and set the maximum number of chunks for which this is allowed (default: 16)unleash_the_miri_inside_of_youtake the brakes off const evaluation. NOTE: this is unsound (default: no)`string` or `string=string`present the input source, unstable (and less-pretty) variants; `normal`, `identified`, `expanded`, `expanded,identified`, `expanded,hygiene` (with internal representations), `ast-tree` (raw AST before expansion), `ast-tree,expanded` (raw AST after expansion), `hir` (the HIR), `hir,identified`, `hir,typed` (HIR with types for each node), `hir-tree` (dump the raw HIR), `thir-tree`, `thir-flat`, `mir` (the MIR), or `mir-cfg` (graphviz formatted MIR)enable unsound and buggy MIR optimizations (default: no)adds unstable command line options to rustc interface (default: no)use_ctors_sectionuse legacy .ctors section for initializers rather than .init_arrayuse_sync_unwindGenerate sync unwind tables instead of async unwind tables (default: no)validate_mirvalidate MIR after each transformationverbose_asmadd descriptive comments from LLVM to the assembly (may change behavior) (default: no)verbose_internalsin general, enable more debug printouts (default: no)verify_llvm_irverify LLVM IR (default: no)virtual_function_eliminationenables dead virtual function elimination optimization. Requires `-Clto[=[fat,yes]]`wasi_exec_modeleither `command` or `reactor`whether to build a wasi command or reactorwasm_c_abi`spec`use spec-compliant C ABI for `wasm32-unknown-unknown` (deprecated, always enabled)write_long_types_to_diskwhether long type names should be written to files instead of being printed in errorsCourier, monospacenll-factsprofiler_builtinswall-time option: `assertion failed: !prefix.is_empty()`- `: option `` requires (=)