diff --git a/src/librustc_session/options.rs b/src/librustc_session/options.rs index a40c88a3b3f..a7bf1279f28 100644 --- a/src/librustc_session/options.rs +++ b/src/librustc_session/options.rs @@ -622,7 +622,7 @@ options! {CodegenOptions, CodegenSetter, basic_codegen_options, link_args: Vec = (Vec::new(), parse_list, [UNTRACKED], "extra arguments to append to the linker invocation (space separated)"), link_dead_code: bool = (false, parse_bool, [UNTRACKED], - "don't let linker strip dead code (turning it on can be used for code coverage)"), + "keep dead code at link time (useful for code coverage) (default: no)"), lto: LtoCli = (LtoCli::Unspecified, parse_lto, [TRACKED], "perform LLVM link-time optimizations"), target_cpu: Option = (None, parse_opt_string, [TRACKED], @@ -635,21 +635,21 @@ options! {CodegenOptions, CodegenSetter, basic_codegen_options, llvm_args: Vec = (Vec::new(), parse_list, [TRACKED], "a list of arguments to pass to LLVM (space separated)"), save_temps: bool = (false, parse_bool, [UNTRACKED], - "save all temporary output files during compilation"), + "save all temporary output files during compilation (default: no)"), rpath: bool = (false, parse_bool, [UNTRACKED], - "set rpath values in libs/exes"), + "set rpath values in libs/exes (default: no)"), overflow_checks: Option = (None, parse_opt_bool, [TRACKED], "use overflow checks for integer arithmetic"), no_prepopulate_passes: bool = (false, parse_bool, [TRACKED], - "don't pre-populate the pass manager with a list of passes"), + "give an empty list of passes to the pass manager (default: no)"), no_vectorize_loops: bool = (false, parse_bool, [TRACKED], - "don't run the loop vectorization optimization passes"), + "disable loop vectorization optimization passes (default: no)"), no_vectorize_slp: bool = (false, parse_bool, [TRACKED], - "don't run LLVM's SLP vectorization pass"), + "disable LLVM's SLP vectorization pass (default: no)"), soft_float: bool = (false, parse_bool, [TRACKED], - "use soft float ABI (*eabihf targets only)"), + "use soft float ABI (*eabihf targets only) (default: no)"), prefer_dynamic: bool = (false, parse_bool, [TRACKED], - "prefer dynamic linking to static linking"), + "prefer dynamic linking to static linking (default: no)"), no_redzone: Option = (None, parse_opt_bool, [TRACKED], "disable the use of the redzone"), relocation_model: Option = (None, parse_opt_string, [TRACKED], @@ -665,24 +665,24 @@ options! {CodegenOptions, CodegenSetter, basic_codegen_options, remark: Passes = (Passes::Some(Vec::new()), parse_passes, [UNTRACKED], "print remarks for these optimization passes (space separated, or \"all\")"), no_stack_check: bool = (false, parse_bool, [UNTRACKED], - "the `--no-stack-check` flag is deprecated and does nothing"), + "this option is deprecated and does nothing"), debuginfo: usize = (0, parse_uint, [TRACKED], - "debug info emission level, 0 = no debug info, 1 = line tables only, \ - 2 = full debug info with variable and type information"), + "debug info emission level (0 = no debug info, 1 = line tables only, \ + 2 = full debug info with variable and type information; default: 0)"), opt_level: String = ("0".to_string(), parse_string, [TRACKED], - "optimize with possible levels 0-3, s, or z"), + "optimization level (0-3, s, or z; default: 0)"), force_frame_pointers: Option = (None, parse_opt_bool, [TRACKED], "force use of the frame pointers"), debug_assertions: Option = (None, parse_opt_bool, [TRACKED], "explicitly enable the `cfg(debug_assertions)` directive"), inline_threshold: Option = (None, parse_opt_uint, [TRACKED], - "set the threshold for inlining a function (default: 225)"), + "set the threshold for inlining a function"), panic: Option = (None, parse_panic_strategy, [TRACKED], "panic strategy to compile crate with"), incremental: Option = (None, parse_opt_string, [UNTRACKED], "enable incremental compilation"), default_linker_libraries: bool = (false, parse_bool, [UNTRACKED], - "allow the linker to link its default libraries"), + "allow the linker to link its default libraries (default: no)"), linker_flavor: Option = (None, parse_linker_flavor, [UNTRACKED], "linker flavor"), linker_plugin_lto: LinkerPluginLto = (LinkerPluginLto::Disabled, @@ -701,41 +701,43 @@ options! {DebuggingOptions, DebuggingSetter, basic_debugging_options, codegen_backend: Option = (None, parse_opt_string, [TRACKED], "the backend to use"), verbose: bool = (false, parse_bool, [UNTRACKED], - "in general, enable more debug printouts"), + "in general, enable more debug printouts (default: no)"), + // o/w tests have closure@path span_free_formats: bool = (false, parse_bool, [UNTRACKED], - "when debug-printing compiler state, do not include spans"), // o/w tests have closure@path + "exclude spans when debug-printing compiler state (default: no)"), identify_regions: bool = (false, parse_bool, [UNTRACKED], - "make unnamed regions display as '# (where # is some non-ident unique id)"), + "display unnamed regions as `'`, using a non-ident unique id (default: no)"), borrowck: String = ("migrate".to_string(), parse_string, [UNTRACKED], - "select which borrowck is used (`mir` or `migrate`)"), + "select which borrowck is used (`mir` or `migrate`) (default: `migrate`)"), time_passes: bool = (false, parse_bool, [UNTRACKED], - "measure time of each rustc pass"), + "measure time of each rustc pass (default: no)"), time: bool = (false, parse_bool, [UNTRACKED], - "measure time of rustc processes"), + "measure time of rustc processes (default: no)"), time_llvm_passes: bool = (false, parse_bool, [UNTRACKED], - "measure time of each LLVM pass"), + "measure time of each LLVM pass (default: no)"), llvm_time_trace: bool = (false, parse_bool, [UNTRACKED], - "generate JSON tracing data file from LLVM data"), + "generate JSON tracing data file from LLVM data (default: no)"), input_stats: bool = (false, parse_bool, [UNTRACKED], - "gather statistics about the input"), + "gather statistics about the input (default: no)"), asm_comments: bool = (false, parse_bool, [TRACKED], - "generate comments into the assembly (may change behavior)"), + "generate comments into the assembly (may change behavior) (default: no)"), verify_llvm_ir: bool = (false, parse_bool, [TRACKED], - "verify LLVM IR"), + "verify LLVM IR (default: no)"), borrowck_stats: bool = (false, parse_bool, [UNTRACKED], - "gather borrowck statistics"), + "gather borrowck statistics (default: no)"), no_landing_pads: bool = (false, parse_bool, [TRACKED], - "omit landing pads for unwinding"), + "omit landing pads for unwinding (default: no)"), fewer_names: bool = (false, parse_bool, [TRACKED], - "reduce memory use by retaining fewer names within compilation artifacts (LLVM-IR)"), + "reduce memory use by retaining fewer names within compilation artifacts (LLVM-IR) \ + (default: no)"), meta_stats: bool = (false, parse_bool, [UNTRACKED], - "gather metadata statistics"), + "gather metadata statistics (default: no)"), print_link_args: bool = (false, parse_bool, [UNTRACKED], - "print the arguments passed to the linker"), + "print the arguments passed to the linker (default: no)"), print_llvm_passes: bool = (false, parse_bool, [UNTRACKED], - "prints the LLVM optimization passes being run"), + "print the LLVM optimization passes being run (default: no)"), ast_json: bool = (false, parse_bool, [UNTRACKED], - "print the AST as JSON and halt"), + "print the AST as JSON and halt (default: no)"), // We default to 1 here since we want to behave like // a sequential compiler for now. This'll likely be adjusted // in the future. Note that -Zthreads=0 is the way to get @@ -743,69 +745,72 @@ options! {DebuggingOptions, DebuggingSetter, basic_debugging_options, threads: usize = (1, parse_threads, [UNTRACKED], "use a thread pool with N threads"), ast_json_noexpand: bool = (false, parse_bool, [UNTRACKED], - "print the pre-expansion AST as JSON and halt"), + "print the pre-expansion AST as JSON and halt (default: no)"), ls: bool = (false, parse_bool, [UNTRACKED], - "list the symbols defined by a library crate"), + "list the symbols defined by a library crate (default: no)"), save_analysis: bool = (false, parse_bool, [UNTRACKED], "write syntax and type analysis (in JSON format) information, in \ - addition to normal output"), + addition to normal output (default: no)"), print_region_graph: bool = (false, parse_bool, [UNTRACKED], "prints region inference graph. \ - Use with RUST_REGION_GRAPH=help for more info"), + Use with RUST_REGION_GRAPH=help for more info (default: no)"), parse_only: bool = (false, parse_bool, [UNTRACKED], - "parse only; do not compile, assemble, or link"), + "parse only; do not compile, assemble, or link (default: no)"), dual_proc_macros: bool = (false, parse_bool, [TRACKED], - "load proc macros for both target and host, but only link to the target"), + "load proc macros for both target and host, but only link to the target (default: no)"), no_codegen: bool = (false, parse_bool, [TRACKED], - "run all passes except codegen; no output"), + "run all passes except codegen; no output (default: no)"), treat_err_as_bug: Option = (None, parse_treat_err_as_bug, [TRACKED], "treat error number `val` that occurs as bug"), report_delayed_bugs: bool = (false, parse_bool, [TRACKED], - "immediately print bugs registered with `delay_span_bug`"), + "immediately print bugs registered with `delay_span_bug` (default: no)"), macro_backtrace: bool = (false, parse_bool, [UNTRACKED], - "show macro backtraces"), + "show macro backtraces (default: no)"), teach: bool = (false, parse_bool, [TRACKED], - "show extended diagnostic help"), + "show extended diagnostic help (default: no)"), terminal_width: Option = (None, parse_opt_uint, [UNTRACKED], "set the current terminal width"), panic_abort_tests: bool = (false, parse_bool, [TRACKED], - "support compiling tests with panic=abort"), + "support compiling tests with panic=abort (default: no)"), dep_tasks: bool = (false, parse_bool, [UNTRACKED], - "print tasks that execute and the color their dep node gets (requires debug build)"), + "print tasks that execute and the color their dep node gets (requires debug build) \ + (default: no)"), incremental_info: bool = (false, parse_bool, [UNTRACKED], - "print high-level information about incremental reuse (or the lack thereof)"), + "print high-level information about incremental reuse (or the lack thereof) \ + (default: no)"), incremental_verify_ich: bool = (false, parse_bool, [UNTRACKED], - "verify incr. comp. hashes of green query instances"), + "verify incr. comp. hashes of green query instances (default: no)"), incremental_ignore_spans: bool = (false, parse_bool, [UNTRACKED], - "ignore spans during ICH computation -- used for testing"), + "ignore spans during ICH computation -- used for testing (default: no)"), instrument_mcount: bool = (false, parse_bool, [TRACKED], - "insert function instrument code for mcount-based tracing"), + "insert function instrument code for mcount-based tracing (default: no)"), dump_dep_graph: bool = (false, parse_bool, [UNTRACKED], - "dump the dependency graph to $RUST_DEP_GRAPH (default: /tmp/dep_graph.gv)"), + "dump the dependency graph to $RUST_DEP_GRAPH (default: /tmp/dep_graph.gv) \ + (default: no)"), query_dep_graph: bool = (false, parse_bool, [UNTRACKED], - "enable queries of the dependency graph for regression testing"), + "enable queries of the dependency graph for regression testing (default: no)"), no_analysis: bool = (false, parse_bool, [UNTRACKED], - "parse and expand the source, but run no analysis"), + "parse and expand the source, but run no analysis (default: no)"), unstable_options: bool = (false, parse_bool, [UNTRACKED], - "adds unstable command line options to rustc interface"), + "adds unstable command line options to rustc interface (default: no)"), force_overflow_checks: Option = (None, parse_opt_bool, [TRACKED], "force overflow checks on or off"), trace_macros: bool = (false, parse_bool, [UNTRACKED], - "for every macro invocation, print its name and arguments"), + "for every macro invocation, print its name and arguments (default: no)"), debug_macros: bool = (false, parse_bool, [TRACKED], - "emit line numbers debug info inside macros"), + "emit line numbers debug info inside macros (default: no)"), no_generate_arange_section: bool = (false, parse_bool, [TRACKED], - "don't generate DWARF address ranges that give faster lookups"), + "omit DWARF address ranges that give faster lookups (default: no)"), keep_hygiene_data: bool = (false, parse_bool, [UNTRACKED], - "don't clear the hygiene data after analysis"), + "keep hygiene data after analysis (default: no)"), show_span: Option = (None, parse_opt_string, [TRACKED], "show spans for compiler debugging (expr|pat|ty)"), print_type_sizes: bool = (false, parse_bool, [UNTRACKED], - "print layout information for each type encountered"), + "print layout information for each type encountered (default: no)"), print_mono_items: Option = (None, parse_opt_string, [UNTRACKED], "print the result of the monomorphization collection pass"), mir_opt_level: usize = (1, parse_uint, [TRACKED], - "set the MIR optimization level (0-3, default: 1)"), + "MIR optimization level (0-3; default: 1)"), mutable_noalias: bool = (false, parse_bool, [TRACKED], "emit noalias metadata for mutable references (default: no)"), dump_mir: Option = (None, parse_opt_string, [UNTRACKED], @@ -817,29 +822,30 @@ options! {DebuggingOptions, DebuggingSetter, basic_debugging_options, `foo | bar` all passes for function names containing 'foo' or 'bar'."), dump_mir_dir: String = ("mir_dump".to_string(), parse_string, [UNTRACKED], - "the directory the MIR is dumped into"), + "the directory the MIR is dumped into (default: `mir_dump`)"), dump_mir_graphviz: bool = (false, parse_bool, [UNTRACKED], - "in addition to `.mir` files, create graphviz `.dot` files"), + "in addition to `.mir` files, create graphviz `.dot` files (default: no)"), dump_mir_dataflow: bool = (false, parse_bool, [UNTRACKED], - "in addition to `.mir` files, create graphviz `.dot` files with dataflow results"), + "in addition to `.mir` files, create graphviz `.dot` files with dataflow results (default: no)"), dump_mir_exclude_pass_number: bool = (false, parse_bool, [UNTRACKED], - "if set, exclude the pass number when dumping MIR (used in tests)"), + "exclude the pass number when dumping MIR (used in tests) (default: no)"), mir_emit_retag: bool = (false, parse_bool, [TRACKED], - "emit Retagging MIR statements, interpreted e.g., by miri; implies -Zmir-opt-level=0"), + "emit Retagging MIR statements, interpreted e.g., by miri; implies -Zmir-opt-level=0 \ + (default: no)"), perf_stats: bool = (false, parse_bool, [UNTRACKED], - "print some performance-related statistics"), + "print some performance-related statistics (default: no)"), query_stats: bool = (false, parse_bool, [UNTRACKED], - "print some statistics about the query system"), + "print some statistics about the query system (default: no)"), hir_stats: bool = (false, parse_bool, [UNTRACKED], - "print some statistics about AST and HIR"), + "print some statistics about AST and HIR (default: no)"), always_encode_mir: bool = (false, parse_bool, [TRACKED], - "encode MIR of all functions into the crate metadata"), + "encode MIR of all functions into the crate metadata (default: no)"), unleash_the_miri_inside_of_you: bool = (false, parse_bool, [TRACKED], - "take the breaks off const evaluation. NOTE: this is unsound"), + "take the brakes off const evaluation. NOTE: this is unsound (default: no)"), osx_rpath_install_name: bool = (false, parse_bool, [TRACKED], - "pass `-install_name @rpath/...` to the macOS linker"), + "pass `-install_name @rpath/...` to the macOS linker (default: no)"), sanitizer: Option = (None, parse_sanitizer, [TRACKED], - "use a sanitizer"), + "use a sanitizer"), sanitizer_recover: Vec = (vec![], parse_sanitizer_list, [TRACKED], "enable recovery for selected sanitizers"), sanitizer_memory_track_origins: usize = (0, parse_sanitizer_memory_track_origins, [TRACKED], @@ -849,23 +855,24 @@ options! {DebuggingOptions, DebuggingSetter, basic_debugging_options, print_fuel: Option = (None, parse_opt_string, [TRACKED], "make rustc print the total optimization fuel used by a crate"), force_unstable_if_unmarked: bool = (false, parse_bool, [TRACKED], - "force all crates to be `rustc_private` unstable"), + "force all crates to be `rustc_private` unstable (default: no)"), pre_link_arg: (/* redirected to pre_link_args */) = ((), parse_string_push, [UNTRACKED], "a single extra argument to prepend the linker invocation (can be used several times)"), pre_link_args: Vec = (Vec::new(), parse_list, [UNTRACKED], "extra arguments to prepend to the linker invocation (space separated)"), profile: bool = (false, parse_bool, [TRACKED], - "insert profiling code"), + "insert profiling code (default: no)"), no_profiler_runtime: bool = (false, parse_bool, [TRACKED], - "don't automatically inject the profiler_builtins crate"), + "prevent automatic injection of the profiler_builtins crate"), relro_level: Option = (None, parse_relro_level, [TRACKED], "choose which RELRO level to use"), nll_facts: bool = (false, parse_bool, [UNTRACKED], - "dump facts from NLL analysis into side files"), + "dump facts from NLL analysis into side files (default: no)"), dont_buffer_diagnostics: bool = (false, parse_bool, [UNTRACKED], - "emit diagnostics rather than buffering (breaks NLL error downgrading, sorting)"), + "emit diagnostics rather than buffering (breaks NLL error downgrading, sorting) \ + (default: no)"), polonius: bool = (false, parse_bool, [UNTRACKED], - "enable polonius-based borrow-checker"), + "enable polonius-based borrow-checker (default: no)"), thinlto: Option = (None, parse_opt_bool, [TRACKED], "enable ThinLTO when possible"), inline_in_all_cgus: Option = (None, parse_opt_bool, [TRACKED], @@ -874,12 +881,12 @@ options! {DebuggingOptions, DebuggingSetter, basic_debugging_options, "choose the TLS model to use (`rustc --print tls-models` for details)"), saturating_float_casts: bool = (false, parse_bool, [TRACKED], "make 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"), + the max/min integer respectively, and NaN is mapped to 0 (default: no)"), human_readable_cgu_names: bool = (false, parse_bool, [TRACKED], - "generate human-readable, predictable names for codegen units"), + "generate human-readable, predictable names for codegen units (default: no)"), dep_info_omit_d_target: bool = (false, parse_bool, [TRACKED], "in dep-info output, omit targets for tracking dependencies of the dep-info files \ - themselves"), + themselves (default: no)"), unpretty: Option = (None, parse_unpretty, [UNTRACKED], "present the input source, unstable (and less-pretty) variants; valid types are any of the types for `--pretty`, as well as: @@ -894,21 +901,22 @@ options! {DebuggingOptions, DebuggingSetter, basic_debugging_options, // preserving that temporarily, but we're likely to switch the default // soon. run_dsymutil: bool = (true, parse_bool, [TRACKED], - "run `dsymutil` and delete intermediate object files"), + "if on Mac, run `dsymutil` and delete intermediate object files (default: yes)"), ui_testing: bool = (false, parse_bool, [UNTRACKED], - "format compiler diagnostics in a way that's better suitable for UI testing"), + "emit compiler diagnostics in a form suitable for UI testing (default: no)"), embed_bitcode: bool = (false, parse_bool, [TRACKED], - "embed LLVM bitcode in object files"), + "embed LLVM bitcode in object files (default: no)"), strip_debuginfo_if_disabled: bool = (false, parse_bool, [TRACKED], - "tell the linker to strip debuginfo when building without debuginfo enabled"), + "tell the linker to strip debuginfo when building without debuginfo enabled \ + (default: no)"), share_generics: Option = (None, parse_opt_bool, [TRACKED], "make the current crate share its generic instantiations"), no_parallel_llvm: bool = (false, parse_bool, [UNTRACKED], - "don't run LLVM in parallel (while keeping codegen-units and ThinLTO)"), + "run LLVM in non-parallel mode (while keeping codegen-units and ThinLTO) (default: no)"), no_leak_check: bool = (false, parse_bool, [UNTRACKED], - "disables the 'leak check' for subtyping; unsound, but useful for tests"), + "disable the 'leak check' for subtyping; unsound, but useful for tests (default: no)"), no_interleave_lints: bool = (false, parse_bool, [UNTRACKED], - "don't interleave execution of lints; allows benchmarking individual lints"), + "execute lints separately; allows benchmarking individual lints (default: no)"), crate_attr: Vec = (Vec::new(), parse_string_push, [TRACKED], "inject the given attribute in the crate"), self_profile: SwitchWithOptPath = (SwitchWithOptPath::Disabled, @@ -916,18 +924,18 @@ options! {DebuggingOptions, DebuggingSetter, basic_debugging_options, "run the self profiler and output the raw event data"), // keep this in sync with the event filter names in librustc_data_structures/profiling.rs self_profile_events: Option> = (None, parse_opt_comma_list, [UNTRACKED], - "specifies which kinds of events get recorded by the self profiler; + "specify 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, query-keys, function-args, args, llvm"), emit_stack_sizes: bool = (false, parse_bool, [UNTRACKED], - "emits a section containing stack size metadata"), + "emit a section containing stack size metadata (default: no)"), plt: Option = (None, parse_opt_bool, [TRACKED], - "whether 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)"), + "whether 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)"), merge_functions: Option = (None, parse_merge_functions, [TRACKED], - "control the operation of the MergeFunctions LLVM pass, taking + "control the operation of the MergeFunctions LLVM pass, taking \ the same values as the target option of the same name"), allow_features: Option> = (None, parse_opt_comma_list, [TRACKED], "only allow the listed language features to be enabled in code (space separated)"), @@ -935,22 +943,24 @@ options! {DebuggingOptions, DebuggingSetter, basic_debugging_options, parse_symbol_mangling_version, [TRACKED], "which mangling version to use for symbol names"), binary_dep_depinfo: bool = (false, parse_bool, [TRACKED], - "include artifacts (sysroot, crate dependencies) used during compilation in dep-info"), + "include artifacts (sysroot, crate dependencies) used during compilation in dep-info \ + (default: no)"), insert_sideeffect: bool = (false, parse_bool, [TRACKED], "fix undefined behavior when a thread doesn't eventually make progress \ - (such as entering an empty infinite loop) by inserting llvm.sideeffect"), + (such as entering an empty infinite loop) by inserting llvm.sideeffect \ + (default: no)"), deduplicate_diagnostics: bool = (true, parse_bool, [UNTRACKED], - "deduplicate identical diagnostics"), + "deduplicate identical diagnostics (default: yes)"), control_flow_guard: CFGuard = (CFGuard::Disabled, parse_cfguard, [UNTRACKED], "use Windows Control Flow Guard (`disabled`, `nochecks` or `checks`)"), no_link: bool = (false, parse_bool, [TRACKED], - "compile without linking"), + "compile without linking (default: no)"), link_only: bool = (false, parse_bool, [TRACKED], - "link the `.rlink` file generated by `-Z no-link`"), + "link the `.rlink` file generated by `-Z no-link` (default: no)"), new_llvm_pass_manager: bool = (false, parse_bool, [TRACKED], - "use new LLVM pass manager"), + "use new LLVM pass manager (default: no)"), link_native_libraries: bool = (true, parse_bool, [UNTRACKED], - "link native libraries in the linker invocation"), + "link native libraries in the linker invocation (default: yes)"), src_hash_algorithm: Option = (None, parse_src_file_hash, [TRACKED], "hash algorithm of source files in debug info (`md5`, or `sha1`)"), }