Skip to content

Perform DestinationPropagation on places.#147614

Draft
cjgillot wants to merge 3 commits intorust-lang:mainfrom
cjgillot:dest-prop-place
Draft

Perform DestinationPropagation on places.#147614
cjgillot wants to merge 3 commits intorust-lang:mainfrom
cjgillot:dest-prop-place

Conversation

@cjgillot
Copy link
Copy Markdown
Contributor

@cjgillot cjgillot commented Oct 12, 2025

@rustbot rustbot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Oct 12, 2025
@rust-log-analyzer

This comment was marked as outdated.

@rust-log-analyzer

This comment has been minimized.

@cjgillot
Copy link
Copy Markdown
Contributor Author

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

rust-bors Bot added a commit that referenced this pull request Oct 12, 2025
Perform DestinationPropagation on places.
@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Oct 12, 2025
@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented Oct 13, 2025

☀️ Try build successful (CI)
Build commit: beffb46 (beffb46b22c244142de90ea73fcb24c3ec3e03a6, parent: 2300c2aef7dbc2a7bbbeaa9894d07d459abd9bc6)

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (beffb46): comparison URL.

Overall result: ❌✅ regressions and improvements - please read the text below

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

Next Steps: If you can justify the regressions found in this try perf run, please do so in sufficient writing along with @rustbot label: +perf-regression-triaged. If not, please fix the regressions and do another perf run. If its results are neutral or positive, the label will be automatically removed.

@bors rollup=never
@rustbot label: -S-waiting-on-perf +perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
0.9% [0.1%, 5.5%] 166
Regressions ❌
(secondary)
0.8% [0.1%, 3.7%] 158
Improvements ✅
(primary)
-0.9% [-2.0%, -0.1%] 12
Improvements ✅
(secondary)
-0.8% [-3.3%, -0.1%] 26
All ❌✅ (primary) 0.7% [-2.0%, 5.5%] 178

Max RSS (memory usage)

