summaryrefslogtreecommitdiffstats
path: root/tests/mir-opt/pre-codegen
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-30 03:59:35 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-30 03:59:35 +0000
commitd1b2d29528b7794b41e66fc2136e395a02f8529b (patch)
treea4a17504b260206dec3cf55b2dca82929a348ac2 /tests/mir-opt/pre-codegen
parentReleasing progress-linux version 1.72.1+dfsg1-1~progress7.99u1. (diff)
downloadrustc-d1b2d29528b7794b41e66fc2136e395a02f8529b.tar.xz
rustc-d1b2d29528b7794b41e66fc2136e395a02f8529b.zip
Merging upstream version 1.73.0+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/mir-opt/pre-codegen')
-rw-r--r--tests/mir-opt/pre-codegen/checked_ops.checked_shl.PreCodegen.after.mir48
-rw-r--r--tests/mir-opt/pre-codegen/checked_ops.step_forward.PreCodegen.after.mir43
-rw-r--r--tests/mir-opt/pre-codegen/intrinsics.f_u64.PreCodegen.after.mir8
-rw-r--r--tests/mir-opt/pre-codegen/loops.filter_mapped.PreCodegen.after.mir43
-rw-r--r--tests/mir-opt/pre-codegen/loops.int_range.PreCodegen.after.mir93
-rw-r--r--tests/mir-opt/pre-codegen/loops.mapped.PreCodegen.after.mir4
-rw-r--r--tests/mir-opt/pre-codegen/loops.vec_move.PreCodegen.after.mir4
-rw-r--r--tests/mir-opt/pre-codegen/mem_replace.mem_replace.PreCodegen.after.mir32
-rw-r--r--tests/mir-opt/pre-codegen/range_iter.forward_loop.PreCodegen.after.panic-abort.mir109
-rw-r--r--tests/mir-opt/pre-codegen/range_iter.forward_loop.PreCodegen.after.panic-unwind.mir109
-rw-r--r--tests/mir-opt/pre-codegen/range_iter.inclusive_loop.PreCodegen.after.panic-abort.mir4
-rw-r--r--tests/mir-opt/pre-codegen/range_iter.inclusive_loop.PreCodegen.after.panic-unwind.mir4
-rw-r--r--tests/mir-opt/pre-codegen/range_iter.range_inclusive_iter_next.PreCodegen.after.panic-abort.mir2
-rw-r--r--tests/mir-opt/pre-codegen/range_iter.range_inclusive_iter_next.PreCodegen.after.panic-unwind.mir2
-rw-r--r--tests/mir-opt/pre-codegen/range_iter.range_iter_next.PreCodegen.after.panic-abort.mir56
-rw-r--r--tests/mir-opt/pre-codegen/range_iter.range_iter_next.PreCodegen.after.panic-unwind.mir56
-rw-r--r--tests/mir-opt/pre-codegen/simple_option_map.ezmap.PreCodegen.after.mir18
-rw-r--r--tests/mir-opt/pre-codegen/slice_filter.variant_a-{closure#0}.PreCodegen.after.mir252
-rw-r--r--tests/mir-opt/pre-codegen/slice_index.slice_get_mut_usize.PreCodegen.after.panic-abort.mir68
-rw-r--r--tests/mir-opt/pre-codegen/slice_index.slice_get_mut_usize.PreCodegen.after.panic-unwind.mir68
-rw-r--r--tests/mir-opt/pre-codegen/slice_index.slice_get_unchecked_mut_range.PreCodegen.after.panic-abort.mir87
-rw-r--r--tests/mir-opt/pre-codegen/slice_index.slice_get_unchecked_mut_range.PreCodegen.after.panic-unwind.mir87
-rw-r--r--tests/mir-opt/pre-codegen/slice_index.slice_index_range.PreCodegen.after.panic-abort.mir2
-rw-r--r--tests/mir-opt/pre-codegen/slice_index.slice_index_range.PreCodegen.after.panic-unwind.mir2
-rw-r--r--tests/mir-opt/pre-codegen/slice_iter.enumerated_loop.PreCodegen.after.panic-abort.mir23
-rw-r--r--tests/mir-opt/pre-codegen/slice_iter.enumerated_loop.PreCodegen.after.panic-unwind.mir23
-rw-r--r--tests/mir-opt/pre-codegen/slice_iter.forward_loop.PreCodegen.after.panic-abort.mir23
-rw-r--r--tests/mir-opt/pre-codegen/slice_iter.forward_loop.PreCodegen.after.panic-unwind.mir23
-rw-r--r--tests/mir-opt/pre-codegen/slice_iter.range_loop.PreCodegen.after.panic-abort.mir125
-rw-r--r--tests/mir-opt/pre-codegen/slice_iter.range_loop.PreCodegen.after.panic-unwind.mir125
-rw-r--r--tests/mir-opt/pre-codegen/slice_iter.reverse_loop.PreCodegen.after.panic-abort.mir68
-rw-r--r--tests/mir-opt/pre-codegen/slice_iter.reverse_loop.PreCodegen.after.panic-unwind.mir68
-rw-r--r--tests/mir-opt/pre-codegen/slice_iter.slice_iter_mut_next_back.PreCodegen.after.panic-abort.mir2
-rw-r--r--tests/mir-opt/pre-codegen/slice_iter.slice_iter_mut_next_back.PreCodegen.after.panic-unwind.mir2
-rw-r--r--tests/mir-opt/pre-codegen/slice_iter.slice_iter_next.PreCodegen.after.panic-abort.mir2
-rw-r--r--tests/mir-opt/pre-codegen/slice_iter.slice_iter_next.PreCodegen.after.panic-unwind.mir2
-rw-r--r--tests/mir-opt/pre-codegen/spans.outer.PreCodegen.after.panic-abort.mir6
-rw-r--r--tests/mir-opt/pre-codegen/spans.outer.PreCodegen.after.panic-unwind.mir6
38 files changed, 793 insertions, 906 deletions
diff --git a/tests/mir-opt/pre-codegen/checked_ops.checked_shl.PreCodegen.after.mir b/tests/mir-opt/pre-codegen/checked_ops.checked_shl.PreCodegen.after.mir
index 70461b445..8304cb45b 100644
--- a/tests/mir-opt/pre-codegen/checked_ops.checked_shl.PreCodegen.after.mir
+++ b/tests/mir-opt/pre-codegen/checked_ops.checked_shl.PreCodegen.after.mir
@@ -7,28 +7,24 @@ fn checked_shl(_1: u32, _2: u32) -> Option<u32> {
scope 1 (inlined core::num::<impl u32>::checked_shl) {
debug self => _1;
debug rhs => _2;
- let mut _7: (u32, bool);
- let _8: u32;
- let _9: bool;
- let mut _10: bool;
+ let mut _6: bool;
scope 2 {
- debug a => _8;
- debug b => _9;
+ debug a => _4;
+ debug b => _5;
}
scope 3 (inlined core::num::<impl u32>::overflowing_shl) {
debug self => _1;
debug rhs => _2;
- let mut _5: u32;
- let mut _6: bool;
+ let mut _4: u32;
+ let mut _5: bool;
scope 4 (inlined core::num::<impl u32>::wrapping_shl) {
debug self => _1;
debug rhs => _2;
let mut _3: u32;
- let mut _4: u32;
scope 5 {
scope 6 (inlined core::num::<impl u32>::unchecked_shl) {
debug self => _1;
- debug rhs => _4;
+ debug rhs => _3;
scope 7 {
}
}
@@ -38,35 +34,23 @@ fn checked_shl(_1: u32, _2: u32) -> Option<u32> {
}
bb0: {
- StorageLive(_8);
- StorageLive(_9);
- StorageLive(_7);
- StorageLive(_5);
StorageLive(_4);
+ StorageLive(_5);
StorageLive(_3);
- _3 = const 31_u32;
- _4 = BitAnd(_2, move _3);
+ _3 = BitAnd(_2, const 31_u32);
+ _4 = ShlUnchecked(_1, _3);
StorageDead(_3);
- _5 = ShlUnchecked(_1, _4);
- StorageDead(_4);
+ _5 = Ge(_2, const _);
StorageLive(_6);
- _6 = Ge(_2, const _);
- _7 = (move _5, move _6);
- StorageDead(_6);
- StorageDead(_5);
- _8 = (_7.0: u32);
- _9 = (_7.1: bool);
- StorageDead(_7);
- StorageLive(_10);
- _10 = unlikely(_9) -> [return: bb1, unwind unreachable];
+ _6 = unlikely(move _5) -> [return: bb1, unwind unreachable];
}
bb1: {
- switchInt(move _10) -> [0: bb2, otherwise: bb3];
+ switchInt(move _6) -> [0: bb2, otherwise: bb3];
}
bb2: {
- _0 = Option::<u32>::Some(_8);
+ _0 = Option::<u32>::Some(_4);
goto -> bb4;
}
@@ -76,9 +60,9 @@ fn checked_shl(_1: u32, _2: u32) -> Option<u32> {
}
bb4: {
- StorageDead(_10);
- StorageDead(_9);
- StorageDead(_8);
+ StorageDead(_6);
+ StorageDead(_5);
+ StorageDead(_4);
return;
}
}
diff --git a/tests/mir-opt/pre-codegen/checked_ops.step_forward.PreCodegen.after.mir b/tests/mir-opt/pre-codegen/checked_ops.step_forward.PreCodegen.after.mir
index 98c267e8e..b2ea96f03 100644
--- a/tests/mir-opt/pre-codegen/checked_ops.step_forward.PreCodegen.after.mir
+++ b/tests/mir-opt/pre-codegen/checked_ops.step_forward.PreCodegen.after.mir
@@ -8,42 +8,41 @@ fn step_forward(_1: u32, _2: usize) -> u32 {
debug start => _1;
debug n => _2;
let _3: std::option::Option<u32>;
- let mut _4: &std::option::Option<u32>;
- let mut _7: bool;
- let mut _8: u32;
+ let mut _6: bool;
+ let mut _7: u32;
+ let mut _8: &std::option::Option<u32>;
scope 2 {
}
scope 3 (inlined Option::<u32>::is_none) {
- debug self => _4;
- let mut _6: bool;
+ debug self => _8;
+ let mut _5: bool;
scope 4 (inlined Option::<u32>::is_some) {
- debug self => _4;
- let mut _5: isize;
+ debug self => _8;
+ let mut _4: isize;
}
}
scope 5 (inlined core::num::<impl u32>::wrapping_add) {
debug self => _1;
- debug rhs => _8;
+ debug rhs => _7;
}
}
bb0: {
- StorageLive(_7);
- StorageLive(_4);
+ StorageLive(_6);
+ StorageLive(_8);
StorageLive(_3);
_3 = <u32 as Step>::forward_checked(_1, _2) -> [return: bb1, unwind continue];
}
bb1: {
- _4 = &_3;
- StorageLive(_6);
- _5 = discriminant((*_4));
- _6 = Eq(_5, const 1_isize);
- _7 = Not(move _6);
- StorageDead(_6);
+ StorageLive(_5);
+ _4 = discriminant(_3);
+ _5 = Eq(_4, const 1_isize);
+ _6 = Not(move _5);
+ StorageDead(_5);
StorageDead(_3);
- StorageDead(_4);
- switchInt(move _7) -> [0: bb3, otherwise: bb2];
+ StorageDead(_8);
+ switchInt(move _6) -> [0: bb3, otherwise: bb2];
}
bb2: {
@@ -51,11 +50,11 @@ fn step_forward(_1: u32, _2: usize) -> u32 {
}
bb3: {
+ StorageDead(_6);
+ StorageLive(_7);
+ _7 = _2 as u32 (IntToInt);
+ _0 = Add(_1, _7);
StorageDead(_7);
- StorageLive(_8);
- _8 = _2 as u32 (IntToInt);
- _0 = Add(_1, _8);
- StorageDead(_8);
return;
}
}
diff --git a/tests/mir-opt/pre-codegen/intrinsics.f_u64.PreCodegen.after.mir b/tests/mir-opt/pre-codegen/intrinsics.f_u64.PreCodegen.after.mir
index 66acbbbb2..174fb2c0c 100644
--- a/tests/mir-opt/pre-codegen/intrinsics.f_u64.PreCodegen.after.mir
+++ b/tests/mir-opt/pre-codegen/intrinsics.f_u64.PreCodegen.after.mir
@@ -2,22 +2,18 @@
fn f_u64() -> () {
let mut _0: ();
- let mut _1: u64;
scope 1 (inlined f_dispatch::<u64>) {
debug t => const 0_u64;
- let _2: ();
+ let _1: ();
scope 2 (inlined std::mem::size_of::<u64>) {
}
}
bb0: {
- StorageLive(_1);
- _1 = const 0_u64;
- _2 = f_non_zst::<u64>(move _1) -> [return: bb1, unwind unreachable];
+ _1 = f_non_zst::<u64>(const 0_u64) -> [return: bb1, unwind unreachable];
}
bb1: {
- StorageDead(_1);
return;
}
}
diff --git a/tests/mir-opt/pre-codegen/loops.filter_mapped.PreCodegen.after.mir b/tests/mir-opt/pre-codegen/loops.filter_mapped.PreCodegen.after.mir
index 3b49cb711..940b9ae11 100644
--- a/tests/mir-opt/pre-codegen/loops.filter_mapped.PreCodegen.after.mir
+++ b/tests/mir-opt/pre-codegen/loops.filter_mapped.PreCodegen.after.mir
@@ -7,20 +7,20 @@ fn filter_mapped(_1: impl Iterator<Item = T>, _2: impl Fn(T) -> Option<U>) -> ()
let mut _3: std::iter::FilterMap<impl Iterator<Item = T>, impl Fn(T) -> Option<U>>;
let mut _4: std::iter::FilterMap<impl Iterator<Item = T>, impl Fn(T) -> Option<U>>;
let mut _5: std::iter::FilterMap<impl Iterator<Item = T>, impl Fn(T) -> Option<U>>;
- let mut _6: &mut std::iter::FilterMap<impl Iterator<Item = T>, impl Fn(T) -> Option<U>>;
- let mut _9: std::option::Option<U>;
- let mut _10: isize;
- let _12: ();
+ let mut _8: std::option::Option<U>;
+ let mut _9: isize;
+ let _11: ();
+ let mut _12: &mut std::iter::FilterMap<impl Iterator<Item = T>, impl Fn(T) -> Option<U>>;
scope 1 {
debug iter => _5;
- let _11: U;
+ let _10: U;
scope 2 {
- debug x => _11;
+ debug x => _10;
}
scope 4 (inlined <FilterMap<impl Iterator<Item = T>, impl Fn(T) -> Option<U>> as Iterator>::next) {
- debug self => _6;
- let mut _7: &mut impl Iterator<Item = T>;
- let mut _8: &mut impl Fn(T) -> Option<U>;
+ debug self => _12;
+ let mut _6: &mut impl Iterator<Item = T>;
+ let mut _7: &mut impl Fn(T) -> Option<U>;
}
}
scope 3 (inlined <FilterMap<impl Iterator<Item = T>, impl Fn(T) -> Option<U>> as IntoIterator>::into_iter) {
@@ -42,24 +42,23 @@ fn filter_mapped(_1: impl Iterator<Item = T>, _2: impl Fn(T) -> Option<U>) -> ()
}
bb2: {
- StorageLive(_9);
- _6 = &mut _5;
- StorageLive(_7);
- _7 = &mut ((*_6).0: impl Iterator<Item = T>);
StorageLive(_8);
- _8 = &mut ((*_6).1: impl Fn(T) -> Option<U>);
- _9 = <impl Iterator<Item = T> as Iterator>::find_map::<U, &mut impl Fn(T) -> Option<U>>(move _7, move _8) -> [return: bb3, unwind: bb9];
+ StorageLive(_6);
+ _6 = &mut (_5.0: impl Iterator<Item = T>);
+ StorageLive(_7);
+ _7 = &mut (_5.1: impl Fn(T) -> Option<U>);
+ _8 = <impl Iterator<Item = T> as Iterator>::find_map::<U, &mut impl Fn(T) -> Option<U>>(move _6, move _7) -> [return: bb3, unwind: bb9];
}
bb3: {
- StorageDead(_8);
StorageDead(_7);
- _10 = discriminant(_9);
- switchInt(move _10) -> [0: bb4, 1: bb6, otherwise: bb8];
+ StorageDead(_6);
+ _9 = discriminant(_8);
+ switchInt(move _9) -> [0: bb4, 1: bb6, otherwise: bb8];
}
bb4: {
- StorageDead(_9);
+ StorageDead(_8);
drop(_5) -> [return: bb5, unwind continue];
}
@@ -70,12 +69,12 @@ fn filter_mapped(_1: impl Iterator<Item = T>, _2: impl Fn(T) -> Option<U>) -> ()
}
bb6: {
- _11 = move ((_9 as Some).0: U);
- _12 = opaque::<U>(move _11) -> [return: bb7, unwind: bb9];
+ _10 = move ((_8 as Some).0: U);
+ _11 = opaque::<U>(move _10) -> [return: bb7, unwind: bb9];
}
bb7: {
- StorageDead(_9);
+ StorageDead(_8);
goto -> bb2;
}
diff --git a/tests/mir-opt/pre-codegen/loops.int_range.PreCodegen.after.mir b/tests/mir-opt/pre-codegen/loops.int_range.PreCodegen.after.mir
index 40bb3a37c..2e51faeba 100644
--- a/tests/mir-opt/pre-codegen/loops.int_range.PreCodegen.after.mir
+++ b/tests/mir-opt/pre-codegen/loops.int_range.PreCodegen.after.mir
@@ -6,35 +6,35 @@ fn int_range(_1: usize, _2: usize) -> () {
let mut _0: ();
let mut _3: std::ops::Range<usize>;
let mut _4: std::ops::Range<usize>;
- let mut _5: &mut std::ops::Range<usize>;
- let mut _11: std::option::Option<usize>;
- let mut _14: isize;
- let _16: ();
+ let mut _8: std::option::Option<usize>;
+ let mut _11: isize;
+ let _13: ();
+ let mut _14: &mut std::ops::Range<usize>;
scope 1 {
debug iter => _4;
- let _15: usize;
+ let _12: usize;
scope 2 {
- debug i => _15;
+ debug i => _12;
}
scope 4 (inlined iter::range::<impl Iterator for std::ops::Range<usize>>::next) {
- debug self => _5;
+ debug self => _14;
scope 5 (inlined <std::ops::Range<usize> as iter::range::RangeIteratorImpl>::spec_next) {
- debug self => _5;
- let mut _6: &usize;
- let mut _7: &usize;
- let mut _10: bool;
- let _12: usize;
- let mut _13: usize;
+ debug self => _14;
+ let mut _7: bool;
+ let _9: usize;
+ let mut _10: usize;
+ let mut _15: &usize;
+ let mut _16: &usize;
scope 6 {
- debug old => _12;
+ debug old => _9;
scope 7 {
}
}
scope 8 (inlined cmp::impls::<impl PartialOrd for usize>::lt) {
- debug self => _6;
- debug other => _7;
- let mut _8: usize;
- let mut _9: usize;
+ debug self => _15;
+ debug other => _16;
+ let mut _5: usize;
+ let mut _6: usize;
}
}
}
@@ -51,64 +51,61 @@ fn int_range(_1: usize, _2: usize) -> () {
}
bb1: {
- StorageLive(_11);
- _5 = &mut _4;
- StorageLive(_12);
- StorageLive(_10);
- StorageLive(_6);
- _6 = &((*_5).0: usize);
- StorageLive(_7);
- _7 = &((*_5).1: usize);
StorageLive(_8);
- _8 = (*_6);
StorageLive(_9);
- _9 = (*_7);
- _10 = Lt(move _8, move _9);
- StorageDead(_9);
- StorageDead(_8);
- StorageDead(_7);
+ StorageLive(_7);
+ StorageLive(_15);
+ StorageLive(_16);
+ StorageLive(_5);
+ _5 = (_4.0: usize);
+ StorageLive(_6);
+ _6 = (_4.1: usize);
+ _7 = Lt(move _5, move _6);
StorageDead(_6);
- switchInt(move _10) -> [0: bb2, otherwise: bb3];
+ StorageDead(_5);
+ StorageDead(_16);
+ StorageDead(_15);
+ switchInt(move _7) -> [0: bb2, otherwise: bb3];
}
bb2: {
- _11 = Option::<usize>::None;
+ _8 = Option::<usize>::None;
goto -> bb5;
}
bb3: {
- _12 = ((*_5).0: usize);
- StorageLive(_13);
- _13 = <usize as Step>::forward_unchecked(_12, const 1_usize) -> [return: bb4, unwind continue];
+ _9 = (_4.0: usize);
+ StorageLive(_10);
+ _10 = <usize as Step>::forward_unchecked(_9, const 1_usize) -> [return: bb4, unwind continue];
}
bb4: {
- ((*_5).0: usize) = move _13;
- StorageDead(_13);
- _11 = Option::<usize>::Some(_12);
+ (_4.0: usize) = move _10;
+ StorageDead(_10);
+ _8 = Option::<usize>::Some(_9);
goto -> bb5;
}
bb5: {
- StorageDead(_10);
- StorageDead(_12);
- _14 = discriminant(_11);
- switchInt(move _14) -> [0: bb6, 1: bb7, otherwise: bb9];
+ StorageDead(_7);
+ StorageDead(_9);
+ _11 = discriminant(_8);
+ switchInt(move _11) -> [0: bb6, 1: bb7, otherwise: bb9];
}
bb6: {
- StorageDead(_11);
+ StorageDead(_8);
StorageDead(_4);
return;
}
bb7: {
- _15 = ((_11 as Some).0: usize);
- _16 = opaque::<usize>(_15) -> [return: bb8, unwind continue];
+ _12 = ((_8 as Some).0: usize);
+ _13 = opaque::<usize>(move _12) -> [return: bb8, unwind continue];
}
bb8: {
- StorageDead(_11);
+ StorageDead(_8);
goto -> bb1;
}
diff --git a/tests/mir-opt/pre-codegen/loops.mapped.PreCodegen.after.mir b/tests/mir-opt/pre-codegen/loops.mapped.PreCodegen.after.mir
index e4e1d052e..261416036 100644
--- a/tests/mir-opt/pre-codegen/loops.mapped.PreCodegen.after.mir
+++ b/tests/mir-opt/pre-codegen/loops.mapped.PreCodegen.after.mir
@@ -38,11 +38,13 @@ fn mapped(_1: impl Iterator<Item = T>, _2: impl Fn(T) -> U) -> () {
bb2: {
StorageLive(_7);
+ StorageLive(_6);
_6 = &mut _5;
- _7 = <Map<impl Iterator<Item = T>, impl Fn(T) -> U> as Iterator>::next(_6) -> [return: bb3, unwind: bb9];
+ _7 = <Map<impl Iterator<Item = T>, impl Fn(T) -> U> as Iterator>::next(move _6) -> [return: bb3, unwind: bb9];
}
bb3: {
+ StorageDead(_6);
_8 = discriminant(_7);
switchInt(move _8) -> [0: bb4, 1: bb6, otherwise: bb8];
}
diff --git a/tests/mir-opt/pre-codegen/loops.vec_move.PreCodegen.after.mir b/tests/mir-opt/pre-codegen/loops.vec_move.PreCodegen.after.mir
index 1b5f2a088..8eff46fb9 100644
--- a/tests/mir-opt/pre-codegen/loops.vec_move.PreCodegen.after.mir
+++ b/tests/mir-opt/pre-codegen/loops.vec_move.PreCodegen.after.mir
@@ -30,11 +30,13 @@ fn vec_move(_1: Vec<impl Sized>) -> () {
bb2: {
StorageLive(_5);
+ StorageLive(_4);
_4 = &mut _3;
- _5 = <std::vec::IntoIter<impl Sized> as Iterator>::next(_4) -> [return: bb3, unwind: bb9];
+ _5 = <std::vec::IntoIter<impl Sized> as Iterator>::next(move _4) -> [return: bb3, unwind: bb9];
}
bb3: {
+ StorageDead(_4);
_6 = discriminant(_5);
switchInt(move _6) -> [0: bb4, 1: bb6, otherwise: bb8];
}
diff --git a/tests/mir-opt/pre-codegen/mem_replace.mem_replace.PreCodegen.after.mir b/tests/mir-opt/pre-codegen/mem_replace.mem_replace.PreCodegen.after.mir
index f8f4f5b99..26919dd98 100644
--- a/tests/mir-opt/pre-codegen/mem_replace.mem_replace.PreCodegen.after.mir
+++ b/tests/mir-opt/pre-codegen/mem_replace.mem_replace.PreCodegen.after.mir
@@ -7,47 +7,27 @@ fn mem_replace(_1: &mut u32, _2: u32) -> u32 {
scope 1 (inlined std::mem::replace::<u32>) {
debug dest => _1;
debug src => _2;
- let mut _3: *const u32;
- let mut _4: *mut u32;
scope 2 {
scope 3 {
debug result => _0;
- scope 7 (inlined std::ptr::write::<u32>) {
- debug dst => _4;
+ scope 6 (inlined std::ptr::write::<u32>) {
+ debug dst => _1;
debug src => _2;
- let mut _6: *mut u32;
- scope 8 {
- scope 9 (inlined std::ptr::write::runtime::<u32>) {
- debug dst => _6;
- }
+ scope 7 {
}
}
}
scope 4 (inlined std::ptr::read::<u32>) {
- debug src => _3;
- let mut _5: *const u32;
+ debug src => _1;
scope 5 {
- scope 6 (inlined std::ptr::read::runtime::<u32>) {
- debug src => _5;
- }
}
}
}
}
bb0: {
- StorageLive(_3);
- _3 = &raw const (*_1);
- StorageLive(_5);
- _0 = (*_3);
- StorageDead(_5);
- StorageDead(_3);
- StorageLive(_4);
- _4 = &raw mut (*_1);
- StorageLive(_6);
- (*_4) = _2;
- StorageDead(_6);
- StorageDead(_4);
+ _0 = (*_1);
+ (*_1) = _2;
return;
}
}
diff --git a/tests/mir-opt/pre-codegen/range_iter.forward_loop.PreCodegen.after.panic-abort.mir b/tests/mir-opt/pre-codegen/range_iter.forward_loop.PreCodegen.after.panic-abort.mir
index 2344a3c0f..d76b46bdd 100644
--- a/tests/mir-opt/pre-codegen/range_iter.forward_loop.PreCodegen.after.panic-abort.mir
+++ b/tests/mir-opt/pre-codegen/range_iter.forward_loop.PreCodegen.after.panic-abort.mir
@@ -7,37 +7,37 @@ fn forward_loop(_1: u32, _2: u32, _3: impl Fn(u32)) -> () {
let mut _0: ();
let mut _4: std::ops::Range<u32>;
let mut _5: std::ops::Range<u32>;
- let mut _6: &mut std::ops::Range<u32>;
- let mut _12: std::option::Option<u32>;
- let mut _15: isize;
- let mut _17: &impl Fn(u32);
- let mut _18: (u32,);
- let _19: ();
+ let mut _9: std::option::Option<u32>;
+ let mut _12: isize;
+ let mut _14: &impl Fn(u32);
+ let mut _15: (u32,);
+ let _16: ();
+ let mut _17: &mut std::ops::Range<u32>;
scope 1 {
debug iter => _5;
- let _16: u32;
+ let _13: u32;
scope 2 {
- debug x => _16;
+ debug x => _13;
}
scope 4 (inlined iter::range::<impl Iterator for std::ops::Range<u32>>::next) {
- debug self => _6;
+ debug self => _17;
scope 5 (inlined <std::ops::Range<u32> as iter::range::RangeIteratorImpl>::spec_next) {
- debug self => _6;
- let mut _7: &u32;
- let mut _8: &u32;
- let mut _11: bool;
- let _13: u32;
- let mut _14: u32;
+ debug self => _17;
+ let mut _8: bool;
+ let _10: u32;
+ let mut _11: u32;
+ let mut _18: &u32;
+ let mut _19: &u32;
scope 6 {
- debug old => _13;
+ debug old => _10;
scope 7 {
}
}
scope 8 (inlined cmp::impls::<impl PartialOrd for u32>::lt) {
- debug self => _7;
- debug other => _8;
- let mut _9: u32;
- let mut _10: u32;
+ debug self => _18;
+ debug other => _19;
+ let mut _6: u32;
+ let mut _7: u32;
}
}
}
@@ -54,53 +54,50 @@ fn forward_loop(_1: u32, _2: u32, _3: impl Fn(u32)) -> () {
}
bb1: {
- StorageLive(_12);
- _6 = &mut _5;
- StorageLive(_13);
- StorageLive(_11);
- StorageLive(_7);
- _7 = &((*_6).0: u32);
- StorageLive(_8);
- _8 = &((*_6).1: u32);
StorageLive(_9);
- _9 = (*_7);
StorageLive(_10);
- _10 = (*_8);
- _11 = Lt(move _9, move _10);
- StorageDead(_10);
- StorageDead(_9);
- StorageDead(_8);
+ StorageLive(_8);
+ StorageLive(_18);
+ StorageLive(_19);
+ StorageLive(_6);
+ _6 = (_5.0: u32);
+ StorageLive(_7);
+ _7 = (_5.1: u32);
+ _8 = Lt(move _6, move _7);
StorageDead(_7);
- switchInt(move _11) -> [0: bb2, otherwise: bb3];
+ StorageDead(_6);
+ StorageDead(_19);
+ StorageDead(_18);
+ switchInt(move _8) -> [0: bb2, otherwise: bb3];
}
bb2: {
- _12 = Option::<u32>::None;
+ _9 = Option::<u32>::None;
goto -> bb5;
}
bb3: {
- _13 = ((*_6).0: u32);
- StorageLive(_14);
- _14 = <u32 as Step>::forward_unchecked(_13, const 1_usize) -> [return: bb4, unwind unreachable];
+ _10 = (_5.0: u32);
+ StorageLive(_11);
+ _11 = <u32 as Step>::forward_unchecked(_10, const 1_usize) -> [return: bb4, unwind unreachable];
}
bb4: {
- ((*_6).0: u32) = move _14;
- StorageDead(_14);
- _12 = Option::<u32>::Some(_13);
+ (_5.0: u32) = move _11;
+ StorageDead(_11);
+ _9 = Option::<u32>::Some(_10);
goto -> bb5;
}
bb5: {
- StorageDead(_11);
- StorageDead(_13);
- _15 = discriminant(_12);
- switchInt(move _15) -> [0: bb6, 1: bb8, otherwise: bb10];
+ StorageDead(_8);
+ StorageDead(_10);
+ _12 = discriminant(_9);
+ switchInt(move _12) -> [0: bb6, 1: bb8, otherwise: bb10];
}
bb6: {
- StorageDead(_12);
+ StorageDead(_9);
StorageDead(_5);
drop(_3) -> [return: bb7, unwind unreachable];
}
@@ -110,18 +107,18 @@ fn forward_loop(_1: u32, _2: u32, _3: impl Fn(u32)) -> () {
}
bb8: {
- _16 = ((_12 as Some).0: u32);
- StorageLive(_17);
- _17 = &_3;
- StorageLive(_18);
- _18 = (_16,);
- _19 = <impl Fn(u32) as Fn<(u32,)>>::call(move _17, move _18) -> [return: bb9, unwind unreachable];
+ _13 = ((_9 as Some).0: u32);
+ StorageLive(_14);
+ _14 = &_3;
+ StorageLive(_15);
+ _15 = (_13,);
+ _16 = <impl Fn(u32) as Fn<(u32,)>>::call(move _14, move _15) -> [return: bb9, unwind unreachable];
}
bb9: {
- StorageDead(_18);
- StorageDead(_17);
- StorageDead(_12);
+ StorageDead(_15);
+ StorageDead(_14);
+ StorageDead(_9);
goto -> bb1;
}
diff --git a/tests/mir-opt/pre-codegen/range_iter.forward_loop.PreCodegen.after.panic-unwind.mir b/tests/mir-opt/pre-codegen/range_iter.forward_loop.PreCodegen.after.panic-unwind.mir
index fbe16dc3c..4d7c017da 100644
--- a/tests/mir-opt/pre-codegen/range_iter.forward_loop.PreCodegen.after.panic-unwind.mir
+++ b/tests/mir-opt/pre-codegen/range_iter.forward_loop.PreCodegen.after.panic-unwind.mir
@@ -7,37 +7,37 @@ fn forward_loop(_1: u32, _2: u32, _3: impl Fn(u32)) -> () {
let mut _0: ();
let mut _4: std::ops::Range<u32>;
let mut _5: std::ops::Range<u32>;
- let mut _6: &mut std::ops::Range<u32>;
- let mut _12: std::option::Option<u32>;
- let mut _15: isize;
- let mut _17: &impl Fn(u32);
- let mut _18: (u32,);
- let _19: ();
+ let mut _9: std::option::Option<u32>;
+ let mut _12: isize;
+ let mut _14: &impl Fn(u32);
+ let mut _15: (u32,);
+ let _16: ();
+ let mut _17: &mut std::ops::Range<u32>;
scope 1 {
debug iter => _5;
- let _16: u32;
+ let _13: u32;
scope 2 {
- debug x => _16;
+ debug x => _13;
}
scope 4 (inlined iter::range::<impl Iterator for std::ops::Range<u32>>::next) {
- debug self => _6;
+ debug self => _17;
scope 5 (inlined <std::ops::Range<u32> as iter::range::RangeIteratorImpl>::spec_next) {
- debug self => _6;
- let mut _7: &u32;
- let mut _8: &u32;
- let mut _11: bool;
- let _13: u32;
- let mut _14: u32;
+ debug self => _17;
+ let mut _8: bool;
+ let _10: u32;
+ let mut _11: u32;
+ let mut _18: &u32;
+ let mut _19: &u32;
scope 6 {
- debug old => _13;
+ debug old => _10;
scope 7 {
}
}
scope 8 (inlined cmp::impls::<impl PartialOrd for u32>::lt) {
- debug self => _7;
- debug other => _8;
- let mut _9: u32;
- let mut _10: u32;
+ debug self => _18;
+ debug other => _19;
+ let mut _6: u32;
+ let mut _7: u32;
}
}
}
@@ -54,53 +54,50 @@ fn forward_loop(_1: u32, _2: u32, _3: impl Fn(u32)) -> () {
}
bb1: {
- StorageLive(_12);
- _6 = &mut _5;
- StorageLive(_13);
- StorageLive(_11);
- StorageLive(_7);
- _7 = &((*_6).0: u32);
- StorageLive(_8);
- _8 = &((*_6).1: u32);
StorageLive(_9);
- _9 = (*_7);
StorageLive(_10);
- _10 = (*_8);
- _11 = Lt(move _9, move _10);
- StorageDead(_10);
- StorageDead(_9);
- StorageDead(_8);
+ StorageLive(_8);
+ StorageLive(_18);
+ StorageLive(_19);
+ StorageLive(_6);
+ _6 = (_5.0: u32);
+ StorageLive(_7);
+ _7 = (_5.1: u32);
+ _8 = Lt(move _6, move _7);
StorageDead(_7);
- switchInt(move _11) -> [0: bb2, otherwise: bb3];
+ StorageDead(_6);
+ StorageDead(_19);
+ StorageDead(_18);
+ switchInt(move _8) -> [0: bb2, otherwise: bb3];
}
bb2: {
- _12 = Option::<u32>::None;
+ _9 = Option::<u32>::None;
goto -> bb5;
}
bb3: {
- _13 = ((*_6).0: u32);
- StorageLive(_14);
- _14 = <u32 as Step>::forward_unchecked(_13, const 1_usize) -> [return: bb4, unwind: bb11];
+ _10 = (_5.0: u32);
+ StorageLive(_11);
+ _11 = <u32 as Step>::forward_unchecked(_10, const 1_usize) -> [return: bb4, unwind: bb11];
}
bb4: {
- ((*_6).0: u32) = move _14;
- StorageDead(_14);
- _12 = Option::<u32>::Some(_13);
+ (_5.0: u32) = move _11;
+ StorageDead(_11);
+ _9 = Option::<u32>::Some(_10);
goto -> bb5;
}
bb5: {
- StorageDead(_11);
- StorageDead(_13);
- _15 = discriminant(_12);
- switchInt(move _15) -> [0: bb6, 1: bb8, otherwise: bb10];
+ StorageDead(_8);
+ StorageDead(_10);
+ _12 = discriminant(_9);
+ switchInt(move _12) -> [0: bb6, 1: bb8, otherwise: bb10];
}
bb6: {
- StorageDead(_12);
+ StorageDead(_9);
StorageDead(_5);
drop(_3) -> [return: bb7, unwind continue];
}
@@ -110,18 +107,18 @@ fn forward_loop(_1: u32, _2: u32, _3: impl Fn(u32)) -> () {
}
bb8: {
- _16 = ((_12 as Some).0: u32);
- StorageLive(_17);
- _17 = &_3;
- StorageLive(_18);
- _18 = (_16,);
- _19 = <impl Fn(u32) as Fn<(u32,)>>::call(move _17, move _18) -> [return: bb9, unwind: bb11];
+ _13 = ((_9 as Some).0: u32);
+ StorageLive(_14);
+ _14 = &_3;
+ StorageLive(_15);
+ _15 = (_13,);
+ _16 = <impl Fn(u32) as Fn<(u32,)>>::call(move _14, move _15) -> [return: bb9, unwind: bb11];
}
bb9: {
- StorageDead(_18);
- StorageDead(_17);
- StorageDead(_12);
+ StorageDead(_15);
+ StorageDead(_14);
+ StorageDead(_9);
goto -> bb1;
}
diff --git a/tests/mir-opt/pre-codegen/range_iter.inclusive_loop.PreCodegen.after.panic-abort.mir b/tests/mir-opt/pre-codegen/range_iter.inclusive_loop.PreCodegen.after.panic-abort.mir
index 9737c9a87..1b23e4213 100644
--- a/tests/mir-opt/pre-codegen/range_iter.inclusive_loop.PreCodegen.after.panic-abort.mir
+++ b/tests/mir-opt/pre-codegen/range_iter.inclusive_loop.PreCodegen.after.panic-abort.mir
@@ -40,11 +40,13 @@ fn inclusive_loop(_1: u32, _2: u32, _3: impl Fn(u32)) -> () {
bb1: {
StorageLive(_7);
+ StorageLive(_6);
_6 = &mut _5;
- _7 = <RangeInclusive<u32> as iter::range::RangeInclusiveIteratorImpl>::spec_next(_6) -> [return: bb2, unwind unreachable];
+ _7 = <RangeInclusive<u32> as iter::range::RangeInclusiveIteratorImpl>::spec_next(move _6) -> [return: bb2, unwind unreachable];
}
bb2: {
+ StorageDead(_6);
_8 = discriminant(_7);
switchInt(move _8) -> [0: bb3, 1: bb5, otherwise: bb7];
}
diff --git a/tests/mir-opt/pre-codegen/range_iter.inclusive_loop.PreCodegen.after.panic-unwind.mir b/tests/mir-opt/pre-codegen/range_iter.inclusive_loop.PreCodegen.after.panic-unwind.mir
index 04d6da1d9..bbab4e47a 100644
--- a/tests/mir-opt/pre-codegen/range_iter.inclusive_loop.PreCodegen.after.panic-unwind.mir
+++ b/tests/mir-opt/pre-codegen/range_iter.inclusive_loop.PreCodegen.after.panic-unwind.mir
@@ -40,11 +40,13 @@ fn inclusive_loop(_1: u32, _2: u32, _3: impl Fn(u32)) -> () {
bb1: {
StorageLive(_7);
+ StorageLive(_6);
_6 = &mut _5;
- _7 = <RangeInclusive<u32> as iter::range::RangeInclusiveIteratorImpl>::spec_next(_6) -> [return: bb2, unwind: bb8];
+ _7 = <RangeInclusive<u32> as iter::range::RangeInclusiveIteratorImpl>::spec_next(move _6) -> [return: bb2, unwind: bb8];
}
bb2: {
+ StorageDead(_6);
_8 = discriminant(_7);
switchInt(move _8) -> [0: bb3, 1: bb5, otherwise: bb7];
}
diff --git a/tests/mir-opt/pre-codegen/range_iter.range_inclusive_iter_next.PreCodegen.after.panic-abort.mir b/tests/mir-opt/pre-codegen/range_iter.range_inclusive_iter_next.PreCodegen.after.panic-abort.mir
index 0a71b6b2c..b0f475b4d 100644
--- a/tests/mir-opt/pre-codegen/range_iter.range_inclusive_iter_next.PreCodegen.after.panic-abort.mir
+++ b/tests/mir-opt/pre-codegen/range_iter.range_inclusive_iter_next.PreCodegen.after.panic-abort.mir
@@ -8,7 +8,7 @@ fn range_inclusive_iter_next(_1: &mut RangeInclusive<u32>) -> Option<u32> {
}
bb0: {
- _0 = <RangeInclusive<u32> as iter::range::RangeInclusiveIteratorImpl>::spec_next(_1) -> [return: bb1, unwind unreachable];
+ _0 = <RangeInclusive<u32> as iter::range::RangeInclusiveIteratorImpl>::spec_next(move _1) -> [return: bb1, unwind unreachable];
}
bb1: {
diff --git a/tests/mir-opt/pre-codegen/range_iter.range_inclusive_iter_next.PreCodegen.after.panic-unwind.mir b/tests/mir-opt/pre-codegen/range_iter.range_inclusive_iter_next.PreCodegen.after.panic-unwind.mir
index fd565fe75..663ec229f 100644
--- a/tests/mir-opt/pre-codegen/range_iter.range_inclusive_iter_next.PreCodegen.after.panic-unwind.mir
+++ b/tests/mir-opt/pre-codegen/range_iter.range_inclusive_iter_next.PreCodegen.after.panic-unwind.mir
@@ -8,7 +8,7 @@ fn range_inclusive_iter_next(_1: &mut RangeInclusive<u32>) -> Option<u32> {
}
bb0: {
- _0 = <RangeInclusive<u32> as iter::range::RangeInclusiveIteratorImpl>::spec_next(_1) -> [return: bb1, unwind continue];
+ _0 = <RangeInclusive<u32> as iter::range::RangeInclusiveIteratorImpl>::spec_next(move _1) -> [return: bb1, unwind continue];
}
bb1: {
diff --git a/tests/mir-opt/pre-codegen/range_iter.range_iter_next.PreCodegen.after.panic-abort.mir b/tests/mir-opt/pre-codegen/range_iter.range_iter_next.PreCodegen.after.panic-abort.mir
index 1dfd00bf3..7360aa3e6 100644
--- a/tests/mir-opt/pre-codegen/range_iter.range_iter_next.PreCodegen.after.panic-abort.mir
+++ b/tests/mir-opt/pre-codegen/range_iter.range_iter_next.PreCodegen.after.panic-abort.mir
@@ -7,42 +7,40 @@ fn range_iter_next(_1: &mut std::ops::Range<u32>) -> Option<u32> {
debug self => _1;
scope 2 (inlined <std::ops::Range<u32> as iter::range::RangeIteratorImpl>::spec_next) {
debug self => _1;
- let mut _2: &u32;
- let mut _3: &u32;
- let mut _6: bool;
- let _7: u32;
- let mut _8: u32;
+ let mut _4: bool;
+ let _5: u32;
+ let mut _6: u32;
+ let mut _7: &u32;
+ let mut _8: &u32;
scope 3 {
- debug old => _7;
+ debug old => _5;
scope 4 {
}
}
scope 5 (inlined cmp::impls::<impl PartialOrd for u32>::lt) {
- debug self => _2;
- debug other => _3;
- let mut _4: u32;
- let mut _5: u32;
+ debug self => _7;
+ debug other => _8;
+ let mut _2: u32;
+ let mut _3: u32;
}
}
}
bb0: {
+ StorageLive(_5);
+ StorageLive(_4);
StorageLive(_7);
- StorageLive(_6);
+ StorageLive(_8);
StorageLive(_2);
- _2 = &((*_1).0: u32);
+ _2 = ((*_1).0: u32);
StorageLive(_3);
- _3 = &((*_1).1: u32);
- StorageLive(_4);
- _4 = (*_2);
- StorageLive(_5);
- _5 = (*_3);
- _6 = Lt(move _4, move _5);
- StorageDead(_5);
- StorageDead(_4);
+ _3 = ((*_1).1: u32);
+ _4 = Lt(move _2, move _3);
StorageDead(_3);
StorageDead(_2);
- switchInt(move _6) -> [0: bb1, otherwise: bb2];
+ StorageDead(_8);
+ StorageDead(_7);
+ switchInt(move _4) -> [0: bb1, otherwise: bb2];
}
bb1: {
@@ -51,21 +49,21 @@ fn range_iter_next(_1: &mut std::ops::Range<u32>) -> Option<u32> {
}
bb2: {
- _7 = ((*_1).0: u32);
- StorageLive(_8);
- _8 = <u32 as Step>::forward_unchecked(_7, const 1_usize) -> [return: bb3, unwind unreachable];
+ _5 = ((*_1).0: u32);
+ StorageLive(_6);
+ _6 = <u32 as Step>::forward_unchecked(_5, const 1_usize) -> [return: bb3, unwind unreachable];
}
bb3: {
- ((*_1).0: u32) = move _8;
- StorageDead(_8);
- _0 = Option::<u32>::Some(_7);
+ ((*_1).0: u32) = move _6;
+ StorageDead(_6);
+ _0 = Option::<u32>::Some(_5);
goto -> bb4;
}
bb4: {
- StorageDead(_6);
- StorageDead(_7);
+ StorageDead(_4);
+ StorageDead(_5);
return;
}
}
diff --git a/tests/mir-opt/pre-codegen/range_iter.range_iter_next.PreCodegen.after.panic-unwind.mir b/tests/mir-opt/pre-codegen/range_iter.range_iter_next.PreCodegen.after.panic-unwind.mir
index 65870f693..61957082d 100644
--- a/tests/mir-opt/pre-codegen/range_iter.range_iter_next.PreCodegen.after.panic-unwind.mir
+++ b/tests/mir-opt/pre-codegen/range_iter.range_iter_next.PreCodegen.after.panic-unwind.mir
@@ -7,42 +7,40 @@ fn range_iter_next(_1: &mut std::ops::Range<u32>) -> Option<u32> {
debug self => _1;
scope 2 (inlined <std::ops::Range<u32> as iter::range::RangeIteratorImpl>::spec_next) {
debug self => _1;
- let mut _2: &u32;
- let mut _3: &u32;
- let mut _6: bool;
- let _7: u32;
- let mut _8: u32;
+ let mut _4: bool;
+ let _5: u32;
+ let mut _6: u32;
+ let mut _7: &u32;
+ let mut _8: &u32;
scope 3 {
- debug old => _7;
+ debug old => _5;
scope 4 {
}
}
scope 5 (inlined cmp::impls::<impl PartialOrd for u32>::lt) {
- debug self => _2;
- debug other => _3;
- let mut _4: u32;
- let mut _5: u32;
+ debug self => _7;
+ debug other => _8;
+ let mut _2: u32;
+ let mut _3: u32;
}
}
}
bb0: {
+ StorageLive(_5);
+ StorageLive(_4);
StorageLive(_7);
- StorageLive(_6);
+ StorageLive(_8);
StorageLive(_2);
- _2 = &((*_1).0: u32);
+ _2 = ((*_1).0: u32);
StorageLive(_3);
- _3 = &((*_1).1: u32);
- StorageLive(_4);
- _4 = (*_2);
- StorageLive(_5);
- _5 = (*_3);
- _6 = Lt(move _4, move _5);
- StorageDead(_5);
- StorageDead(_4);
+ _3 = ((*_1).1: u32);
+ _4 = Lt(move _2, move _3);
StorageDead(_3);
StorageDead(_2);
- switchInt(move _6) -> [0: bb1, otherwise: bb2];
+ StorageDead(_8);
+ StorageDead(_7);
+ switchInt(move _4) -> [0: bb1, otherwise: bb2];
}
bb1: {
@@ -51,21 +49,21 @@ fn range_iter_next(_1: &mut std::ops::Range<u32>) -> Option<u32> {
}
bb2: {
- _7 = ((*_1).0: u32);
- StorageLive(_8);
- _8 = <u32 as Step>::forward_unchecked(_7, const 1_usize) -> [return: bb3, unwind continue];
+ _5 = ((*_1).0: u32);
+ StorageLive(_6);
+ _6 = <u32 as Step>::forward_unchecked(_5, const 1_usize) -> [return: bb3, unwind continue];
}
bb3: {
- ((*_1).0: u32) = move _8;
- StorageDead(_8);
- _0 = Option::<u32>::Some(_7);
+ ((*_1).0: u32) = move _6;
+ StorageDead(_6);
+ _0 = Option::<u32>::Some(_5);
goto -> bb4;
}
bb4: {
- StorageDead(_6);
- StorageDead(_7);
+ StorageDead(_4);
+ StorageDead(_5);
return;
}
}
diff --git a/tests/mir-opt/pre-codegen/simple_option_map.ezmap.PreCodegen.after.mir b/tests/mir-opt/pre-codegen/simple_option_map.ezmap.PreCodegen.after.mir
index df45b1589..68d78f743 100644
--- a/tests/mir-opt/pre-codegen/simple_option_map.ezmap.PreCodegen.after.mir
+++ b/tests/mir-opt/pre-codegen/simple_option_map.ezmap.PreCodegen.after.mir
@@ -3,24 +3,21 @@
fn ezmap(_1: Option<i32>) -> Option<i32> {
debug x => _1;
let mut _0: std::option::Option<i32>;
- let mut _5: i32;
scope 1 (inlined map::<i32, i32, [closure@$DIR/simple_option_map.rs:18:12: 18:15]>) {
debug slf => _1;
debug f => const ZeroSized: [closure@$DIR/simple_option_map.rs:18:12: 18:15];
let mut _2: isize;
let _3: i32;
- let mut _4: (i32,);
- let mut _6: i32;
+ let mut _4: i32;
scope 2 {
debug x => _3;
scope 3 (inlined ezmap::{closure#0}) {
- debug n => _5;
+ debug n => _3;
}
}
}
bb0: {
- StorageLive(_3);
_2 = discriminant(_1);
switchInt(move _2) -> [0: bb1, 1: bb2, otherwise: bb4];
}
@@ -32,21 +29,14 @@ fn ezmap(_1: Option<i32>) -> Option<i32> {
bb2: {
_3 = ((_1 as Some).0: i32);
- StorageLive(_6);
StorageLive(_4);
- _4 = (move _3,);
- StorageLive(_5);
- _5 = move (_4.0: i32);
- _6 = Add(_5, const 1_i32);
- StorageDead(_5);
+ _4 = Add(_3, const 1_i32);
+ _0 = Option::<i32>::Some(move _4);
StorageDead(_4);
- _0 = Option::<i32>::Some(move _6);
- StorageDead(_6);
goto -> bb3;
}
bb3: {
- StorageDead(_3);
return;
}
diff --git a/tests/mir-opt/pre-codegen/slice_filter.variant_a-{closure#0}.PreCodegen.after.mir b/tests/mir-opt/pre-codegen/slice_filter.variant_a-{closure#0}.PreCodegen.after.mir
index 499bee2ae..1488779f9 100644
--- a/tests/mir-opt/pre-codegen/slice_filter.variant_a-{closure#0}.PreCodegen.after.mir
+++ b/tests/mir-opt/pre-codegen/slice_filter.variant_a-{closure#0}.PreCodegen.after.mir
@@ -10,75 +10,75 @@ fn variant_a::{closure#0}(_1: &mut [closure@$DIR/slice_filter.rs:7:25: 7:39], _2
let _8: &usize;
let mut _9: &(usize, usize, usize, usize);
let _10: &usize;
- let mut _11: &&usize;
- let _12: &usize;
- let mut _13: &&usize;
- let mut _18: bool;
- let mut _19: bool;
- let mut _20: &&usize;
- let _21: &usize;
- let mut _22: &&usize;
- let mut _27: bool;
- let mut _28: &&usize;
- let _29: &usize;
- let mut _30: &&usize;
- let mut _35: bool;
+ let _11: &usize;
+ let mut _16: bool;
+ let mut _17: bool;
+ let _18: &usize;
+ let mut _23: bool;
+ let _24: &usize;
+ let mut _29: bool;
+ let mut _30: bool;
+ let _31: &usize;
let mut _36: bool;
let mut _37: &&usize;
- let _38: &usize;
+ let mut _38: &&usize;
let mut _39: &&usize;
- let mut _44: bool;
+ let mut _40: &&usize;
+ let mut _41: &&usize;
+ let mut _42: &&usize;
+ let mut _43: &&usize;
+ let mut _44: &&usize;
scope 1 {
debug a => _4;
debug b => _6;
debug c => _8;
debug d => _10;
scope 2 (inlined cmp::impls::<impl PartialOrd for &usize>::le) {
- debug self => _11;
- debug other => _13;
- let mut _14: &usize;
- let mut _15: &usize;
+ debug self => _37;
+ debug other => _38;
+ let mut _12: &usize;
+ let mut _13: &usize;
scope 3 (inlined cmp::impls::<impl PartialOrd for usize>::le) {
- debug self => _14;
- debug other => _15;
- let mut _16: usize;
- let mut _17: usize;
+ debug self => _12;
+ debug other => _13;
+ let mut _14: usize;
+ let mut _15: usize;
}
}
scope 4 (inlined cmp::impls::<impl PartialOrd for &usize>::le) {
- debug self => _28;
- debug other => _30;
- let mut _31: &usize;
- let mut _32: &usize;
+ debug self => _41;
+ debug other => _42;
+ let mut _25: &usize;
+ let mut _26: &usize;
scope 5 (inlined cmp::impls::<impl PartialOrd for usize>::le) {
- debug self => _31;
- debug other => _32;
- let mut _33: usize;
- let mut _34: usize;
+ debug self => _25;
+ debug other => _26;
+ let mut _27: usize;
+ let mut _28: usize;
}
}
scope 6 (inlined cmp::impls::<impl PartialOrd for &usize>::le) {
- debug self => _20;
- debug other => _22;
- let mut _23: &usize;
- let mut _24: &usize;
+ debug self => _39;
+ debug other => _40;
+ let mut _19: &usize;
+ let mut _20: &usize;
scope 7 (inlined cmp::impls::<impl PartialOrd for usize>::le) {
- debug self => _23;
- debug other => _24;
- let mut _25: usize;
- let mut _26: usize;
+ debug self => _19;
+ debug other => _20;
+ let mut _21: usize;
+ let mut _22: usize;
}
}
scope 8 (inlined cmp::impls::<impl PartialOrd for &usize>::le) {
- debug self => _37;
- debug other => _39;
- let mut _40: &usize;
- let mut _41: &usize;
+ debug self => _43;
+ debug other => _44;
+ let mut _32: &usize;
+ let mut _33: &usize;
scope 9 (inlined cmp::impls::<impl PartialOrd for usize>::le) {
- debug self => _40;
- debug other => _41;
- let mut _42: usize;
- let mut _43: usize;
+ debug self => _32;
+ debug other => _33;
+ let mut _34: usize;
+ let mut _35: usize;
}
}
}
@@ -96,121 +96,113 @@ fn variant_a::{closure#0}(_1: &mut [closure@$DIR/slice_filter.rs:7:25: 7:39], _2
StorageLive(_10);
_9 = deref_copy (*_2);
_10 = &((*_9).3: usize);
- StorageLive(_19);
- StorageLive(_18);
- StorageLive(_11);
- _11 = &_4;
- StorageLive(_13);
- StorageLive(_12);
- _12 = _8;
- _13 = &_12;
- _14 = deref_copy (*_11);
- _15 = deref_copy (*_13);
- StorageLive(_16);
- _16 = (*_14);
StorageLive(_17);
- _17 = (*_15);
- _18 = Le(move _16, move _17);
- StorageDead(_17);
- StorageDead(_16);
- StorageDead(_12);
- StorageDead(_13);
+ StorageLive(_16);
+ StorageLive(_37);
+ StorageLive(_38);
+ StorageLive(_11);
+ _11 = _8;
+ _12 = deref_copy _4;
+ _13 = deref_copy _11;
+ StorageLive(_14);
+ _14 = (*_12);
+ StorageLive(_15);
+ _15 = (*_13);
+ _16 = Le(move _14, move _15);
+ StorageDead(_15);
+ StorageDead(_14);
StorageDead(_11);
- switchInt(move _18) -> [0: bb1, otherwise: bb2];
+ StorageDead(_38);
+ StorageDead(_37);
+ switchInt(move _16) -> [0: bb1, otherwise: bb2];
}
bb1: {
- _19 = const false;
+ _17 = const false;
goto -> bb3;
}
bb2: {
- StorageLive(_27);
- StorageLive(_20);
- _20 = &_10;
- StorageLive(_22);
+ StorageLive(_23);
+ StorageLive(_39);
+ StorageLive(_40);
+ StorageLive(_18);
+ _18 = _6;
+ _19 = deref_copy _10;
+ _20 = deref_copy _18;
StorageLive(_21);
- _21 = _6;
- _22 = &_21;
- _23 = deref_copy (*_20);
- _24 = deref_copy (*_22);
- StorageLive(_25);
- _25 = (*_23);
- StorageLive(_26);
- _26 = (*_24);
- _27 = Le(move _25, move _26);
- StorageDead(_26);
- StorageDead(_25);
- StorageDead(_21);
+ _21 = (*_19);
+ StorageLive(_22);
+ _22 = (*_20);
+ _23 = Le(move _21, move _22);
StorageDead(_22);
- StorageDead(_20);
- _19 = move _27;
+ StorageDead(_21);
+ StorageDead(_18);
+ StorageDead(_40);
+ StorageDead(_39);
+ _17 = move _23;
goto -> bb3;
}
bb3: {
- StorageDead(_27);
- StorageDead(_18);
- switchInt(move _19) -> [0: bb4, otherwise: bb8];
+ StorageDead(_23);
+ StorageDead(_16);
+ switchInt(move _17) -> [0: bb4, otherwise: bb8];
}
bb4: {
- StorageLive(_36);
- StorageLive(_35);
- StorageLive(_28);
- _28 = &_8;
StorageLive(_30);
StorageLive(_29);
- _29 = _4;
- _30 = &_29;
- _31 = deref_copy (*_28);
- _32 = deref_copy (*_30);
- StorageLive(_33);
- _33 = (*_31);
- StorageLive(_34);
- _34 = (*_32);
- _35 = Le(move _33, move _34);
- StorageDead(_34);
- StorageDead(_33);
- StorageDead(_29);
- StorageDead(_30);
+ StorageLive(_41);
+ StorageLive(_42);
+ StorageLive(_24);
+ _24 = _4;
+ _25 = deref_copy _8;
+ _26 = deref_copy _24;
+ StorageLive(_27);
+ _27 = (*_25);
+ StorageLive(_28);
+ _28 = (*_26);
+ _29 = Le(move _27, move _28);
StorageDead(_28);
- switchInt(move _35) -> [0: bb5, otherwise: bb6];
+ StorageDead(_27);
+ StorageDead(_24);
+ StorageDead(_42);
+ StorageDead(_41);
+ switchInt(move _29) -> [0: bb5, otherwise: bb6];
}
bb5: {
- _36 = const false;
+ _30 = const false;
goto -> bb7;
}
bb6: {
- StorageLive(_44);
- StorageLive(_37);
- _37 = &_6;
- StorageLive(_39);
- StorageLive(_38);
- _38 = _10;
- _39 = &_38;
- _40 = deref_copy (*_37);
- _41 = deref_copy (*_39);
- StorageLive(_42);
- _42 = (*_40);
+ StorageLive(_36);
StorageLive(_43);
- _43 = (*_41);
- _44 = Le(move _42, move _43);
+ StorageLive(_44);
+ StorageLive(_31);
+ _31 = _10;
+ _32 = deref_copy _6;
+ _33 = deref_copy _31;
+ StorageLive(_34);
+ _34 = (*_32);
+ StorageLive(_35);
+ _35 = (*_33);
+ _36 = Le(move _34, move _35);
+ StorageDead(_35);
+ StorageDead(_34);
+ StorageDead(_31);
+ StorageDead(_44);
StorageDead(_43);
- StorageDead(_42);
- StorageDead(_38);
- StorageDead(_39);
- StorageDead(_37);
- _36 = move _44;
+ _30 = move _36;
goto -> bb7;
}
bb7: {
- StorageDead(_44);
- StorageDead(_35);
- _0 = move _36;
+ StorageDead(_36);
+ StorageDead(_29);
+ _0 = move _30;
goto -> bb9;
}
@@ -220,8 +212,8 @@ fn variant_a::{closure#0}(_1: &mut [closure@$DIR/slice_filter.rs:7:25: 7:39], _2
}
bb9: {
- StorageDead(_36);
- StorageDead(_19);
+ StorageDead(_30);
+ StorageDead(_17);
StorageDead(_10);
StorageDead(_8);
StorageDead(_6);
diff --git a/tests/mir-opt/pre-codegen/slice_index.slice_get_mut_usize.PreCodegen.after.panic-abort.mir b/tests/mir-opt/pre-codegen/slice_index.slice_get_mut_usize.PreCodegen.after.panic-abort.mir
index 43efe034d..07a58309e 100644
--- a/tests/mir-opt/pre-codegen/slice_index.slice_get_mut_usize.PreCodegen.after.panic-abort.mir
+++ b/tests/mir-opt/pre-codegen/slice_index.slice_get_mut_usize.PreCodegen.after.panic-abort.mir
@@ -10,40 +10,37 @@ fn slice_get_mut_usize(_1: &mut [u32], _2: usize) -> Option<&mut u32> {
scope 2 (inlined <usize as SliceIndex<[u32]>>::get_mut) {
debug self => _2;
debug slice => _1;
- let mut _3: &[u32];
- let mut _4: usize;
- let mut _5: bool;
- let mut _6: *mut [u32];
- let mut _8: *mut u32;
- let mut _9: &mut u32;
+ let mut _3: usize;
+ let mut _4: bool;
+ let mut _5: *mut [u32];
+ let mut _7: *mut u32;
+ let mut _8: &mut u32;
scope 3 {
scope 4 (inlined <usize as SliceIndex<[u32]>>::get_unchecked_mut) {
debug self => _2;
- debug slice => _6;
- let mut _7: *mut u32;
- let mut _10: usize;
- let mut _11: *mut [u32];
+ debug slice => _5;
+ let mut _6: *mut u32;
scope 5 {
debug this => _2;
scope 6 {
scope 7 (inlined <usize as SliceIndex<[T]>>::get_unchecked_mut::runtime::<u32>) {
- debug this => _10;
- debug slice => _11;
+ debug this => _2;
+ debug slice => _5;
scope 8 (inlined ptr::mut_ptr::<impl *mut [u32]>::len) {
- debug self => _11;
- let mut _12: *const [u32];
+ debug self => _5;
+ let mut _9: *const [u32];
scope 9 (inlined std::ptr::metadata::<[u32]>) {
- debug ptr => _12;
+ debug ptr => _9;
scope 10 {
}
}
}
}
scope 11 (inlined ptr::mut_ptr::<impl *mut [u32]>::as_mut_ptr) {
- debug self => _6;
+ debug self => _5;
}
scope 12 (inlined ptr::mut_ptr::<impl *mut u32>::add) {
- debug self => _7;
+ debug self => _6;
debug count => _2;
scope 13 {
}
@@ -56,16 +53,13 @@ fn slice_get_mut_usize(_1: &mut [u32], _2: usize) -> Option<&mut u32> {
}
bb0: {
- StorageLive(_9);
- StorageLive(_5);
+ StorageLive(_7);
StorageLive(_4);
StorageLive(_3);
- _3 = &(*_1);
- _4 = Len((*_3));
+ _3 = Len((*_1));
+ _4 = Lt(_2, move _3);
StorageDead(_3);
- _5 = Lt(_2, move _4);
- StorageDead(_4);
- switchInt(move _5) -> [0: bb1, otherwise: bb2];
+ switchInt(move _4) -> [0: bb1, otherwise: bb2];
}
bb1: {
@@ -75,28 +69,24 @@ fn slice_get_mut_usize(_1: &mut [u32], _2: usize) -> Option<&mut u32> {
bb2: {
StorageLive(_8);
+ StorageLive(_5);
+ _5 = &raw mut (*_1);
+ StorageLive(_9);
StorageLive(_6);
- _6 = &raw mut (*_1);
- StorageLive(_10);
- StorageLive(_11);
- StorageLive(_12);
- StorageLive(_7);
- _7 = _6 as *mut u32 (PtrToPtr);
- _8 = Offset(_7, _2);
- StorageDead(_7);
- StorageDead(_12);
- StorageDead(_11);
- StorageDead(_10);
+ _6 = _5 as *mut u32 (PtrToPtr);
+ _7 = Offset(_6, _2);
StorageDead(_6);
- _9 = &mut (*_8);
- _0 = Option::<&mut u32>::Some(_9);
+ StorageDead(_9);
+ StorageDead(_5);
+ _8 = &mut (*_7);
+ _0 = Option::<&mut u32>::Some(move _8);
StorageDead(_8);
goto -> bb3;
}
bb3: {
- StorageDead(_5);
- StorageDead(_9);
+ StorageDead(_4);
+ StorageDead(_7);
return;
}
}
diff --git a/tests/mir-opt/pre-codegen/slice_index.slice_get_mut_usize.PreCodegen.after.panic-unwind.mir b/tests/mir-opt/pre-codegen/slice_index.slice_get_mut_usize.PreCodegen.after.panic-unwind.mir
index 43efe034d..07a58309e 100644
--- a/tests/mir-opt/pre-codegen/slice_index.slice_get_mut_usize.PreCodegen.after.panic-unwind.mir
+++ b/tests/mir-opt/pre-codegen/slice_index.slice_get_mut_usize.PreCodegen.after.panic-unwind.mir
@@ -10,40 +10,37 @@ fn slice_get_mut_usize(_1: &mut [u32], _2: usize) -> Option<&mut u32> {
scope 2 (inlined <usize as SliceIndex<[u32]>>::get_mut) {
debug self => _2;
debug slice => _1;
- let mut _3: &[u32];
- let mut _4: usize;
- let mut _5: bool;
- let mut _6: *mut [u32];
- let mut _8: *mut u32;
- let mut _9: &mut u32;
+ let mut _3: usize;
+ let mut _4: bool;
+ let mut _5: *mut [u32];
+ let mut _7: *mut u32;
+ let mut _8: &mut u32;
scope 3 {
scope 4 (inlined <usize as SliceIndex<[u32]>>::get_unchecked_mut) {
debug self => _2;
- debug slice => _6;
- let mut _7: *mut u32;
- let mut _10: usize;
- let mut _11: *mut [u32];
+ debug slice => _5;
+ let mut _6: *mut u32;
scope 5 {
debug this => _2;
scope 6 {
scope 7 (inlined <usize as SliceIndex<[T]>>::get_unchecked_mut::runtime::<u32>) {
- debug this => _10;
- debug slice => _11;
+ debug this => _2;
+ debug slice => _5;
scope 8 (inlined ptr::mut_ptr::<impl *mut [u32]>::len) {
- debug self => _11;
- let mut _12: *const [u32];
+ debug self => _5;
+ let mut _9: *const [u32];
scope 9 (inlined std::ptr::metadata::<[u32]>) {
- debug ptr => _12;
+ debug ptr => _9;
scope 10 {
}
}
}
}
scope 11 (inlined ptr::mut_ptr::<impl *mut [u32]>::as_mut_ptr) {
- debug self => _6;
+ debug self => _5;
}
scope 12 (inlined ptr::mut_ptr::<impl *mut u32>::add) {
- debug self => _7;
+ debug self => _6;
debug count => _2;
scope 13 {
}
@@ -56,16 +53,13 @@ fn slice_get_mut_usize(_1: &mut [u32], _2: usize) -> Option<&mut u32> {
}
bb0: {
- StorageLive(_9);
- StorageLive(_5);
+ StorageLive(_7);
StorageLive(_4);
StorageLive(_3);
- _3 = &(*_1);
- _4 = Len((*_3));
+ _3 = Len((*_1));
+ _4 = Lt(_2, move _3);
StorageDead(_3);
- _5 = Lt(_2, move _4);
- StorageDead(_4);
- switchInt(move _5) -> [0: bb1, otherwise: bb2];
+ switchInt(move _4) -> [0: bb1, otherwise: bb2];
}
bb1: {
@@ -75,28 +69,24 @@ fn slice_get_mut_usize(_1: &mut [u32], _2: usize) -> Option<&mut u32> {
bb2: {
StorageLive(_8);
+ StorageLive(_5);
+ _5 = &raw mut (*_1);
+ StorageLive(_9);
StorageLive(_6);
- _6 = &raw mut (*_1);
- StorageLive(_10);
- StorageLive(_11);
- StorageLive(_12);
- StorageLive(_7);
- _7 = _6 as *mut u32 (PtrToPtr);
- _8 = Offset(_7, _2);
- StorageDead(_7);
- StorageDead(_12);
- StorageDead(_11);
- StorageDead(_10);
+ _6 = _5 as *mut u32 (PtrToPtr);
+ _7 = Offset(_6, _2);
StorageDead(_6);
- _9 = &mut (*_8);
- _0 = Option::<&mut u32>::Some(_9);
+ StorageDead(_9);
+ StorageDead(_5);
+ _8 = &mut (*_7);
+ _0 = Option::<&mut u32>::Some(move _8);
StorageDead(_8);
goto -> bb3;
}
bb3: {
- StorageDead(_5);
- StorageDead(_9);
+ StorageDead(_4);
+ StorageDead(_7);
return;
}
}
diff --git a/tests/mir-opt/pre-codegen/slice_index.slice_get_unchecked_mut_range.PreCodegen.after.panic-abort.mir b/tests/mir-opt/pre-codegen/slice_index.slice_get_unchecked_mut_range.PreCodegen.after.panic-abort.mir
index 0c44873b7..2f5d356a2 100644
--- a/tests/mir-opt/pre-codegen/slice_index.slice_get_unchecked_mut_range.PreCodegen.after.panic-abort.mir
+++ b/tests/mir-opt/pre-codegen/slice_index.slice_get_unchecked_mut_range.PreCodegen.after.panic-abort.mir
@@ -4,49 +4,49 @@ fn slice_get_unchecked_mut_range(_1: &mut [u32], _2: std::ops::Range<usize>) ->
debug slice => _1;
debug index => _2;
let mut _0: &mut [u32];
+ let mut _3: usize;
+ let mut _4: usize;
scope 1 (inlined core::slice::<impl [u32]>::get_unchecked_mut::<std::ops::Range<usize>>) {
debug self => _1;
- debug index => _2;
- let mut _3: *mut [u32];
- let mut _14: *mut [u32];
+ debug index => std::ops::Range<usize>{ .0 => _3, .1 => _4, };
+ let mut _5: *mut [u32];
+ let mut _13: *mut [u32];
scope 2 {
scope 3 (inlined <std::ops::Range<usize> as SliceIndex<[u32]>>::get_unchecked_mut) {
- debug self => _2;
- debug slice => _3;
- let mut _4: usize;
- let mut _5: usize;
+ debug self => std::ops::Range<usize>{ .0 => _3, .1 => _4, };
+ debug slice => _5;
let mut _7: *mut u32;
- let mut _8: usize;
- let mut _9: *mut u32;
- let _15: std::ops::Range<usize>;
+ let mut _8: *mut u32;
+ let _14: usize;
+ let _15: usize;
scope 4 {
- debug this => _15;
+ debug this => std::ops::Range<usize>{ .0 => _14, .1 => _15, };
scope 5 {
let _6: usize;
scope 6 {
debug new_len => _6;
scope 7 (inlined ptr::mut_ptr::<impl *mut [u32]>::as_mut_ptr) {
- debug self => _3;
+ debug self => _5;
}
scope 8 (inlined ptr::mut_ptr::<impl *mut u32>::add) {
debug self => _7;
- debug count => _8;
+ debug count => _3;
scope 9 {
}
}
scope 10 (inlined slice_from_raw_parts_mut::<u32>) {
- debug data => _9;
+ debug data => _8;
debug len => _6;
- let mut _10: *mut ();
+ let mut _9: *mut ();
scope 11 (inlined ptr::mut_ptr::<impl *mut u32>::cast::<()>) {
- debug self => _9;
+ debug self => _8;
}
scope 12 (inlined std::ptr::from_raw_parts_mut::<[u32]>) {
- debug data_address => _10;
+ debug data_address => _9;
debug metadata => _6;
- let mut _11: *const ();
- let mut _12: std::ptr::metadata::PtrComponents<[u32]>;
- let mut _13: std::ptr::metadata::PtrRepr<[u32]>;
+ let mut _10: *const ();
+ let mut _11: std::ptr::metadata::PtrComponents<[u32]>;
+ let mut _12: std::ptr::metadata::PtrRepr<[u32]>;
scope 13 {
}
}
@@ -59,45 +59,38 @@ fn slice_get_unchecked_mut_range(_1: &mut [u32], _2: std::ops::Range<usize>) ->
}
bb0: {
+ _3 = move (_2.0: usize);
+ _4 = move (_2.1: usize);
+ StorageLive(_5);
+ _5 = &raw mut (*_1);
StorageLive(_14);
- StorageLive(_3);
- _3 = &raw mut (*_1);
StorageLive(_15);
StorageLive(_6);
- StorageLive(_4);
- _4 = (_2.1: usize);
- StorageLive(_5);
- _5 = (_2.0: usize);
- _6 = SubUnchecked(move _4, move _5);
- StorageDead(_5);
- StorageDead(_4);
- StorageLive(_9);
- StorageLive(_7);
- _7 = _3 as *mut u32 (PtrToPtr);
+ _6 = SubUnchecked(_4, _3);
StorageLive(_8);
- _8 = (_2.0: usize);
- _9 = Offset(_7, _8);
- StorageDead(_8);
+ StorageLive(_7);
+ _7 = _5 as *mut u32 (PtrToPtr);
+ _8 = Offset(_7, _3);
StorageDead(_7);
- StorageLive(_10);
- _10 = _9 as *mut () (PtrToPtr);
- StorageLive(_13);
+ StorageLive(_9);
+ _9 = _8 as *mut () (PtrToPtr);
StorageLive(_12);
StorageLive(_11);
- _11 = _10 as *const () (PointerCoercion(MutToConstPointer));
- _12 = ptr::metadata::PtrComponents::<[u32]> { data_address: move _11, metadata: _6 };
+ StorageLive(_10);
+ _10 = _9 as *const () (PointerCoercion(MutToConstPointer));
+ _11 = ptr::metadata::PtrComponents::<[u32]> { data_address: move _10, metadata: _6 };
+ StorageDead(_10);
+ _12 = ptr::metadata::PtrRepr::<[u32]> { const_ptr: move _11 };
StorageDead(_11);
- _13 = ptr::metadata::PtrRepr::<[u32]> { const_ptr: move _12 };
+ _13 = (_12.1: *mut [u32]);
StorageDead(_12);
- _14 = (_13.1: *mut [u32]);
- StorageDead(_13);
- StorageDead(_10);
StorageDead(_9);
+ StorageDead(_8);
StorageDead(_6);
- StorageDead(_15);
- StorageDead(_3);
- _0 = &mut (*_14);
StorageDead(_14);
+ StorageDead(_15);
+ StorageDead(_5);
+ _0 = &mut (*_13);
return;
}
}
diff --git a/tests/mir-opt/pre-codegen/slice_index.slice_get_unchecked_mut_range.PreCodegen.after.panic-unwind.mir b/tests/mir-opt/pre-codegen/slice_index.slice_get_unchecked_mut_range.PreCodegen.after.panic-unwind.mir
index 0c44873b7..2f5d356a2 100644
--- a/tests/mir-opt/pre-codegen/slice_index.slice_get_unchecked_mut_range.PreCodegen.after.panic-unwind.mir
+++ b/tests/mir-opt/pre-codegen/slice_index.slice_get_unchecked_mut_range.PreCodegen.after.panic-unwind.mir
@@ -4,49 +4,49 @@ fn slice_get_unchecked_mut_range(_1: &mut [u32], _2: std::ops::Range<usize>) ->
debug slice => _1;
debug index => _2;
let mut _0: &mut [u32];
+ let mut _3: usize;
+ let mut _4: usize;
scope 1 (inlined core::slice::<impl [u32]>::get_unchecked_mut::<std::ops::Range<usize>>) {
debug self => _1;
- debug index => _2;
- let mut _3: *mut [u32];
- let mut _14: *mut [u32];
+ debug index => std::ops::Range<usize>{ .0 => _3, .1 => _4, };
+ let mut _5: *mut [u32];
+ let mut _13: *mut [u32];
scope 2 {
scope 3 (inlined <std::ops::Range<usize> as SliceIndex<[u32]>>::get_unchecked_mut) {
- debug self => _2;
- debug slice => _3;
- let mut _4: usize;
- let mut _5: usize;
+ debug self => std::ops::Range<usize>{ .0 => _3, .1 => _4, };
+ debug slice => _5;
let mut _7: *mut u32;
- let mut _8: usize;
- let mut _9: *mut u32;
- let _15: std::ops::Range<usize>;
+ let mut _8: *mut u32;
+ let _14: usize;
+ let _15: usize;
scope 4 {
- debug this => _15;
+ debug this => std::ops::Range<usize>{ .0 => _14, .1 => _15, };
scope 5 {
let _6: usize;
scope 6 {
debug new_len => _6;
scope 7 (inlined ptr::mut_ptr::<impl *mut [u32]>::as_mut_ptr) {
- debug self => _3;
+ debug self => _5;
}
scope 8 (inlined ptr::mut_ptr::<impl *mut u32>::add) {
debug self => _7;
- debug count => _8;
+ debug count => _3;
scope 9 {
}
}
scope 10 (inlined slice_from_raw_parts_mut::<u32>) {
- debug data => _9;
+ debug data => _8;
debug len => _6;
- let mut _10: *mut ();
+ let mut _9: *mut ();
scope 11 (inlined ptr::mut_ptr::<impl *mut u32>::cast::<()>) {
- debug self => _9;
+ debug self => _8;
}
scope 12 (inlined std::ptr::from_raw_parts_mut::<[u32]>) {
- debug data_address => _10;
+ debug data_address => _9;
debug metadata => _6;
- let mut _11: *const ();
- let mut _12: std::ptr::metadata::PtrComponents<[u32]>;
- let mut _13: std::ptr::metadata::PtrRepr<[u32]>;
+ let mut _10: *const ();
+ let mut _11: std::ptr::metadata::PtrComponents<[u32]>;
+ let mut _12: std::ptr::metadata::PtrRepr<[u32]>;
scope 13 {
}
}
@@ -59,45 +59,38 @@ fn slice_get_unchecked_mut_range(_1: &mut [u32], _2: std::ops::Range<usize>) ->
}
bb0: {
+ _3 = move (_2.0: usize);
+ _4 = move (_2.1: usize);
+ StorageLive(_5);
+ _5 = &raw mut (*_1);
StorageLive(_14);
- StorageLive(_3);
- _3 = &raw mut (*_1);
StorageLive(_15);
StorageLive(_6);
- StorageLive(_4);
- _4 = (_2.1: usize);
- StorageLive(_5);
- _5 = (_2.0: usize);
- _6 = SubUnchecked(move _4, move _5);
- StorageDead(_5);
- StorageDead(_4);
- StorageLive(_9);
- StorageLive(_7);
- _7 = _3 as *mut u32 (PtrToPtr);
+ _6 = SubUnchecked(_4, _3);
StorageLive(_8);
- _8 = (_2.0: usize);
- _9 = Offset(_7, _8);
- StorageDead(_8);
+ StorageLive(_7);
+ _7 = _5 as *mut u32 (PtrToPtr);
+ _8 = Offset(_7, _3);
StorageDead(_7);
- StorageLive(_10);
- _10 = _9 as *mut () (PtrToPtr);
- StorageLive(_13);
+ StorageLive(_9);
+ _9 = _8 as *mut () (PtrToPtr);
StorageLive(_12);
StorageLive(_11);
- _11 = _10 as *const () (PointerCoercion(MutToConstPointer));
- _12 = ptr::metadata::PtrComponents::<[u32]> { data_address: move _11, metadata: _6 };
+ StorageLive(_10);
+ _10 = _9 as *const () (PointerCoercion(MutToConstPointer));
+ _11 = ptr::metadata::PtrComponents::<[u32]> { data_address: move _10, metadata: _6 };
+ StorageDead(_10);
+ _12 = ptr::metadata::PtrRepr::<[u32]> { const_ptr: move _11 };
StorageDead(_11);
- _13 = ptr::metadata::PtrRepr::<[u32]> { const_ptr: move _12 };
+ _13 = (_12.1: *mut [u32]);
StorageDead(_12);
- _14 = (_13.1: *mut [u32]);
- StorageDead(_13);
- StorageDead(_10);
StorageDead(_9);
+ StorageDead(_8);
StorageDead(_6);
- StorageDead(_15);
- StorageDead(_3);
- _0 = &mut (*_14);
StorageDead(_14);
+ StorageDead(_15);
+ StorageDead(_5);
+ _0 = &mut (*_13);
return;
}
}
diff --git a/tests/mir-opt/pre-codegen/slice_index.slice_index_range.PreCodegen.after.panic-abort.mir b/tests/mir-opt/pre-codegen/slice_index.slice_index_range.PreCodegen.after.panic-abort.mir
index aff718566..df6d2263d 100644
--- a/tests/mir-opt/pre-codegen/slice_index.slice_index_range.PreCodegen.after.panic-abort.mir
+++ b/tests/mir-opt/pre-codegen/slice_index.slice_index_range.PreCodegen.after.panic-abort.mir
@@ -12,7 +12,7 @@ fn slice_index_range(_1: &[u32], _2: std::ops::Range<usize>) -> &[u32] {
bb0: {
StorageLive(_3);
- _3 = <std::ops::Range<usize> as SliceIndex<[u32]>>::index(move _2, _1) -> [return: bb1, unwind unreachable];
+ _3 = <std::ops::Range<usize> as SliceIndex<[u32]>>::index(move _2, move _1) -> [return: bb1, unwind unreachable];
}
bb1: {
diff --git a/tests/mir-opt/pre-codegen/slice_index.slice_index_range.PreCodegen.after.panic-unwind.mir b/tests/mir-opt/pre-codegen/slice_index.slice_index_range.PreCodegen.after.panic-unwind.mir
index a6b931d2c..cc1795c3f 100644
--- a/tests/mir-opt/pre-codegen/slice_index.slice_index_range.PreCodegen.after.panic-unwind.mir
+++ b/tests/mir-opt/pre-codegen/slice_index.slice_index_range.PreCodegen.after.panic-unwind.mir
@@ -12,7 +12,7 @@ fn slice_index_range(_1: &[u32], _2: std::ops::Range<usize>) -> &[u32] {
bb0: {
StorageLive(_3);
- _3 = <std::ops::Range<usize> as SliceIndex<[u32]>>::index(move _2, _1) -> [return: bb1, unwind continue];
+ _3 = <std::ops::Range<usize> as SliceIndex<[u32]>>::index(move _2, move _1) -> [return: bb1, unwind continue];
}
bb1: {
diff --git a/tests/mir-opt/pre-codegen/slice_iter.enumerated_loop.PreCodegen.after.panic-abort.mir b/tests/mir-opt/pre-codegen/slice_iter.enumerated_loop.PreCodegen.after.panic-abort.mir
index 3c4140257..89009864c 100644
--- a/tests/mir-opt/pre-codegen/slice_iter.enumerated_loop.PreCodegen.after.panic-abort.mir
+++ b/tests/mir-opt/pre-codegen/slice_iter.enumerated_loop.PreCodegen.after.panic-abort.mir
@@ -38,25 +38,24 @@ fn enumerated_loop(_1: &[T], _2: impl Fn(usize, &T)) -> () {
scope 6 {
let _7: *const T;
scope 7 {
- debug end => _7;
+ debug end_or_len => _7;
scope 13 (inlined NonNull::<T>::new_unchecked) {
debug ptr => _9;
let mut _10: *const T;
- let mut _24: *mut T;
scope 14 {
scope 15 (inlined NonNull::<T>::new_unchecked::runtime::<T>) {
- debug ptr => _24;
+ debug ptr => _9;
scope 16 (inlined ptr::mut_ptr::<impl *mut T>::is_null) {
- debug self => _24;
- let mut _25: *mut u8;
+ debug self => _9;
+ let mut _24: *mut u8;
scope 17 {
scope 18 (inlined ptr::mut_ptr::<impl *mut T>::is_null::runtime_impl) {
- debug ptr => _25;
+ debug ptr => _24;
scope 19 (inlined ptr::mut_ptr::<impl *mut u8>::addr) {
- debug self => _25;
+ debug self => _24;
scope 20 {
scope 21 (inlined ptr::mut_ptr::<impl *mut u8>::cast::<()>) {
- debug self => _25;
+ debug self => _24;
}
}
}
@@ -132,16 +131,14 @@ fn enumerated_loop(_1: &[T], _2: impl Fn(usize, &T)) -> () {
_9 = _4 as *mut T (PtrToPtr);
StorageLive(_10);
StorageLive(_24);
- StorageLive(_25);
_10 = _9 as *const T (PointerCoercion(MutToConstPointer));
_11 = NonNull::<T> { pointer: _10 };
- StorageDead(_25);
StorageDead(_24);
StorageDead(_10);
StorageDead(_9);
StorageLive(_12);
_12 = _7;
- _13 = std::slice::Iter::<'_, T> { ptr: move _11, end: move _12, _marker: const ZeroSized: PhantomData<&T> };
+ _13 = std::slice::Iter::<'_, T> { ptr: move _11, end_or_len: move _12, _marker: const ZeroSized: PhantomData<&T> };
StorageDead(_12);
StorageDead(_11);
StorageDead(_7);
@@ -155,11 +152,13 @@ fn enumerated_loop(_1: &[T], _2: impl Fn(usize, &T)) -> () {
bb4: {
StorageLive(_17);
+ StorageLive(_16);
_16 = &mut _15;
- _17 = <Enumerate<std::slice::Iter<'_, T>> as Iterator>::next(_16) -> [return: bb5, unwind unreachable];
+ _17 = <Enumerate<std::slice::Iter<'_, T>> as Iterator>::next(move _16) -> [return: bb5, unwind unreachable];
}
bb5: {
+ StorageDead(_16);
_18 = discriminant(_17);
switchInt(move _18) -> [0: bb6, 1: bb8, otherwise: bb10];
}
diff --git a/tests/mir-opt/pre-codegen/slice_iter.enumerated_loop.PreCodegen.after.panic-unwind.mir b/tests/mir-opt/pre-codegen/slice_iter.enumerated_loop.PreCodegen.after.panic-unwind.mir
index e3df8b961..836fa2677 100644
--- a/tests/mir-opt/pre-codegen/slice_iter.enumerated_loop.PreCodegen.after.panic-unwind.mir
+++ b/tests/mir-opt/pre-codegen/slice_iter.enumerated_loop.PreCodegen.after.panic-unwind.mir
@@ -38,25 +38,24 @@ fn enumerated_loop(_1: &[T], _2: impl Fn(usize, &T)) -> () {
scope 6 {
let _7: *const T;
scope 7 {
- debug end => _7;
+ debug end_or_len => _7;
scope 13 (inlined NonNull::<T>::new_unchecked) {
debug ptr => _9;
let mut _10: *const T;
- let mut _24: *mut T;
scope 14 {
scope 15 (inlined NonNull::<T>::new_unchecked::runtime::<T>) {
- debug ptr => _24;
+ debug ptr => _9;
scope 16 (inlined ptr::mut_ptr::<impl *mut T>::is_null) {
- debug self => _24;
- let mut _25: *mut u8;
+ debug self => _9;
+ let mut _24: *mut u8;
scope 17 {
scope 18 (inlined ptr::mut_ptr::<impl *mut T>::is_null::runtime_impl) {
- debug ptr => _25;
+ debug ptr => _24;
scope 19 (inlined ptr::mut_ptr::<impl *mut u8>::addr) {
- debug self => _25;
+ debug self => _24;
scope 20 {
scope 21 (inlined ptr::mut_ptr::<impl *mut u8>::cast::<()>) {
- debug self => _25;
+ debug self => _24;
}
}
}
@@ -132,16 +131,14 @@ fn enumerated_loop(_1: &[T], _2: impl Fn(usize, &T)) -> () {
_9 = _4 as *mut T (PtrToPtr);
StorageLive(_10);
StorageLive(_24);
- StorageLive(_25);
_10 = _9 as *const T (PointerCoercion(MutToConstPointer));
_11 = NonNull::<T> { pointer: _10 };
- StorageDead(_25);
StorageDead(_24);
StorageDead(_10);
StorageDead(_9);
StorageLive(_12);
_12 = _7;
- _13 = std::slice::Iter::<'_, T> { ptr: move _11, end: move _12, _marker: const ZeroSized: PhantomData<&T> };
+ _13 = std::slice::Iter::<'_, T> { ptr: move _11, end_or_len: move _12, _marker: const ZeroSized: PhantomData<&T> };
StorageDead(_12);
StorageDead(_11);
StorageDead(_7);
@@ -155,11 +152,13 @@ fn enumerated_loop(_1: &[T], _2: impl Fn(usize, &T)) -> () {
bb4: {
StorageLive(_17);
+ StorageLive(_16);
_16 = &mut _15;
- _17 = <Enumerate<std::slice::Iter<'_, T>> as Iterator>::next(_16) -> [return: bb5, unwind: bb11];
+ _17 = <Enumerate<std::slice::Iter<'_, T>> as Iterator>::next(move _16) -> [return: bb5, unwind: bb11];
}
bb5: {
+ StorageDead(_16);
_18 = discriminant(_17);
switchInt(move _18) -> [0: bb6, 1: bb8, otherwise: bb10];
}
diff --git a/tests/mir-opt/pre-codegen/slice_iter.forward_loop.PreCodegen.after.panic-abort.mir b/tests/mir-opt/pre-codegen/slice_iter.forward_loop.PreCodegen.after.panic-abort.mir
index 49de4b463..146fa57a0 100644
--- a/tests/mir-opt/pre-codegen/slice_iter.forward_loop.PreCodegen.after.panic-abort.mir
+++ b/tests/mir-opt/pre-codegen/slice_iter.forward_loop.PreCodegen.after.panic-abort.mir
@@ -35,25 +35,24 @@ fn forward_loop(_1: &[T], _2: impl Fn(&T)) -> () {
scope 6 {
let _7: *const T;
scope 7 {
- debug end => _7;
+ debug end_or_len => _7;
scope 13 (inlined NonNull::<T>::new_unchecked) {
debug ptr => _9;
let mut _10: *const T;
- let mut _22: *mut T;
scope 14 {
scope 15 (inlined NonNull::<T>::new_unchecked::runtime::<T>) {
- debug ptr => _22;
+ debug ptr => _9;
scope 16 (inlined ptr::mut_ptr::<impl *mut T>::is_null) {
- debug self => _22;
- let mut _23: *mut u8;
+ debug self => _9;
+ let mut _22: *mut u8;
scope 17 {
scope 18 (inlined ptr::mut_ptr::<impl *mut T>::is_null::runtime_impl) {
- debug ptr => _23;
+ debug ptr => _22;
scope 19 (inlined ptr::mut_ptr::<impl *mut u8>::addr) {
- debug self => _23;
+ debug self => _22;
scope 20 {
scope 21 (inlined ptr::mut_ptr::<impl *mut u8>::cast::<()>) {
- debug self => _23;
+ debug self => _22;
}
}
}
@@ -122,16 +121,14 @@ fn forward_loop(_1: &[T], _2: impl Fn(&T)) -> () {
_9 = _4 as *mut T (PtrToPtr);
StorageLive(_10);
StorageLive(_22);
- StorageLive(_23);
_10 = _9 as *const T (PointerCoercion(MutToConstPointer));
_11 = NonNull::<T> { pointer: _10 };
- StorageDead(_23);
StorageDead(_22);
StorageDead(_10);
StorageDead(_9);
StorageLive(_12);
_12 = _7;
- _13 = std::slice::Iter::<'_, T> { ptr: move _11, end: move _12, _marker: const ZeroSized: PhantomData<&T> };
+ _13 = std::slice::Iter::<'_, T> { ptr: move _11, end_or_len: move _12, _marker: const ZeroSized: PhantomData<&T> };
StorageDead(_12);
StorageDead(_11);
StorageDead(_7);
@@ -143,11 +140,13 @@ fn forward_loop(_1: &[T], _2: impl Fn(&T)) -> () {
bb4: {
StorageLive(_16);
+ StorageLive(_15);
_15 = &mut _14;
- _16 = <std::slice::Iter<'_, T> as Iterator>::next(_15) -> [return: bb5, unwind unreachable];
+ _16 = <std::slice::Iter<'_, T> as Iterator>::next(move _15) -> [return: bb5, unwind unreachable];
}
bb5: {
+ StorageDead(_15);
_17 = discriminant(_16);
switchInt(move _17) -> [0: bb6, 1: bb8, otherwise: bb10];
}
diff --git a/tests/mir-opt/pre-codegen/slice_iter.forward_loop.PreCodegen.after.panic-unwind.mir b/tests/mir-opt/pre-codegen/slice_iter.forward_loop.PreCodegen.after.panic-unwind.mir
index cfc304987..65baaf64a 100644
--- a/tests/mir-opt/pre-codegen/slice_iter.forward_loop.PreCodegen.after.panic-unwind.mir
+++ b/tests/mir-opt/pre-codegen/slice_iter.forward_loop.PreCodegen.after.panic-unwind.mir
@@ -35,25 +35,24 @@ fn forward_loop(_1: &[T], _2: impl Fn(&T)) -> () {
scope 6 {
let _7: *const T;
scope 7 {
- debug end => _7;
+ debug end_or_len => _7;
scope 13 (inlined NonNull::<T>::new_unchecked) {
debug ptr => _9;
let mut _10: *const T;
- let mut _22: *mut T;
scope 14 {
scope 15 (inlined NonNull::<T>::new_unchecked::runtime::<T>) {
- debug ptr => _22;
+ debug ptr => _9;
scope 16 (inlined ptr::mut_ptr::<impl *mut T>::is_null) {
- debug self => _22;
- let mut _23: *mut u8;
+ debug self => _9;
+ let mut _22: *mut u8;
scope 17 {
scope 18 (inlined ptr::mut_ptr::<impl *mut T>::is_null::runtime_impl) {
- debug ptr => _23;
+ debug ptr => _22;
scope 19 (inlined ptr::mut_ptr::<impl *mut u8>::addr) {
- debug self => _23;
+ debug self => _22;
scope 20 {
scope 21 (inlined ptr::mut_ptr::<impl *mut u8>::cast::<()>) {
- debug self => _23;
+ debug self => _22;
}
}
}
@@ -122,16 +121,14 @@ fn forward_loop(_1: &[T], _2: impl Fn(&T)) -> () {
_9 = _4 as *mut T (PtrToPtr);
StorageLive(_10);
StorageLive(_22);
- StorageLive(_23);
_10 = _9 as *const T (PointerCoercion(MutToConstPointer));
_11 = NonNull::<T> { pointer: _10 };
- StorageDead(_23);
StorageDead(_22);
StorageDead(_10);
StorageDead(_9);
StorageLive(_12);
_12 = _7;
- _13 = std::slice::Iter::<'_, T> { ptr: move _11, end: move _12, _marker: const ZeroSized: PhantomData<&T> };
+ _13 = std::slice::Iter::<'_, T> { ptr: move _11, end_or_len: move _12, _marker: const ZeroSized: PhantomData<&T> };
StorageDead(_12);
StorageDead(_11);
StorageDead(_7);
@@ -143,11 +140,13 @@ fn forward_loop(_1: &[T], _2: impl Fn(&T)) -> () {
bb4: {
StorageLive(_16);
+ StorageLive(_15);
_15 = &mut _14;
- _16 = <std::slice::Iter<'_, T> as Iterator>::next(_15) -> [return: bb5, unwind: bb11];
+ _16 = <std::slice::Iter<'_, T> as Iterator>::next(move _15) -> [return: bb5, unwind: bb11];
}
bb5: {
+ StorageDead(_15);
_17 = discriminant(_16);
switchInt(move _17) -> [0: bb6, 1: bb8, otherwise: bb10];
}
diff --git a/tests/mir-opt/pre-codegen/slice_iter.range_loop.PreCodegen.after.panic-abort.mir b/tests/mir-opt/pre-codegen/slice_iter.range_loop.PreCodegen.after.panic-abort.mir
index 00177033b..4edf4b4fb 100644
--- a/tests/mir-opt/pre-codegen/slice_iter.range_loop.PreCodegen.after.panic-abort.mir
+++ b/tests/mir-opt/pre-codegen/slice_iter.range_loop.PreCodegen.after.panic-abort.mir
@@ -7,43 +7,43 @@ fn range_loop(_1: &[T], _2: impl Fn(usize, &T)) -> () {
let mut _3: usize;
let mut _4: std::ops::Range<usize>;
let mut _5: std::ops::Range<usize>;
- let mut _6: &mut std::ops::Range<usize>;
- let mut _12: std::option::Option<usize>;
- let mut _15: isize;
- let mut _17: usize;
- let mut _18: bool;
- let mut _20: &impl Fn(usize, &T);
- let mut _21: (usize, &T);
- let _22: ();
+ let mut _9: std::option::Option<usize>;
+ let mut _12: isize;
+ let mut _14: usize;
+ let mut _15: bool;
+ let mut _17: &impl Fn(usize, &T);
+ let mut _18: (usize, &T);
+ let _19: ();
+ let mut _20: &mut std::ops::Range<usize>;
scope 1 {
debug iter => _5;
- let _16: usize;
+ let _13: usize;
scope 2 {
- debug i => _16;
- let _19: &T;
+ debug i => _13;
+ let _16: &T;
scope 3 {
- debug x => _19;
+ debug x => _16;
}
}
scope 5 (inlined iter::range::<impl Iterator for std::ops::Range<usize>>::next) {
- debug self => _6;
+ debug self => _20;
scope 6 (inlined <std::ops::Range<usize> as iter::range::RangeIteratorImpl>::spec_next) {
- debug self => _6;
- let mut _7: &usize;
- let mut _8: &usize;
- let mut _11: bool;
- let _13: usize;
- let mut _14: usize;
+ debug self => _20;
+ let mut _8: bool;
+ let _10: usize;
+ let mut _11: usize;
+ let mut _21: &usize;
+ let mut _22: &usize;
scope 7 {
- debug old => _13;
+ debug old => _10;
scope 8 {
}
}
scope 9 (inlined cmp::impls::<impl PartialOrd for usize>::lt) {
- debug self => _7;
- debug other => _8;
- let mut _9: usize;
- let mut _10: usize;
+ debug self => _21;
+ debug other => _22;
+ let mut _6: usize;
+ let mut _7: usize;
}
}
}
@@ -63,53 +63,50 @@ fn range_loop(_1: &[T], _2: impl Fn(usize, &T)) -> () {
}
bb1: {
- StorageLive(_12);
- _6 = &mut _5;
- StorageLive(_13);
- StorageLive(_11);
- StorageLive(_7);
- _7 = &((*_6).0: usize);
- StorageLive(_8);
- _8 = &((*_6).1: usize);
StorageLive(_9);
- _9 = (*_7);
StorageLive(_10);
- _10 = (*_8);
- _11 = Lt(move _9, move _10);
- StorageDead(_10);
- StorageDead(_9);
- StorageDead(_8);
+ StorageLive(_8);
+ StorageLive(_21);
+ StorageLive(_22);
+ StorageLive(_6);
+ _6 = (_5.0: usize);
+ StorageLive(_7);
+ _7 = (_5.1: usize);
+ _8 = Lt(move _6, move _7);
StorageDead(_7);
- switchInt(move _11) -> [0: bb2, otherwise: bb3];
+ StorageDead(_6);
+ StorageDead(_22);
+ StorageDead(_21);
+ switchInt(move _8) -> [0: bb2, otherwise: bb3];
}
bb2: {
- _12 = Option::<usize>::None;
+ _9 = Option::<usize>::None;
goto -> bb5;
}
bb3: {
- _13 = ((*_6).0: usize);
- StorageLive(_14);
- _14 = <usize as Step>::forward_unchecked(_13, const 1_usize) -> [return: bb4, unwind unreachable];
+ _10 = (_5.0: usize);
+ StorageLive(_11);
+ _11 = <usize as Step>::forward_unchecked(_10, const 1_usize) -> [return: bb4, unwind unreachable];
}
bb4: {
- ((*_6).0: usize) = move _14;
- StorageDead(_14);
- _12 = Option::<usize>::Some(_13);
+ (_5.0: usize) = move _11;
+ StorageDead(_11);
+ _9 = Option::<usize>::Some(_10);
goto -> bb5;
}
bb5: {
- StorageDead(_11);
- StorageDead(_13);
- _15 = discriminant(_12);
- switchInt(move _15) -> [0: bb6, 1: bb8, otherwise: bb11];
+ StorageDead(_8);
+ StorageDead(_10);
+ _12 = discriminant(_9);
+ switchInt(move _12) -> [0: bb6, 1: bb8, otherwise: bb11];
}
bb6: {
- StorageDead(_12);
+ StorageDead(_9);
StorageDead(_5);
drop(_2) -> [return: bb7, unwind unreachable];
}
@@ -119,25 +116,25 @@ fn range_loop(_1: &[T], _2: impl Fn(usize, &T)) -> () {
}
bb8: {
- _16 = ((_12 as Some).0: usize);
- _17 = Len((*_1));
- _18 = Lt(_16, _17);
- assert(move _18, "index out of bounds: the length is {} but the index is {}", move _17, _16) -> [success: bb9, unwind unreachable];
+ _13 = ((_9 as Some).0: usize);
+ _14 = Len((*_1));
+ _15 = Lt(_13, _14);
+ assert(move _15, "index out of bounds: the length is {} but the index is {}", move _14, _13) -> [success: bb9, unwind unreachable];
}
bb9: {
- _19 = &(*_1)[_16];
- StorageLive(_20);
- _20 = &_2;
- StorageLive(_21);
- _21 = (_16, _19);
- _22 = <impl Fn(usize, &T) as Fn<(usize, &T)>>::call(move _20, move _21) -> [return: bb10, unwind unreachable];
+ _16 = &(*_1)[_13];
+ StorageLive(_17);
+ _17 = &_2;
+ StorageLive(_18);
+ _18 = (_13, _16);
+ _19 = <impl Fn(usize, &T) as Fn<(usize, &T)>>::call(move _17, move _18) -> [return: bb10, unwind unreachable];
}
bb10: {
- StorageDead(_21);
- StorageDead(_20);
- StorageDead(_12);
+ StorageDead(_18);
+ StorageDead(_17);
+ StorageDead(_9);
goto -> bb1;
}
diff --git a/tests/mir-opt/pre-codegen/slice_iter.range_loop.PreCodegen.after.panic-unwind.mir b/tests/mir-opt/pre-codegen/slice_iter.range_loop.PreCodegen.after.panic-unwind.mir
index 3423c5d86..f7b19e80e 100644
--- a/tests/mir-opt/pre-codegen/slice_iter.range_loop.PreCodegen.after.panic-unwind.mir
+++ b/tests/mir-opt/pre-codegen/slice_iter.range_loop.PreCodegen.after.panic-unwind.mir
@@ -7,43 +7,43 @@ fn range_loop(_1: &[T], _2: impl Fn(usize, &T)) -> () {
let mut _3: usize;
let mut _4: std::ops::Range<usize>;
let mut _5: std::ops::Range<usize>;
- let mut _6: &mut std::ops::Range<usize>;
- let mut _12: std::option::Option<usize>;
- let mut _15: isize;
- let mut _17: usize;
- let mut _18: bool;
- let mut _20: &impl Fn(usize, &T);
- let mut _21: (usize, &T);
- let _22: ();
+ let mut _9: std::option::Option<usize>;
+ let mut _12: isize;
+ let mut _14: usize;
+ let mut _15: bool;
+ let mut _17: &impl Fn(usize, &T);
+ let mut _18: (usize, &T);
+ let _19: ();
+ let mut _20: &mut std::ops::Range<usize>;
scope 1 {
debug iter => _5;
- let _16: usize;
+ let _13: usize;
scope 2 {
- debug i => _16;
- let _19: &T;
+ debug i => _13;
+ let _16: &T;
scope 3 {
- debug x => _19;
+ debug x => _16;
}
}
scope 5 (inlined iter::range::<impl Iterator for std::ops::Range<usize>>::next) {
- debug self => _6;
+ debug self => _20;
scope 6 (inlined <std::ops::Range<usize> as iter::range::RangeIteratorImpl>::spec_next) {
- debug self => _6;
- let mut _7: &usize;
- let mut _8: &usize;
- let mut _11: bool;
- let _13: usize;
- let mut _14: usize;
+ debug self => _20;
+ let mut _8: bool;
+ let _10: usize;
+ let mut _11: usize;
+ let mut _21: &usize;
+ let mut _22: &usize;
scope 7 {
- debug old => _13;
+ debug old => _10;
scope 8 {
}
}
scope 9 (inlined cmp::impls::<impl PartialOrd for usize>::lt) {
- debug self => _7;
- debug other => _8;
- let mut _9: usize;
- let mut _10: usize;
+ debug self => _21;
+ debug other => _22;
+ let mut _6: usize;
+ let mut _7: usize;
}
}
}
@@ -63,53 +63,50 @@ fn range_loop(_1: &[T], _2: impl Fn(usize, &T)) -> () {
}
bb1: {
- StorageLive(_12);
- _6 = &mut _5;
- StorageLive(_13);
- StorageLive(_11);
- StorageLive(_7);
- _7 = &((*_6).0: usize);
- StorageLive(_8);
- _8 = &((*_6).1: usize);
StorageLive(_9);
- _9 = (*_7);
StorageLive(_10);
- _10 = (*_8);
- _11 = Lt(move _9, move _10);
- StorageDead(_10);
- StorageDead(_9);
- StorageDead(_8);
+ StorageLive(_8);
+ StorageLive(_21);
+ StorageLive(_22);
+ StorageLive(_6);
+ _6 = (_5.0: usize);
+ StorageLive(_7);
+ _7 = (_5.1: usize);
+ _8 = Lt(move _6, move _7);
StorageDead(_7);
- switchInt(move _11) -> [0: bb2, otherwise: bb3];
+ StorageDead(_6);
+ StorageDead(_22);
+ StorageDead(_21);
+ switchInt(move _8) -> [0: bb2, otherwise: bb3];
}
bb2: {
- _12 = Option::<usize>::None;
+ _9 = Option::<usize>::None;
goto -> bb5;
}
bb3: {
- _13 = ((*_6).0: usize);
- StorageLive(_14);
- _14 = <usize as Step>::forward_unchecked(_13, const 1_usize) -> [return: bb4, unwind: bb12];
+ _10 = (_5.0: usize);
+ StorageLive(_11);
+ _11 = <usize as Step>::forward_unchecked(_10, const 1_usize) -> [return: bb4, unwind: bb12];
}
bb4: {
- ((*_6).0: usize) = move _14;
- StorageDead(_14);
- _12 = Option::<usize>::Some(_13);
+ (_5.0: usize) = move _11;
+ StorageDead(_11);
+ _9 = Option::<usize>::Some(_10);
goto -> bb5;
}
bb5: {
- StorageDead(_11);
- StorageDead(_13);
- _15 = discriminant(_12);
- switchInt(move _15) -> [0: bb6, 1: bb8, otherwise: bb11];
+ StorageDead(_8);
+ StorageDead(_10);
+ _12 = discriminant(_9);
+ switchInt(move _12) -> [0: bb6, 1: bb8, otherwise: bb11];
}
bb6: {
- StorageDead(_12);
+ StorageDead(_9);
StorageDead(_5);
drop(_2) -> [return: bb7, unwind continue];
}
@@ -119,25 +116,25 @@ fn range_loop(_1: &[T], _2: impl Fn(usize, &T)) -> () {
}
bb8: {
- _16 = ((_12 as Some).0: usize);
- _17 = Len((*_1));
- _18 = Lt(_16, _17);
- assert(move _18, "index out of bounds: the length is {} but the index is {}", move _17, _16) -> [success: bb9, unwind: bb12];
+ _13 = ((_9 as Some).0: usize);
+ _14 = Len((*_1));
+ _15 = Lt(_13, _14);
+ assert(move _15, "index out of bounds: the length is {} but the index is {}", move _14, _13) -> [success: bb9, unwind: bb12];
}
bb9: {
- _19 = &(*_1)[_16];
- StorageLive(_20);
- _20 = &_2;
- StorageLive(_21);
- _21 = (_16, _19);
- _22 = <impl Fn(usize, &T) as Fn<(usize, &T)>>::call(move _20, move _21) -> [return: bb10, unwind: bb12];
+ _16 = &(*_1)[_13];
+ StorageLive(_17);
+ _17 = &_2;
+ StorageLive(_18);
+ _18 = (_13, _16);
+ _19 = <impl Fn(usize, &T) as Fn<(usize, &T)>>::call(move _17, move _18) -> [return: bb10, unwind: bb12];
}
bb10: {
- StorageDead(_21);
- StorageDead(_20);
- StorageDead(_12);
+ StorageDead(_18);
+ StorageDead(_17);
+ StorageDead(_9);
goto -> bb1;
}
diff --git a/tests/mir-opt/pre-codegen/slice_iter.reverse_loop.PreCodegen.after.panic-abort.mir b/tests/mir-opt/pre-codegen/slice_iter.reverse_loop.PreCodegen.after.panic-abort.mir
index 1b4ac793f..549cb4f46 100644
--- a/tests/mir-opt/pre-codegen/slice_iter.reverse_loop.PreCodegen.after.panic-abort.mir
+++ b/tests/mir-opt/pre-codegen/slice_iter.reverse_loop.PreCodegen.after.panic-abort.mir
@@ -7,21 +7,21 @@ fn reverse_loop(_1: &[T], _2: impl Fn(&T)) -> () {
let mut _13: std::slice::Iter<'_, T>;
let mut _14: std::iter::Rev<std::slice::Iter<'_, T>>;
let mut _15: std::iter::Rev<std::slice::Iter<'_, T>>;
- let mut _16: &mut std::iter::Rev<std::slice::Iter<'_, T>>;
- let mut _18: std::option::Option<&T>;
- let mut _19: isize;
- let mut _21: &impl Fn(&T);
- let mut _22: (&T,);
- let _23: ();
+ let mut _17: std::option::Option<&T>;
+ let mut _18: isize;
+ let mut _20: &impl Fn(&T);
+ let mut _21: (&T,);
+ let _22: ();
+ let mut _23: &mut std::iter::Rev<std::slice::Iter<'_, T>>;
scope 1 {
debug iter => _15;
- let _20: &T;
+ let _19: &T;
scope 2 {
- debug x => _20;
+ debug x => _19;
}
scope 25 (inlined <Rev<std::slice::Iter<'_, T>> as Iterator>::next) {
- debug self => _16;
- let mut _17: &mut std::slice::Iter<'_, T>;
+ debug self => _23;
+ let mut _16: &mut std::slice::Iter<'_, T>;
}
}
scope 3 (inlined core::slice::<impl [T]>::iter) {
@@ -40,25 +40,24 @@ fn reverse_loop(_1: &[T], _2: impl Fn(&T)) -> () {
scope 6 {
let _7: *const T;
scope 7 {
- debug end => _7;
+ debug end_or_len => _7;
scope 13 (inlined NonNull::<T>::new_unchecked) {
debug ptr => _9;
let mut _10: *const T;
- let mut _24: *mut T;
scope 14 {
scope 15 (inlined NonNull::<T>::new_unchecked::runtime::<T>) {
- debug ptr => _24;
+ debug ptr => _9;
scope 16 (inlined ptr::mut_ptr::<impl *mut T>::is_null) {
- debug self => _24;
- let mut _25: *mut u8;
+ debug self => _9;
+ let mut _24: *mut u8;
scope 17 {
scope 18 (inlined ptr::mut_ptr::<impl *mut T>::is_null::runtime_impl) {
- debug ptr => _25;
+ debug ptr => _24;
scope 19 (inlined ptr::mut_ptr::<impl *mut u8>::addr) {
- debug self => _25;
+ debug self => _24;
scope 20 {
scope 21 (inlined ptr::mut_ptr::<impl *mut u8>::cast::<()>) {
- debug self => _25;
+ debug self => _24;
}
}
}
@@ -134,16 +133,14 @@ fn reverse_loop(_1: &[T], _2: impl Fn(&T)) -> () {
_9 = _4 as *mut T (PtrToPtr);
StorageLive(_10);
StorageLive(_24);
- StorageLive(_25);
_10 = _9 as *const T (PointerCoercion(MutToConstPointer));
_11 = NonNull::<T> { pointer: _10 };
- StorageDead(_25);
StorageDead(_24);
StorageDead(_10);
StorageDead(_9);
StorageLive(_12);
_12 = _7;
- _13 = std::slice::Iter::<'_, T> { ptr: move _11, end: move _12, _marker: const ZeroSized: PhantomData<&T> };
+ _13 = std::slice::Iter::<'_, T> { ptr: move _11, end_or_len: move _12, _marker: const ZeroSized: PhantomData<&T> };
StorageDead(_12);
StorageDead(_11);
StorageDead(_7);
@@ -156,21 +153,20 @@ fn reverse_loop(_1: &[T], _2: impl Fn(&T)) -> () {
}
bb4: {
- StorageLive(_18);
- _16 = &mut _15;
StorageLive(_17);
- _17 = &mut ((*_16).0: std::slice::Iter<'_, T>);
- _18 = <std::slice::Iter<'_, T> as DoubleEndedIterator>::next_back(move _17) -> [return: bb5, unwind unreachable];
+ StorageLive(_16);
+ _16 = &mut (_15.0: std::slice::Iter<'_, T>);
+ _17 = <std::slice::Iter<'_, T> as DoubleEndedIterator>::next_back(move _16) -> [return: bb5, unwind unreachable];
}
bb5: {
- StorageDead(_17);
- _19 = discriminant(_18);
- switchInt(move _19) -> [0: bb6, 1: bb8, otherwise: bb10];
+ StorageDead(_16);
+ _18 = discriminant(_17);
+ switchInt(move _18) -> [0: bb6, 1: bb8, otherwise: bb10];
}
bb6: {
- StorageDead(_18);
+ StorageDead(_17);
StorageDead(_15);
drop(_2) -> [return: bb7, unwind unreachable];
}
@@ -180,18 +176,18 @@ fn reverse_loop(_1: &[T], _2: impl Fn(&T)) -> () {
}
bb8: {
- _20 = ((_18 as Some).0: &T);
+ _19 = ((_17 as Some).0: &T);
+ StorageLive(_20);
+ _20 = &_2;
StorageLive(_21);
- _21 = &_2;
- StorageLive(_22);
- _22 = (_20,);
- _23 = <impl Fn(&T) as Fn<(&T,)>>::call(move _21, move _22) -> [return: bb9, unwind unreachable];
+ _21 = (_19,);
+ _22 = <impl Fn(&T) as Fn<(&T,)>>::call(move _20, move _21) -> [return: bb9, unwind unreachable];
}
bb9: {
- StorageDead(_22);
StorageDead(_21);
- StorageDead(_18);
+ StorageDead(_20);
+ StorageDead(_17);
goto -> bb4;
}
diff --git a/tests/mir-opt/pre-codegen/slice_iter.reverse_loop.PreCodegen.after.panic-unwind.mir b/tests/mir-opt/pre-codegen/slice_iter.reverse_loop.PreCodegen.after.panic-unwind.mir
index f75a9a03d..43f8806e1 100644
--- a/tests/mir-opt/pre-codegen/slice_iter.reverse_loop.PreCodegen.after.panic-unwind.mir
+++ b/tests/mir-opt/pre-codegen/slice_iter.reverse_loop.PreCodegen.after.panic-unwind.mir
@@ -7,21 +7,21 @@ fn reverse_loop(_1: &[T], _2: impl Fn(&T)) -> () {
let mut _13: std::slice::Iter<'_, T>;
let mut _14: std::iter::Rev<std::slice::Iter<'_, T>>;
let mut _15: std::iter::Rev<std::slice::Iter<'_, T>>;
- let mut _16: &mut std::iter::Rev<std::slice::Iter<'_, T>>;
- let mut _18: std::option::Option<&T>;
- let mut _19: isize;
- let mut _21: &impl Fn(&T);
- let mut _22: (&T,);
- let _23: ();
+ let mut _17: std::option::Option<&T>;
+ let mut _18: isize;
+ let mut _20: &impl Fn(&T);
+ let mut _21: (&T,);
+ let _22: ();
+ let mut _23: &mut std::iter::Rev<std::slice::Iter<'_, T>>;
scope 1 {
debug iter => _15;
- let _20: &T;
+ let _19: &T;
scope 2 {
- debug x => _20;
+ debug x => _19;
}
scope 25 (inlined <Rev<std::slice::Iter<'_, T>> as Iterator>::next) {
- debug self => _16;
- let mut _17: &mut std::slice::Iter<'_, T>;
+ debug self => _23;
+ let mut _16: &mut std::slice::Iter<'_, T>;
}
}
scope 3 (inlined core::slice::<impl [T]>::iter) {
@@ -40,25 +40,24 @@ fn reverse_loop(_1: &[T], _2: impl Fn(&T)) -> () {
scope 6 {
let _7: *const T;
scope 7 {
- debug end => _7;
+ debug end_or_len => _7;
scope 13 (inlined NonNull::<T>::new_unchecked) {
debug ptr => _9;
let mut _10: *const T;
- let mut _24: *mut T;
scope 14 {
scope 15 (inlined NonNull::<T>::new_unchecked::runtime::<T>) {
- debug ptr => _24;
+ debug ptr => _9;
scope 16 (inlined ptr::mut_ptr::<impl *mut T>::is_null) {
- debug self => _24;
- let mut _25: *mut u8;
+ debug self => _9;
+ let mut _24: *mut u8;
scope 17 {
scope 18 (inlined ptr::mut_ptr::<impl *mut T>::is_null::runtime_impl) {
- debug ptr => _25;
+ debug ptr => _24;
scope 19 (inlined ptr::mut_ptr::<impl *mut u8>::addr) {
- debug self => _25;
+ debug self => _24;
scope 20 {
scope 21 (inlined ptr::mut_ptr::<impl *mut u8>::cast::<()>) {
- debug self => _25;
+ debug self => _24;
}
}
}
@@ -134,16 +133,14 @@ fn reverse_loop(_1: &[T], _2: impl Fn(&T)) -> () {
_9 = _4 as *mut T (PtrToPtr);
StorageLive(_10);
StorageLive(_24);
- StorageLive(_25);
_10 = _9 as *const T (PointerCoercion(MutToConstPointer));
_11 = NonNull::<T> { pointer: _10 };
- StorageDead(_25);
StorageDead(_24);
StorageDead(_10);
StorageDead(_9);
StorageLive(_12);
_12 = _7;
- _13 = std::slice::Iter::<'_, T> { ptr: move _11, end: move _12, _marker: const ZeroSized: PhantomData<&T> };
+ _13 = std::slice::Iter::<'_, T> { ptr: move _11, end_or_len: move _12, _marker: const ZeroSized: PhantomData<&T> };
StorageDead(_12);
StorageDead(_11);
StorageDead(_7);
@@ -156,21 +153,20 @@ fn reverse_loop(_1: &[T], _2: impl Fn(&T)) -> () {
}
bb4: {
- StorageLive(_18);
- _16 = &mut _15;
StorageLive(_17);
- _17 = &mut ((*_16).0: std::slice::Iter<'_, T>);
- _18 = <std::slice::Iter<'_, T> as DoubleEndedIterator>::next_back(move _17) -> [return: bb5, unwind: bb11];
+ StorageLive(_16);
+ _16 = &mut (_15.0: std::slice::Iter<'_, T>);
+ _17 = <std::slice::Iter<'_, T> as DoubleEndedIterator>::next_back(move _16) -> [return: bb5, unwind: bb11];
}
bb5: {
- StorageDead(_17);
- _19 = discriminant(_18);
- switchInt(move _19) -> [0: bb6, 1: bb8, otherwise: bb10];
+ StorageDead(_16);
+ _18 = discriminant(_17);
+ switchInt(move _18) -> [0: bb6, 1: bb8, otherwise: bb10];
}
bb6: {
- StorageDead(_18);
+ StorageDead(_17);
StorageDead(_15);
drop(_2) -> [return: bb7, unwind continue];
}
@@ -180,18 +176,18 @@ fn reverse_loop(_1: &[T], _2: impl Fn(&T)) -> () {
}
bb8: {
- _20 = ((_18 as Some).0: &T);
+ _19 = ((_17 as Some).0: &T);
+ StorageLive(_20);
+ _20 = &_2;
StorageLive(_21);
- _21 = &_2;
- StorageLive(_22);
- _22 = (_20,);
- _23 = <impl Fn(&T) as Fn<(&T,)>>::call(move _21, move _22) -> [return: bb9, unwind: bb11];
+ _21 = (_19,);
+ _22 = <impl Fn(&T) as Fn<(&T,)>>::call(move _20, move _21) -> [return: bb9, unwind: bb11];
}
bb9: {
- StorageDead(_22);
StorageDead(_21);
- StorageDead(_18);
+ StorageDead(_20);
+ StorageDead(_17);
goto -> bb4;
}
diff --git a/tests/mir-opt/pre-codegen/slice_iter.slice_iter_mut_next_back.PreCodegen.after.panic-abort.mir b/tests/mir-opt/pre-codegen/slice_iter.slice_iter_mut_next_back.PreCodegen.after.panic-abort.mir
index 0471d0757..78f96bf41 100644
--- a/tests/mir-opt/pre-codegen/slice_iter.slice_iter_mut_next_back.PreCodegen.after.panic-abort.mir
+++ b/tests/mir-opt/pre-codegen/slice_iter.slice_iter_mut_next_back.PreCodegen.after.panic-abort.mir
@@ -5,7 +5,7 @@ fn slice_iter_mut_next_back(_1: &mut std::slice::IterMut<'_, T>) -> Option<&mut
let mut _0: std::option::Option<&mut T>;
bb0: {
- _0 = <std::slice::IterMut<'_, T> as DoubleEndedIterator>::next_back(_1) -> [return: bb1, unwind unreachable];
+ _0 = <std::slice::IterMut<'_, T> as DoubleEndedIterator>::next_back(move _1) -> [return: bb1, unwind unreachable];
}
bb1: {
diff --git a/tests/mir-opt/pre-codegen/slice_iter.slice_iter_mut_next_back.PreCodegen.after.panic-unwind.mir b/tests/mir-opt/pre-codegen/slice_iter.slice_iter_mut_next_back.PreCodegen.after.panic-unwind.mir
index 386f3a9ed..dfe5e206f 100644
--- a/tests/mir-opt/pre-codegen/slice_iter.slice_iter_mut_next_back.PreCodegen.after.panic-unwind.mir
+++ b/tests/mir-opt/pre-codegen/slice_iter.slice_iter_mut_next_back.PreCodegen.after.panic-unwind.mir
@@ -5,7 +5,7 @@ fn slice_iter_mut_next_back(_1: &mut std::slice::IterMut<'_, T>) -> Option<&mut
let mut _0: std::option::Option<&mut T>;
bb0: {
- _0 = <std::slice::IterMut<'_, T> as DoubleEndedIterator>::next_back(_1) -> [return: bb1, unwind continue];
+ _0 = <std::slice::IterMut<'_, T> as DoubleEndedIterator>::next_back(move _1) -> [return: bb1, unwind continue];
}
bb1: {
diff --git a/tests/mir-opt/pre-codegen/slice_iter.slice_iter_next.PreCodegen.after.panic-abort.mir b/tests/mir-opt/pre-codegen/slice_iter.slice_iter_next.PreCodegen.after.panic-abort.mir
index 8c0209ae1..8edac638c 100644
--- a/tests/mir-opt/pre-codegen/slice_iter.slice_iter_next.PreCodegen.after.panic-abort.mir
+++ b/tests/mir-opt/pre-codegen/slice_iter.slice_iter_next.PreCodegen.after.panic-abort.mir
@@ -5,7 +5,7 @@ fn slice_iter_next(_1: &mut std::slice::Iter<'_, T>) -> Option<&T> {
let mut _0: std::option::Option<&T>;
bb0: {
- _0 = <std::slice::Iter<'_, T> as Iterator>::next(_1) -> [return: bb1, unwind unreachable];
+ _0 = <std::slice::Iter<'_, T> as Iterator>::next(move _1) -> [return: bb1, unwind unreachable];
}
bb1: {
diff --git a/tests/mir-opt/pre-codegen/slice_iter.slice_iter_next.PreCodegen.after.panic-unwind.mir b/tests/mir-opt/pre-codegen/slice_iter.slice_iter_next.PreCodegen.after.panic-unwind.mir
index e76ec0039..fdde07173 100644
--- a/tests/mir-opt/pre-codegen/slice_iter.slice_iter_next.PreCodegen.after.panic-unwind.mir
+++ b/tests/mir-opt/pre-codegen/slice_iter.slice_iter_next.PreCodegen.after.panic-unwind.mir
@@ -5,7 +5,7 @@ fn slice_iter_next(_1: &mut std::slice::Iter<'_, T>) -> Option<&T> {
let mut _0: std::option::Option<&T>;
bb0: {
- _0 = <std::slice::Iter<'_, T> as Iterator>::next(_1) -> [return: bb1, unwind continue];
+ _0 = <std::slice::Iter<'_, T> as Iterator>::next(move _1) -> [return: bb1, unwind continue];
}
bb1: {
diff --git a/tests/mir-opt/pre-codegen/spans.outer.PreCodegen.after.panic-abort.mir b/tests/mir-opt/pre-codegen/spans.outer.PreCodegen.after.panic-abort.mir
index b9329520b..ed7107e53 100644
--- a/tests/mir-opt/pre-codegen/spans.outer.PreCodegen.after.panic-abort.mir
+++ b/tests/mir-opt/pre-codegen/spans.outer.PreCodegen.after.panic-abort.mir
@@ -3,17 +3,19 @@
fn outer(_1: u8) -> u8 {
debug v => _1; // in scope 0 at $DIR/spans.rs:10:14: 10:15
let mut _0: u8; // return place in scope 0 at $DIR/spans.rs:10:24: 10:26
- let _2: &u8; // in scope 0 at $DIR/spans.rs:11:11: 11:13
+ let mut _2: &u8; // in scope 0 at $DIR/spans.rs:11:11: 11:13
bb0: {
+ StorageLive(_2); // scope 0 at $DIR/spans.rs:11:11: 11:13
_2 = &_1; // scope 0 at $DIR/spans.rs:11:11: 11:13
- _0 = inner(_2) -> [return: bb1, unwind unreachable]; // scope 0 at $DIR/spans.rs:11:5: 11:14
+ _0 = inner(move _2) -> [return: bb1, unwind unreachable]; // scope 0 at $DIR/spans.rs:11:5: 11:14
// mir::Constant
// + span: $DIR/spans.rs:11:5: 11:10
// + literal: Const { ty: for<'a> fn(&'a u8) -> u8 {inner}, val: Value(<ZST>) }
}
bb1: {
+ StorageDead(_2); // scope 0 at $DIR/spans.rs:11:13: 11:14
return; // scope 0 at $DIR/spans.rs:12:2: 12:2
}
}
diff --git a/tests/mir-opt/pre-codegen/spans.outer.PreCodegen.after.panic-unwind.mir b/tests/mir-opt/pre-codegen/spans.outer.PreCodegen.after.panic-unwind.mir
index 1e20b1be5..dc436dc26 100644
--- a/tests/mir-opt/pre-codegen/spans.outer.PreCodegen.after.panic-unwind.mir
+++ b/tests/mir-opt/pre-codegen/spans.outer.PreCodegen.after.panic-unwind.mir
@@ -3,17 +3,19 @@
fn outer(_1: u8) -> u8 {
debug v => _1; // in scope 0 at $DIR/spans.rs:10:14: 10:15
let mut _0: u8; // return place in scope 0 at $DIR/spans.rs:10:24: 10:26
- let _2: &u8; // in scope 0 at $DIR/spans.rs:11:11: 11:13
+ let mut _2: &u8; // in scope 0 at $DIR/spans.rs:11:11: 11:13
bb0: {
+ StorageLive(_2); // scope 0 at $DIR/spans.rs:11:11: 11:13
_2 = &_1; // scope 0 at $DIR/spans.rs:11:11: 11:13
- _0 = inner(_2) -> [return: bb1, unwind continue]; // scope 0 at $DIR/spans.rs:11:5: 11:14
+ _0 = inner(move _2) -> [return: bb1, unwind continue]; // scope 0 at $DIR/spans.rs:11:5: 11:14
// mir::Constant
// + span: $DIR/spans.rs:11:5: 11:10
// + literal: Const { ty: for<'a> fn(&'a u8) -> u8 {inner}, val: Value(<ZST>) }
}
bb1: {
+ StorageDead(_2); // scope 0 at $DIR/spans.rs:11:13: 11:14
return; // scope 0 at $DIR/spans.rs:12:2: 12:2
}
}