rust/compiler
bors 3d087e6044 Auto merge of #150309 - dianqk:ssa-range, r=cjgillot
New MIR Pass: SsaRangePropagation

As an alternative to https://github.com/rust-lang/rust/pull/150192.

Introduces a new pass that propagates the known ranges of SSA locals.
We can know the ranges of SSA locals at some locations for the following code:
```rust
fn foo(a: u32) {
  let b = a < 9;
  if b {
    let c = b; // c is true since b is whitin the range [1, 2)
    let d = a < 8; // d is true since b whitin the range [0, 9)
  }
}
```

This PR only implements a trivial range: we know one value on switch, assert, and assume.
2026-01-19 03:04:55 +00:00
..
rustc Auto merge of #148925 - madsmtm:jemalloc-perf, r=Kobzol 2025-11-23 20:34:07 +00:00
rustc_abi Rollup merge of #149991 - Flakebi:gpu-kernel-cc, r=workingjubilee 2026-01-02 23:13:21 +01:00
rustc_arena Finish transition from semitransparent to semiopaque for rustc_macro_transparency 2026-01-08 19:14:45 +01:00
rustc_ast Implement incremental caching for derive macro expansions 2026-01-16 07:36:36 +01:00
rustc_ast_ir Implement &pin patterns and ref pin bindings 2025-11-10 09:57:08 +08:00
rustc_ast_lowering Use find_attr instead of attr::contains_name in lower_const_item_rhs 2026-01-18 13:38:19 +08:00
rustc_ast_passes Auto merge of #150640 - AprilNEA:mgca-merge-associated-const-equality, r=BoxyUwU 2026-01-06 01:36:53 +00:00
rustc_ast_pretty rename eii-extern-target 2026-01-12 08:07:23 +01:00
rustc_attr_parsing Auto merge of #151339 - JonathanBrouwer:rollup-DYrRtnq, r=JonathanBrouwer 2026-01-18 21:30:40 +00:00
rustc_baked_icu_data Unify the configuration of the compiler docs 2025-11-05 11:25:27 +00:00
rustc_borrowck remove borrowck handling for inline const patterns 2026-01-08 08:44:04 -08:00
rustc_builtin_macros Supress some lookup errors if a module contains compile_error! 2026-01-18 14:37:57 +01:00
rustc_codegen_cranelift Stabilize alloc_layout_extra 2026-01-11 16:39:18 +03:00
rustc_codegen_gcc Remove Deref/DerefMut impl for Providers. 2026-01-14 15:55:59 +11:00
rustc_codegen_llvm Port #[rustc_allocator_zeroed_variant] to attr parser 2026-01-18 20:13:13 +01:00
rustc_codegen_ssa Port #[rustc_allocator_zeroed] to attr parser 2026-01-18 20:12:08 +01:00
rustc_const_eval Rollup merge of #151235 - type-info-rename-bits, r=oli-obk 2026-01-18 03:16:46 -05:00
rustc_data_structures Make UnordSet and UnordMap const Default and use it in Resolver 2026-01-16 02:38:18 +00:00
rustc_driver Unify the configuration of the compiler docs 2025-11-05 11:25:27 +00:00
rustc_driver_impl Rollup merge of #150767 - all-help, r=jieyouxu 2026-01-18 18:26:03 +01:00
rustc_error_codes Port #[instruction_set] to attribute parser 2025-12-31 03:01:05 +01:00
rustc_error_messages Remove unused pop_span_label method 2025-11-21 14:16:12 +00:00
rustc_errors remove fixme & update stderr files 2025-12-16 13:23:48 +00:00
rustc_expand Supress some lookup errors if a module contains compile_error! 2026-01-18 14:37:57 +01:00
rustc_feature remove trailing periods in built-in attribute gate messages 2026-01-17 21:43:50 -05:00
rustc_fluent_macro move and rename proc_macro::tracked_{env::var,path::path} 2025-11-26 22:44:25 +01:00
rustc_fs_util Avoid using env::temp when linking a binary 2025-12-24 06:41:42 +00:00
rustc_graphviz change non-canonical clone impl to {*self}, fix some doc comments 2025-12-20 13:46:22 +00:00
rustc_hashes some cleanups in compiler 2025-10-12 08:08:30 +00:00
rustc_hir Auto merge of #151339 - JonathanBrouwer:rollup-DYrRtnq, r=JonathanBrouwer 2026-01-18 21:30:40 +00:00
rustc_hir_analysis Rollup merge of #151166 - issue-148121, r=tiif 2026-01-16 08:03:59 +01:00
rustc_hir_id rustc_hir_id: Add a comment explaining why the crate exists 2025-08-20 15:04:00 -07:00
rustc_hir_pretty Introduce hir::ConstArgKind::Array 2026-01-10 12:41:50 +09:00
rustc_hir_typeck Rollup merge of #150979 - typeck-pat, r=lcnr 2026-01-15 21:39:03 +11:00
rustc_incremental Implement incremental caching for derive macro expansions 2026-01-16 07:36:36 +01:00
rustc_index simplify words initialization using Rc::new_zeroed 2026-01-16 04:25:12 +05:30
rustc_index_macros Revert introduction of [workspace.dependencies]. 2025-09-02 19:12:54 +10:00
rustc_infer Use the name var_kinds more. 2026-01-08 13:37:34 +11:00
rustc_interface Implement incremental caching for derive macro expansions 2026-01-16 07:36:36 +01:00
rustc_lexer lexer/parser: ensure deps use the same unicode version 2025-12-27 11:20:42 +01:00
rustc_lint Auto merge of #151056 - mejrs:do_not_recommend, r=JonathanBrouwer 2026-01-15 19:35:19 +00:00
rustc_lint_defs Auto merge of #151056 - mejrs:do_not_recommend, r=JonathanBrouwer 2026-01-15 19:35:19 +00:00
rustc_llvm Rollup merge of #150511 - Sa4dUs:offload-inline, r=ZuseZ4 2025-12-31 14:30:48 +01:00
rustc_log Restrict sysroot crate imports to those defined in this repo. 2025-10-15 13:17:25 +01:00
rustc_macros Rename fatal_cycle as cycle_fatal. 2026-01-16 14:55:03 +11:00
rustc_metadata Rollup merge of #151242 - master, r=JonathanBrouwer 2026-01-18 03:16:46 -05:00
rustc_middle Rollup merge of #151203 - revert-QueryStackFrame-split, r=oli-obk 2026-01-16 13:57:47 +01:00
rustc_mir_build Fix ICE: When Trying to check visibility of a #[type_const], check RHS instead. 2026-01-16 20:30:58 -08:00
rustc_mir_dataflow Clarify MoveData::init_loc_map. 2026-01-02 09:29:26 +11:00
rustc_mir_transform Auto merge of #150309 - dianqk:ssa-range, r=cjgillot 2026-01-19 03:04:55 +00:00
rustc_monomorphize Remove Deref/DerefMut impl for Providers. 2026-01-14 15:55:59 +11:00
rustc_next_trait_solver Auto merge of #150859 - nnethercote:opt-Canonicalizer-flag-checks, r=lcnr 2026-01-13 17:36:45 +00:00
rustc_parse Rollup merge of #151099 - issue-84327-2, r=fmease 2026-01-14 22:30:00 +01:00
rustc_parse_format rustc_parse_format: improve diagnostics for unsupported python numeric grouping 2026-01-11 23:42:38 +05:30
rustc_passes Auto merge of #151339 - JonathanBrouwer:rollup-DYrRtnq, r=JonathanBrouwer 2026-01-18 21:30:40 +00:00
rustc_pattern_analysis THIR patterns: Always use type str for string-constant-value nodes 2026-01-16 12:17:48 +11:00
rustc_privacy Unify the configuration of the compiler docs 2025-11-05 11:25:27 +00:00
rustc_proc_macro Update literal-escaper version to 0.0.7 2026-01-08 14:10:33 +01:00
rustc_public Auto merge of #148766 - cjgillot:mir-const-runtime-checks, r=RalfJung,saethlin 2025-12-22 06:58:28 +00:00
rustc_public_bridge Overhaul filename handling for cross-compiler consistency 2025-12-12 07:33:09 +01:00
rustc_query_impl Use with_reduced_queries to avoid query cycles. 2026-01-16 19:21:35 +11:00
rustc_query_system Rollup merge of #151203 - revert-QueryStackFrame-split, r=oli-obk 2026-01-16 13:57:47 +01:00
rustc_resolve Auto merge of #151325 - JonathanBrouwer:rollup-YoCcqTr, r=JonathanBrouwer 2026-01-18 18:08:26 +00:00
rustc_sanitizers Port #[cfi_encoding] to attribute parser 2025-12-21 22:11:33 +01:00
rustc_serialize Allow internal_features lint in doc tests 2025-11-05 11:25:29 +00:00
rustc_session Rollup merge of #150767 - all-help, r=jieyouxu 2026-01-18 18:26:03 +01:00
rustc_span Rollup merge of #151235 - type-info-rename-bits, r=oli-obk 2026-01-18 03:16:46 -05:00
rustc_symbol_mangling refactor destructure_const 2025-12-28 16:12:27 +00:00
rustc_target Rollup merge of #150966 - arch-powerpc64le, r=petrochenkov 2026-01-14 22:29:57 +01:00
rustc_thread_pool change non-canonical clone impl to {*self}, fix some doc comments 2025-12-20 13:46:22 +00:00
rustc_trait_selection Normalize type_const items even with feature generic_const_exprs 2026-01-18 12:46:42 +08:00
rustc_traits add const_of_item query and use it in normalization 2025-11-08 13:50:47 -05:00
rustc_transmute Clean up src/dst transmute mess. 2026-01-12 09:22:58 +11:00
rustc_ty_utils Remove redundant call to erase_and_anonymize_regions. 2026-01-12 09:22:58 +11:00
rustc_type_ir Rollup merge of #150861 - folding-cleanups, r=lcnr 2026-01-12 13:32:07 +01:00
rustc_type_ir_macros Provide an extended framework for type visit, for use in rust-analyzer 2025-12-16 01:47:28 +02:00
rustc_windows_rc [win] Use find-msvc-tools instead of cc to find the linker and rc on Windows 2025-09-19 12:00:30 -07:00