Results (primary 0.6%, secondary -1.0%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
3.2% [0.4%, 5.9%] 5
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-2.7% [-3.6%, -1.7%] 4
Improvements ✅
(secondary)
-1.0% [-1.0%, -1.0%] 1
All ❌✅ (primary) 0.6% [-3.6%, 5.9%] 9

Cycles

Results (primary 1.9%, secondary 2.0%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
2.6% [1.9%, 3.8%] 10
Regressions ❌
(secondary)
2.3% [1.4%, 4.2%] 14
Improvements ✅
(primary)
-1.4% [-1.6%, -1.2%] 2
Improvements ✅
(secondary)
-2.4% [-2.4%, -2.4%] 1
All ❌✅ (primary) 1.9% [-1.6%, 3.8%] 12

Binary size

Results (primary -0.2%, secondary -0.1%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.2% [0.0%, 0.7%] 40
Regressions ❌
(secondary)
0.4% [0.0%, 1.7%] 60
Improvements ✅
(primary)
-0.4% [-2.2%, -0.0%] 64
Improvements ✅
(secondary)
-0.4% [-2.2%, -0.0%] 71
All ❌✅ (primary) -0.2% [-2.2%, 0.7%] 104

Bootstrap: 472.507s -> 472.183s (-0.07%)
Artifact size: 388.12 MiB -> 387.74 MiB (-0.10%)

@rustbot rustbot added perf-regression Performance regression. and removed S-waiting-on-perf Status: Waiting on a perf run to be completed. labels Oct 13, 2025
@cjgillot
Copy link
Copy Markdown
Contributor Author

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

rust-bors Bot added a commit that referenced this pull request Oct 14, 2025
Perform DestinationPropagation on places.
@rust-bors

This comment has been minimized.

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Oct 14, 2025
@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented Oct 14, 2025

☀️ Try build successful (CI)
Build commit: 7abf5cf (7abf5cf2df580e4433bd0c247bcdf18e1dab779b, parent: e100792918c8bd9e0cb830f96fc9b171e8892fa1)

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (7abf5cf): comparison URL.

Overall result: ❌✅ regressions and improvements - please read the text below

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

Next Steps: If you can justify the regressions found in this try perf run, please do so in sufficient writing along with @rustbot label: +perf-regression-triaged. If not, please fix the regressions and do another perf run. If its results are neutral or positive, the label will be automatically removed.

@bors rollup=never
@rustbot label: -S-waiting-on-perf +perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
0.8% [0.1%, 4.9%] 165
Regressions ❌
(secondary)
0.8% [0.0%, 3.7%] 153
Improvements ✅
(primary)
-0.8% [-2.1%, -0.1%] 14
Improvements ✅
(secondary)
-0.8% [-3.4%, -0.1%] 30
All ❌✅ (primary) 0.7% [-2.1%, 4.9%] 179

Max RSS (memory usage)

Results (primary -1.7%, secondary 3.0%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
4.6% [1.0%, 6.3%] 13
Improvements ✅
(primary)
-1.7% [-3.2%, -0.7%] 6
Improvements ✅
(secondary)
-2.1% [-2.6%, -1.2%] 4
All ❌✅ (primary) -1.7% [-3.2%, -0.7%] 6

Cycles

Results (primary 1.3%, secondary 2.3%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
2.5% [1.6%, 3.8%] 3
Regressions ❌
(secondary)
2.7% [1.7%, 4.3%] 12
Improvements ✅
(primary)
-2.3% [-2.3%, -2.3%] 1
Improvements ✅
(secondary)
-2.4% [-2.4%, -2.4%] 1
All ❌✅ (primary) 1.3% [-2.3%, 3.8%] 4

Binary size

Results (primary -0.2%, secondary -0.3%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.3% [0.0%, 0.8%] 36
Regressions ❌
(secondary)
0.5% [0.1%, 1.7%] 16
Improvements ✅
(primary)
-0.4% [-2.2%, -0.0%] 69
Improvements ✅
(secondary)
-0.5% [-2.3%, -0.0%] 73
All ❌✅ (primary) -0.2% [-2.2%, 0.8%] 105

Bootstrap: 473.51s -> 471.623s (-0.40%)
Artifact size: 388.11 MiB -> 387.82 MiB (-0.07%)

@rustbot rustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Oct 14, 2025
@bors
Copy link
Copy Markdown
Collaborator

bors commented Oct 18, 2025

☔ The latest upstream changes (presumably #147654) made this pull request unmergeable. Please resolve the merge conflicts.

@rust-log-analyzer

This comment has been minimized.

@bors
Copy link
Copy Markdown
Collaborator

bors commented Oct 22, 2025

☔ The latest upstream changes (presumably #147687) made this pull request unmergeable. Please resolve the merge conflicts.

@cjgillot cjgillot force-pushed the dest-prop-place branch from 26fc8e3 to ffe1f1e Compare May 3, 2026 05:32
@cjgillot cjgillot force-pushed the dest-prop-place branch from ffe1f1e to 9d183e9 Compare May 3, 2026 14:15
@rust-log-analyzer

This comment has been minimized.

@cjgillot cjgillot force-pushed the dest-prop-place branch from 9d183e9 to a968bed Compare May 3, 2026 21:32
@rust-log-analyzer
Copy link
Copy Markdown
Collaborator

The job pr-check-2 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)

---- [codegen] tests/codegen-llvm/debuginfo-proc-macro/mir_inlined_twice_var_locs.rs stdout ----
------FileCheck stdout------------------------------

------FileCheck stderr------------------------------
/checkout/tests/codegen-llvm/debuginfo-proc-macro/mir_inlined_twice_var_locs.rs:12:15: error: CHECK-DAG: expected string not found in input
// CHECK-DAG: dbg_declare(ptr %n.dbg.spill{{[0-9]}}, ![[#var_dbg]], !DIExpression(), ![[#var_loc2:]])
              ^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/debuginfo-proc-macro/mir_inlined_twice_var_locs/mir_inlined_twice_var_locs.ll:1:1: note: scanning from here
; ModuleID = 'mir_inlined_twice_var_locs.69d8584679f052af-cgu.0'
^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/debuginfo-proc-macro/mir_inlined_twice_var_locs/mir_inlined_twice_var_locs.ll:1:1: note: with "var_dbg" equal to "1275"
; ModuleID = 'mir_inlined_twice_var_locs.69d8584679f052af-cgu.0'
^
/checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/debuginfo-proc-macro/mir_inlined_twice_var_locs/mir_inlined_twice_var_locs.ll:31:3: note: possible intended match here
 #dbg_declare(ptr %_1.dbg.spill, !123, !DIExpression(), !126)
  ^

Input file: /checkout/obj/build/x86_64-unknown-linux-gnu/test/codegen-llvm/debuginfo-proc-macro/mir_inlined_twice_var_locs/mir_inlined_twice_var_locs.ll
Check file: /checkout/tests/codegen-llvm/debuginfo-proc-macro/mir_inlined_twice_var_locs.rs

-dump-input=help explains the following input dump.

Input was:
<<<<<<
          1: ; ModuleID = 'mir_inlined_twice_var_locs.69d8584679f052af-cgu.0' 
dag:12'0     X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
dag:12'1                                                                       with "var_dbg" equal to "1275"
          2: source_filename = "mir_inlined_twice_var_locs.69d8584679f052af-cgu.0" 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          3: target datalayout = "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-i128:128-n32:64-S128-ni:1:10:20" 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          4: target triple = "wasm32-unknown-wasip1" 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          5:  
dag:12'0     ~
          6: %"std::ffi::os_str::OsString" = type { %"std::sys::os_str::bytes::Buf" } 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          7: %"std::sys::os_str::bytes::Buf" = type { %"alloc::vec::Vec<u8>" } 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          8: %"alloc::vec::Vec<u8>" = type { %"alloc::raw_vec::RawVec<u8>", i32 } 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          9: %"alloc::raw_vec::RawVec<u8>" = type { %"alloc::raw_vec::RawVecInner", %"core::marker::PhantomData<u8>" } 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         10: %"alloc::raw_vec::RawVecInner" = type { i32, ptr, %"alloc::alloc::Global" } 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         11: %"alloc::alloc::Global" = type {} 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         12: %"core::marker::PhantomData<u8>" = type {} 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         13: %"core::fmt::rt::Argument<'_>" = type { %"core::fmt::rt::ArgumentType<'_>" } 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         14: %"core::fmt::rt::ArgumentType<'_>" = type { ptr, [1 x i32] } 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         15:  
dag:12'0     ~
         16: @vtable.0 = private constant <{ [12 x i8], ptr, ptr, ptr }> <{ [12 x i8] c"\00\00\00\00\04\00\00\00\04\00\00\00", ptr @_RNSNvYNCINvNtCsgWtUbmCx2KO_3std2rt10lang_startuE0INtNtNtCs5ISjz14idTb_4core3ops8function6FnOnceuE9call_once6vtableCs95ptL4pX74x_26mir_inlined_twice_var_locs, ptr @_RNCINvNtCsgWtUbmCx2KO_3std2rt10lang_startuE0Cs95ptL4pX74x_26mir_inlined_twice_var_locs, ptr @_RNCINvNtCsgWtUbmCx2KO_3std2rt10lang_startuE0Cs95ptL4pX74x_26mir_inlined_twice_var_locs }>, align 4, !dbg !0 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         17: @anon.5bb22a1bc10978ee0de1519354cd7f05.0 = private unnamed_addr constant <{ [4 x i8], [4 x i8] }> <{ [4 x i8] zeroinitializer, [4 x i8] undef }>, align 4 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         18: @alloc_16fef37b13bc4b6a923e25d48a73d78e = private unnamed_addr constant [62 x i8] c"/rustc/FAKE_PREFIX/library/core/src/iter/traits/exact_size.rs\00", align 1 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         19: @alloc_fdb57f4de89b5c0472fd864c0e82bd5c = private unnamed_addr constant <{ ptr, [12 x i8] }> <{ ptr @alloc_16fef37b13bc4b6a923e25d48a73d78e, [12 x i8] c"=\00\00\00z\00\00\00\09\00\00\00" }>, align 4 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         20: @alloc_ec595fc0e82ef92fc59bd74f68296eae = private unnamed_addr constant [73 x i8] c"assertion failed: 0 < pointee_size && pointee_size <= isize::MAX as usize", align 1 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         21: @alloc_3c7826ae4ec992370b6fefd4d755c460 = private unnamed_addr constant [52 x i8] c"/rustc/FAKE_PREFIX/library/core/src/ptr/non_null.rs\00", align 1 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         22: @alloc_1116294aaf91613a07ed40eba95e8146 = private unnamed_addr constant <{ ptr, [12 x i8] }> <{ ptr @alloc_3c7826ae4ec992370b6fefd4d755c460, [12 x i8] c"3\00\00\00\B6\03\00\00 \00\00\00" }>, align 4 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         23: @alloc_6a2b7393c97216556641919bc665afdd = private unnamed_addr constant [10 x i8] c"\C0\04 == \C0\01\0A\00", align 1 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         24:  
dag:12'0     ~
         25: ; core::ptr::drop_in_place::<alloc::vec::Vec<u8>> 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         26: ; Function Attrs: nounwind 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
         27: define internal void @_RINvNtCs5ISjz14idTb_4core3ptr13drop_in_placeINtNtCsbc8sbEdPwqQ_5alloc3vec3VechEECs95ptL4pX74x_26mir_inlined_twice_var_locs(ptr align 4 %_1) unnamed_addr #0 !dbg !76 { 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         28: start: 
dag:12'0     ~~~~~~~
         29:  %_1.dbg.spill = alloca [4 x i8], align 4 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         30:  store ptr %_1, ptr %_1.dbg.spill, align 4 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         31:  #dbg_declare(ptr %_1.dbg.spill, !123, !DIExpression(), !126) 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dag:12'2       ?                                                            possible intended match
         32: ; call <alloc::vec::Vec<u8> as core::ops::drop::Drop>::drop 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         33:  call void @_RNvXso_NtCsbc8sbEdPwqQ_5alloc3vecINtB5_3VechENtNtNtCs5ISjz14idTb_4core3ops4drop4Drop4dropCs95ptL4pX74x_26mir_inlined_twice_var_locs(ptr align 4 %_1) #8, !dbg !126 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         34: ; call core::ptr::drop_in_place::<alloc::raw_vec::RawVec<u8>> 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         35:  call void @_RINvNtCs5ISjz14idTb_4core3ptr13drop_in_placeINtNtCsbc8sbEdPwqQ_5alloc7raw_vec6RawVechEECs95ptL4pX74x_26mir_inlined_twice_var_locs(ptr align 4 %_1) #8, !dbg !126 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         36:  ret void, !dbg !126 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~
         37: } 
dag:12'0     ~~
         38:  
dag:12'0     ~
         39: ; core::ptr::drop_in_place::<alloc::raw_vec::RawVec<(std::ffi::os_str::OsString, std::ffi::os_str::OsString)>> 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         40: ; Function Attrs: nounwind 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
         41: define internal void @_RINvNtCs5ISjz14idTb_4core3ptr13drop_in_placeINtNtCsbc8sbEdPwqQ_5alloc7raw_vec6RawVecTNtNtNtCsgWtUbmCx2KO_3std3ffi6os_str8OsStringB1l_EEECs95ptL4pX74x_26mir_inlined_twice_var_locs(ptr align 4 %_1) unnamed_addr #0 !dbg !127 { 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         42: start: 
dag:12'0     ~~~~~~~
         43:  %_1.dbg.spill = alloca [4 x i8], align 4 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         44:  store ptr %_1, ptr %_1.dbg.spill, align 4 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         45:  #dbg_declare(ptr %_1.dbg.spill, !155, !DIExpression(), !158) 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         46: ; call <alloc::raw_vec::RawVec<(std::ffi::os_str::OsString, std::ffi::os_str::OsString)> as core::ops::drop::Drop>::drop 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         47:  call void @_RNvXs1_NtCsbc8sbEdPwqQ_5alloc7raw_vecINtB5_6RawVecTNtNtNtCsgWtUbmCx2KO_3std3ffi6os_str8OsStringBN_EENtNtNtCs5ISjz14idTb_4core3ops4drop4Drop4dropCs95ptL4pX74x_26mir_inlined_twice_var_locs(ptr align 4 %_1) #8, !dbg !158 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         48:  ret void, !dbg !158 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~
         49: } 
dag:12'0     ~~
         50:  
dag:12'0     ~
         51: ; core::ptr::drop_in_place::<alloc::raw_vec::RawVec<u8>> 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         52: ; Function Attrs: nounwind 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
         53: define internal void @_RINvNtCs5ISjz14idTb_4core3ptr13drop_in_placeINtNtCsbc8sbEdPwqQ_5alloc7raw_vec6RawVechEECs95ptL4pX74x_26mir_inlined_twice_var_locs(ptr align 4 %_1) unnamed_addr #0 !dbg !159 { 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         54: start: 
dag:12'0     ~~~~~~~
         55:  %_1.dbg.spill = alloca [4 x i8], align 4 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         56:  store ptr %_1, ptr %_1.dbg.spill, align 4 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         57:  #dbg_declare(ptr %_1.dbg.spill, !164, !DIExpression(), !167) 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         58: ; call <alloc::raw_vec::RawVec<u8> as core::ops::drop::Drop>::drop 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         59:  call void @_RNvXs1_NtCsbc8sbEdPwqQ_5alloc7raw_vecINtB5_6RawVechENtNtNtCs5ISjz14idTb_4core3ops4drop4Drop4dropCs95ptL4pX74x_26mir_inlined_twice_var_locs(ptr align 4 %_1) #8, !dbg !167 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         60:  ret void, !dbg !167 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~
         61: } 
dag:12'0     ~~
         62:  
dag:12'0     ~
         63: ; core::ptr::drop_in_place::<alloc::vec::into_iter::IntoIter<(std::ffi::os_str::OsString, std::ffi::os_str::OsString)>> 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         64: ; Function Attrs: nounwind 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
         65: define internal void @_RINvNtCs5ISjz14idTb_4core3ptr13drop_in_placeINtNtNtCsbc8sbEdPwqQ_5alloc3vec9into_iter8IntoIterTNtNtNtCsgWtUbmCx2KO_3std3ffi6os_str8OsStringB1v_EEECs95ptL4pX74x_26mir_inlined_twice_var_locs(ptr align 4 %_1) unnamed_addr #0 !dbg !168 { 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         66: start: 
dag:12'0     ~~~~~~~
         67:  %_1.dbg.spill = alloca [4 x i8], align 4 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         68:  store ptr %_1, ptr %_1.dbg.spill, align 4 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         69:  #dbg_declare(ptr %_1.dbg.spill, !198, !DIExpression(), !201) 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         70: ; call <alloc::vec::into_iter::IntoIter<(std::ffi::os_str::OsString, std::ffi::os_str::OsString)> as core::ops::drop::Drop>::drop 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         71:  call void @_RNvXse_NtNtCsbc8sbEdPwqQ_5alloc3vec9into_iterINtB5_8IntoIterTNtNtNtCsgWtUbmCx2KO_3std3ffi6os_str8OsStringBX_EENtNtNtCs5ISjz14idTb_4core3ops4drop4Drop4dropCs95ptL4pX74x_26mir_inlined_twice_var_locs(ptr align 4 %_1) #8, !dbg !201 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         72:  ret void, !dbg !201 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~
         73: } 
dag:12'0     ~~
         74:  
dag:12'0     ~
         75: ; core::ptr::drop_in_place::<<alloc::vec::into_iter::IntoIter<_, _> as core::ops::drop::Drop>::drop::DropGuard<(std::ffi::os_str::OsString, std::ffi::os_str::OsString), alloc::alloc::Global>> 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         76: ; Function Attrs: nounwind 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
         77: define internal void @_RINvNtCs5ISjz14idTb_4core3ptr13drop_in_placeINtNvXse_NtNtCsbc8sbEdPwqQ_5alloc3vec9into_iterINtBP_8IntoIterppENtNtNtB4_3ops4drop4Drop4drop9DropGuardTNtNtNtCsgWtUbmCx2KO_3std3ffi6os_str8OsStringB2m_ENtNtBT_5alloc6GlobalEECs95ptL4pX74x_26mir_inlined_twice_var_locs(ptr align 4 %_1) unnamed_addr #0 !dbg !202 { 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         78: start: 
dag:12'0     ~~~~~~~
         79:  %_1.dbg.spill = alloca [4 x i8], align 4 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         80:  store ptr %_1, ptr %_1.dbg.spill, align 4 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         81:  #dbg_declare(ptr %_1.dbg.spill, !213, !DIExpression(), !216) 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         82: ; call <<alloc::vec::into_iter::IntoIter<_, _> as core::ops::drop::Drop>::drop::DropGuard<(std::ffi::os_str::OsString, std::ffi::os_str::OsString), alloc::alloc::Global> as core::ops::drop::Drop>::drop 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         83:  call void @_RNvXNvXse_NtNtCsbc8sbEdPwqQ_5alloc3vec9into_iterINtB8_8IntoIterppENtNtNtCs5ISjz14idTb_4core3ops4drop4Drop4dropINtB2_9DropGuardTNtNtNtCsgWtUbmCx2KO_3std3ffi6os_str8OsStringB21_ENtNtBc_5alloc6GlobalEB12_4dropCs95ptL4pX74x_26mir_inlined_twice_var_locs(ptr align 4 %_1) #8, !dbg !216 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         84:  ret void, !dbg !216 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~
         85: } 
dag:12'0     ~~
         86:  
dag:12'0     ~
         87: ; core::ptr::drop_in_place::<alloc::string::String> 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         88: ; Function Attrs: nounwind 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~
         89: define internal void @_RINvNtCs5ISjz14idTb_4core3ptr13drop_in_placeNtNtCsbc8sbEdPwqQ_5alloc6string6StringECs95ptL4pX74x_26mir_inlined_twice_var_locs(ptr align 4 %_1) unnamed_addr #0 !dbg !217 { 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         90: start: 
dag:12'0     ~~~~~~~
         91:  %_1.dbg.spill = alloca [4 x i8], align 4 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         92:  store ptr %_1, ptr %_1.dbg.spill, align 4 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         93:  #dbg_declare(ptr %_1.dbg.spill, !226, !DIExpression(), !229) 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         94: ; call core::ptr::drop_in_place::<alloc::vec::Vec<u8>> 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         95:  call void @_RINvNtCs5ISjz14idTb_4core3ptr13drop_in_placeINtNtCsbc8sbEdPwqQ_5alloc3vec3VechEECs95ptL4pX74x_26mir_inlined_twice_var_locs(ptr align 4 %_1) #8, !dbg !229 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         96:  ret void, !dbg !229 
dag:12'0     ~~~~~~~~~~~~~~~~~~~~~
         97: } 
dag:12'0     ~~
         98:  
dag:12'0     ~

@cjgillot
Copy link
Copy Markdown
Contributor Author

cjgillot commented May 3, 2026

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request May 3, 2026
Perform DestinationPropagation on places.
@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label May 3, 2026
@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented May 4, 2026

☀️ Try build successful (CI)
Build commit: 6d09751 (6d09751b044eba88dec3bf8a63d3cd1485f0594c, parent: ad3a598ca4bc7c68bcbbce3e0d3be9a7618df190)

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (6d09751): comparison URL.

Overall result: ❌✅ regressions and improvements - please read:

Benchmarking means the PR may be perf-sensitive. It's automatically marked not fit for rolling up. Overriding is possible but disadvised: it risks changing compiler perf.

Next, please: If you can, justify the regressions found in this try perf run in writing along with @rustbot label: +perf-regression-triaged. If not, fix the regressions and do another perf run. Neutral or positive results will clear the label automatically.

@bors rollup=never
@rustbot label: -S-waiting-on-perf +perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
0.7% [0.1%, 5.1%] 157
Regressions ❌
(secondary)
0.7% [0.0%, 4.3%] 165
Improvements ✅
(primary)
-0.7% [-1.8%, -0.3%] 19
Improvements ✅
(secondary)
-0.8% [-3.6%, -0.1%] 20
All ❌✅ (primary) 0.5% [-1.8%, 5.1%] 176

Max RSS (memory usage)

Results (primary -0.8%, secondary 0.9%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
2.7% [2.0%, 3.2%] 4
Regressions ❌
(secondary)
5.4% [3.5%, 8.5%] 3
Improvements ✅
(primary)
-3.1% [-6.2%, -0.7%] 6
Improvements ✅
(secondary)
-1.8% [-5.1%, -0.7%] 5
All ❌✅ (primary) -0.8% [-6.2%, 3.2%] 10

Cycles

Results (primary -0.3%, secondary 0.7%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
2.3% [2.1%, 2.5%] 3
Regressions ❌
(secondary)
1.8% [0.6%, 3.2%] 10
Improvements ✅
(primary)
-2.9% [-4.8%, -1.4%] 3
Improvements ✅
(secondary)
-1.4% [-2.5%, -0.4%] 5
All ❌✅ (primary) -0.3% [-4.8%, 2.5%] 6

Binary size

Results (primary -0.4%, secondary -0.4%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.2% [0.0%, 0.8%] 22
Regressions ❌
(secondary)
0.5% [0.0%, 1.8%] 16
Improvements ✅
(primary)
-0.6% [-4.2%, -0.0%] 56
Improvements ✅
(secondary)
-0.9% [-4.2%, -0.0%] 30
All ❌✅ (primary) -0.4% [-4.2%, 0.8%] 78

Bootstrap: 495.343s -> 493.469s (-0.38%)
Artifact size: 394.42 MiB -> 393.75 MiB (-0.17%)

@rustbot rustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label May 4, 2026
@Amanieu
Copy link
Copy Markdown
Member

Amanieu commented May 4, 2026

You may be interested in #156046 which is a more general optimization that supersedes DestinationPropagation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

perf-regression Performance regression. S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants