1
Fork 0

Avoid recording no-op replacements.

This commit is contained in:
Camille GILLOT 2023-12-24 13:00:48 +00:00
parent 4ee01faaf0
commit 7e39100586
35 changed files with 126 additions and 189 deletions

View file

@ -637,6 +637,7 @@ impl<'body, 'tcx> VnState<'body, 'tcx> {
if place.is_indirect() if place.is_indirect()
&& let Some(base) = self.locals[place.local] && let Some(base) = self.locals[place.local]
&& let Some(new_local) = self.try_as_local(base, location) && let Some(new_local) = self.try_as_local(base, location)
&& place.local != new_local
{ {
place.local = new_local; place.local = new_local;
self.reused_locals.insert(new_local); self.reused_locals.insert(new_local);
@ -646,8 +647,8 @@ impl<'body, 'tcx> VnState<'body, 'tcx> {
for i in 0..projection.len() { for i in 0..projection.len() {
let elem = projection[i]; let elem = projection[i];
if let ProjectionElem::Index(idx) = elem if let ProjectionElem::Index(idx_local) = elem
&& let Some(idx) = self.locals[idx] && let Some(idx) = self.locals[idx_local]
{ {
if let Some(offset) = self.evaluated[idx].as_ref() if let Some(offset) = self.evaluated[idx].as_ref()
&& let Ok(offset) = self.ecx.read_target_usize(offset) && let Ok(offset) = self.ecx.read_target_usize(offset)
@ -655,9 +656,11 @@ impl<'body, 'tcx> VnState<'body, 'tcx> {
{ {
projection.to_mut()[i] = projection.to_mut()[i] =
ProjectionElem::ConstantIndex { offset, min_length, from_end: false }; ProjectionElem::ConstantIndex { offset, min_length, from_end: false };
} else if let Some(new_idx) = self.try_as_local(idx, location) { } else if let Some(new_idx_local) = self.try_as_local(idx, location)
projection.to_mut()[i] = ProjectionElem::Index(new_idx); && idx_local != new_idx_local
self.reused_locals.insert(new_idx); {
projection.to_mut()[i] = ProjectionElem::Index(new_idx_local);
self.reused_locals.insert(new_idx_local);
} }
} }
} }

View file

@ -7,10 +7,10 @@ fn main() -> () {
bb0: { bb0: {
StorageLive(_1); StorageLive(_1);
nop; StorageLive(_2);
_2 = const {ALLOC9: &&[(Option<i32>, &[&str])]}; _2 = const {ALLOC9: &&[(Option<i32>, &[&str])]};
_1 = (*_2); _1 = (*_2);
nop; StorageDead(_2);
StorageDead(_1); StorageDead(_1);
_0 = const (); _0 = const ();
return; return;

View file

@ -7,10 +7,10 @@ fn main() -> () {
bb0: { bb0: {
StorageLive(_1); StorageLive(_1);
nop; StorageLive(_2);
_2 = const {ALLOC9: &&[(Option<i32>, &[&str])]}; _2 = const {ALLOC9: &&[(Option<i32>, &[&str])]};
_1 = (*_2); _1 = (*_2);
nop; StorageDead(_2);
StorageDead(_1); StorageDead(_1);
_0 = const (); _0 = const ();
return; return;

View file

@ -7,10 +7,10 @@ fn main() -> () {
bb0: { bb0: {
StorageLive(_1); StorageLive(_1);
nop; StorageLive(_2);
_2 = const {ALLOC9: &&[(Option<i32>, &[&u8])]}; _2 = const {ALLOC9: &&[(Option<i32>, &[&u8])]};
_1 = (*_2); _1 = (*_2);
nop; StorageDead(_2);
StorageDead(_1); StorageDead(_1);
_0 = const (); _0 = const ();
return; return;

View file

@ -7,10 +7,10 @@ fn main() -> () {
bb0: { bb0: {
StorageLive(_1); StorageLive(_1);
nop; StorageLive(_2);
_2 = const {ALLOC9: &&[(Option<i32>, &[&u8])]}; _2 = const {ALLOC9: &&[(Option<i32>, &[&u8])]};
_1 = (*_2); _1 = (*_2);
nop; StorageDead(_2);
StorageDead(_1); StorageDead(_1);
_0 = const (); _0 = const ();
return; return;

View file

@ -7,10 +7,10 @@ fn main() -> () {
bb0: { bb0: {
StorageLive(_1); StorageLive(_1);
nop; StorageLive(_2);
_2 = const {ALLOC4: &&Packed}; _2 = const {ALLOC4: &&Packed};
_1 = (*_2); _1 = (*_2);
nop; StorageDead(_2);
StorageDead(_1); StorageDead(_1);
_0 = const (); _0 = const ();
return; return;

View file

@ -7,10 +7,10 @@ fn main() -> () {
bb0: { bb0: {
StorageLive(_1); StorageLive(_1);
nop; StorageLive(_2);
_2 = const {ALLOC2: &&Packed}; _2 = const {ALLOC2: &&Packed};
_1 = (*_2); _1 = (*_2);
nop; StorageDead(_2);
StorageDead(_1); StorageDead(_1);
_0 = const (); _0 = const ();
return; return;

View file

@ -24,9 +24,8 @@
bb0: { bb0: {
StorageLive(_2); StorageLive(_2);
- _2 = (const 1_i32, const false); - _2 = (const 1_i32, const false);
- StorageLive(_3);
+ _2 = const (1_i32, false); + _2 = const (1_i32, false);
+ nop; StorageLive(_3);
_3 = &raw mut (_2.1: bool); _3 = &raw mut (_2.1: bool);
- _2 = (const 1_i32, const false); - _2 = (const 1_i32, const false);
+ _2 = const (1_i32, false); + _2 = const (1_i32, false);
@ -42,9 +41,8 @@
StorageDead(_6); StorageDead(_6);
_0 = _5; _0 = _5;
- StorageDead(_5); - StorageDead(_5);
- StorageDead(_3);
+ nop;
+ nop; + nop;
StorageDead(_3);
StorageDead(_2); StorageDead(_2);
return; return;
} }

View file

@ -22,18 +22,15 @@
} }
bb0: { bb0: {
- StorageLive(_1); StorageLive(_1);
+ nop;
StorageLive(_2); StorageLive(_2);
- StorageLive(_3); StorageLive(_3);
+ nop;
_9 = const _; _9 = const _;
_3 = &(*_9); _3 = &(*_9);
_2 = &raw const (*_3); _2 = &raw const (*_3);
_1 = move _2 as *const [i32] (PointerCoercion(Unsize)); _1 = move _2 as *const [i32] (PointerCoercion(Unsize));
StorageDead(_2); StorageDead(_2);
- StorageDead(_3); StorageDead(_3);
+ nop;
StorageLive(_5); StorageLive(_5);
StorageLive(_6); StorageLive(_6);
_6 = const 3_usize; _6 = const 3_usize;
@ -50,8 +47,7 @@
StorageDead(_6); StorageDead(_6);
_0 = const (); _0 = const ();
StorageDead(_5); StorageDead(_5);
- StorageDead(_1); StorageDead(_1);
+ nop;
return; return;
} }
} }

View file

@ -22,18 +22,15 @@
} }
bb0: { bb0: {
- StorageLive(_1); StorageLive(_1);
+ nop;
StorageLive(_2); StorageLive(_2);
- StorageLive(_3); StorageLive(_3);
+ nop;
_9 = const _; _9 = const _;
_3 = &(*_9); _3 = &(*_9);
_2 = &raw const (*_3); _2 = &raw const (*_3);
_1 = move _2 as *const [i32] (PointerCoercion(Unsize)); _1 = move _2 as *const [i32] (PointerCoercion(Unsize));
StorageDead(_2); StorageDead(_2);
- StorageDead(_3); StorageDead(_3);
+ nop;
StorageLive(_5); StorageLive(_5);
StorageLive(_6); StorageLive(_6);
_6 = const 3_usize; _6 = const 3_usize;
@ -50,8 +47,7 @@
StorageDead(_6); StorageDead(_6);
_0 = const (); _0 = const ();
StorageDead(_5); StorageDead(_5);
- StorageDead(_1); StorageDead(_1);
+ nop;
return; return;
} }
} }

View file

@ -22,18 +22,15 @@
} }
bb0: { bb0: {
- StorageLive(_1); StorageLive(_1);
+ nop;
StorageLive(_2); StorageLive(_2);
- StorageLive(_3); StorageLive(_3);
+ nop;
_9 = const _; _9 = const _;
_3 = &(*_9); _3 = &(*_9);
_2 = &raw const (*_3); _2 = &raw const (*_3);
_1 = move _2 as *const [i32] (PointerCoercion(Unsize)); _1 = move _2 as *const [i32] (PointerCoercion(Unsize));
StorageDead(_2); StorageDead(_2);
- StorageDead(_3); StorageDead(_3);
+ nop;
StorageLive(_5); StorageLive(_5);
StorageLive(_6); StorageLive(_6);
_6 = const 3_usize; _6 = const 3_usize;
@ -50,8 +47,7 @@
StorageDead(_6); StorageDead(_6);
_0 = const (); _0 = const ();
StorageDead(_5); StorageDead(_5);
- StorageDead(_1); StorageDead(_1);
+ nop;
return; return;
} }
} }

View file

@ -22,18 +22,15 @@
} }
bb0: { bb0: {
- StorageLive(_1); StorageLive(_1);
+ nop;
StorageLive(_2); StorageLive(_2);
- StorageLive(_3); StorageLive(_3);
+ nop;
_9 = const _; _9 = const _;
_3 = &(*_9); _3 = &(*_9);
_2 = &raw const (*_3); _2 = &raw const (*_3);
_1 = move _2 as *const [i32] (PointerCoercion(Unsize)); _1 = move _2 as *const [i32] (PointerCoercion(Unsize));
StorageDead(_2); StorageDead(_2);
- StorageDead(_3); StorageDead(_3);
+ nop;
StorageLive(_5); StorageLive(_5);
StorageLive(_6); StorageLive(_6);
_6 = const 3_usize; _6 = const 3_usize;
@ -50,8 +47,7 @@
StorageDead(_6); StorageDead(_6);
_0 = const (); _0 = const ();
StorageDead(_5); StorageDead(_5);
- StorageDead(_1); StorageDead(_1);
+ nop;
return; return;
} }
} }

View file

@ -22,12 +22,10 @@
- _1 = (const 1_i32,); - _1 = (const 1_i32,);
+ _1 = const (1_i32,); + _1 = const (1_i32,);
StorageLive(_2); StorageLive(_2);
- StorageLive(_3); StorageLive(_3);
+ nop;
_3 = &raw mut (_1.0: i32); _3 = &raw mut (_1.0: i32);
(*_3) = const 5_i32; (*_3) = const 5_i32;
- StorageDead(_3); StorageDead(_3);
+ nop;
_2 = const (); _2 = const ();
StorageDead(_2); StorageDead(_2);
StorageLive(_4); StorageLive(_4);

View file

@ -17,13 +17,11 @@
bb0: { bb0: {
StorageLive(_1); StorageLive(_1);
- _1 = (const 1_i32,); - _1 = (const 1_i32,);
- StorageLive(_2);
+ _1 = const (1_i32,); + _1 = const (1_i32,);
+ nop; StorageLive(_2);
_2 = &mut (_1.0: i32); _2 = &mut (_1.0: i32);
(*_2) = const 5_i32; (*_2) = const 5_i32;
- StorageDead(_2); StorageDead(_2);
+ nop;
StorageLive(_3); StorageLive(_3);
StorageLive(_4); StorageLive(_4);
_4 = (_1.0: i32); _4 = (_1.0: i32);

View file

@ -19,17 +19,15 @@
bb0: { bb0: {
StorageLive(_1); StorageLive(_1);
- _1 = (const 42_i32, const 43_i32); - _1 = (const 42_i32, const 43_i32);
- StorageLive(_2);
+ _1 = const (42_i32, 43_i32); + _1 = const (42_i32, 43_i32);
+ nop; StorageLive(_2);
_2 = &mut _1; _2 = &mut _1;
((*_2).1: i32) = const 99_i32; ((*_2).1: i32) = const 99_i32;
StorageLive(_3); StorageLive(_3);
_3 = _1; _3 = _1;
_0 = const (); _0 = const ();
StorageDead(_3); StorageDead(_3);
- StorageDead(_2); StorageDead(_2);
+ nop;
StorageDead(_1); StorageDead(_1);
return; return;
} }

View file

@ -22,14 +22,12 @@
_1 = const 42_u32; _1 = const 42_u32;
StorageLive(_2); StorageLive(_2);
StorageLive(_3); StorageLive(_3);
- StorageLive(_4); StorageLive(_4);
+ nop;
_4 = const {ALLOC0: *mut u32}; _4 = const {ALLOC0: *mut u32};
_3 = (*_4); _3 = (*_4);
_1 = move _3; _1 = move _3;
StorageDead(_3); StorageDead(_3);
- StorageDead(_4); StorageDead(_4);
+ nop;
_2 = const (); _2 = const ();
StorageDead(_2); StorageDead(_2);
StorageLive(_5); StorageLive(_5);

View file

@ -16,14 +16,12 @@
- StorageLive(_1); - StorageLive(_1);
+ nop; + nop;
StorageLive(_2); StorageLive(_2);
- StorageLive(_3); StorageLive(_3);
+ nop;
_3 = const _; _3 = const _;
_2 = &raw const (*_3); _2 = &raw const (*_3);
_1 = move _2 as usize (PointerExposeAddress); _1 = move _2 as usize (PointerExposeAddress);
StorageDead(_2); StorageDead(_2);
- StorageDead(_3); StorageDead(_3);
+ nop;
StorageLive(_4); StorageLive(_4);
StorageLive(_5); StorageLive(_5);
_5 = _1; _5 = _1;

View file

@ -16,14 +16,12 @@
- StorageLive(_1); - StorageLive(_1);
+ nop; + nop;
StorageLive(_2); StorageLive(_2);
- StorageLive(_3); StorageLive(_3);
+ nop;
_3 = const _; _3 = const _;
_2 = &raw const (*_3); _2 = &raw const (*_3);
_1 = move _2 as usize (PointerExposeAddress); _1 = move _2 as usize (PointerExposeAddress);
StorageDead(_2); StorageDead(_2);
- StorageDead(_3); StorageDead(_3);
+ nop;
StorageLive(_4); StorageLive(_4);
StorageLive(_5); StorageLive(_5);
_5 = _1; _5 = _1;

View file

@ -13,14 +13,12 @@
bb0: { bb0: {
StorageLive(_1); StorageLive(_1);
- StorageLive(_2); StorageLive(_2);
+ nop;
_4 = const _; _4 = const _;
_2 = &(*_4); _2 = &(*_4);
- _1 = (*_2); - _1 = (*_2);
- StorageDead(_2);
+ _1 = const 4_i32; + _1 = const 4_i32;
+ nop; StorageDead(_2);
_0 = const (); _0 = const ();
StorageDead(_1); StorageDead(_1);
return; return;

View file

@ -13,14 +13,12 @@
bb0: { bb0: {
StorageLive(_1); StorageLive(_1);
- StorageLive(_2); StorageLive(_2);
+ nop;
_4 = const _; _4 = const _;
_2 = &((*_4).1: i32); _2 = &((*_4).1: i32);
- _1 = (*_2); - _1 = (*_2);
- StorageDead(_2);
+ _1 = const 5_i32; + _1 = const 5_i32;
+ nop; StorageDead(_2);
_0 = const (); _0 = const ();
StorageDead(_1); StorageDead(_1);
return; return;

View file

@ -18,8 +18,7 @@
bb0: { bb0: {
StorageLive(_1); StorageLive(_1);
- StorageLive(_2); StorageLive(_2);
+ nop;
StorageLive(_3); StorageLive(_3);
StorageLive(_4); StorageLive(_4);
_9 = const _; _9 = const _;
@ -44,8 +43,7 @@
+ _1 = (*_2)[1 of 2]; + _1 = (*_2)[1 of 2];
StorageDead(_6); StorageDead(_6);
StorageDead(_4); StorageDead(_4);
- StorageDead(_2); StorageDead(_2);
+ nop;
_0 = const (); _0 = const ();
StorageDead(_1); StorageDead(_1);
return; return;

View file

@ -18,8 +18,7 @@
bb0: { bb0: {
StorageLive(_1); StorageLive(_1);
- StorageLive(_2); StorageLive(_2);
+ nop;
StorageLive(_3); StorageLive(_3);
StorageLive(_4); StorageLive(_4);
_9 = const _; _9 = const _;
@ -44,8 +43,7 @@
+ _1 = (*_2)[1 of 2]; + _1 = (*_2)[1 of 2];
StorageDead(_6); StorageDead(_6);
StorageDead(_4); StorageDead(_4);
- StorageDead(_2); StorageDead(_2);
+ nop;
_0 = const (); _0 = const ();
StorageDead(_1); StorageDead(_1);
return; return;

View file

@ -18,8 +18,7 @@
bb0: { bb0: {
StorageLive(_1); StorageLive(_1);
- StorageLive(_2); StorageLive(_2);
+ nop;
StorageLive(_3); StorageLive(_3);
StorageLive(_4); StorageLive(_4);
_9 = const _; _9 = const _;
@ -44,8 +43,7 @@
+ _1 = (*_2)[1 of 2]; + _1 = (*_2)[1 of 2];
StorageDead(_6); StorageDead(_6);
StorageDead(_4); StorageDead(_4);
- StorageDead(_2); StorageDead(_2);
+ nop;
_0 = const (); _0 = const ();
StorageDead(_1); StorageDead(_1);
return; return;

View file

@ -18,8 +18,7 @@
bb0: { bb0: {
StorageLive(_1); StorageLive(_1);
- StorageLive(_2); StorageLive(_2);
+ nop;
StorageLive(_3); StorageLive(_3);
StorageLive(_4); StorageLive(_4);
_9 = const _; _9 = const _;
@ -44,8 +43,7 @@
+ _1 = (*_2)[1 of 2]; + _1 = (*_2)[1 of 2];
StorageDead(_6); StorageDead(_6);
StorageDead(_4); StorageDead(_4);
- StorageDead(_2); StorageDead(_2);
+ nop;
_0 = const (); _0 = const ();
StorageDead(_1); StorageDead(_1);
return; return;

View file

@ -13,14 +13,12 @@
bb0: { bb0: {
StorageLive(_1); StorageLive(_1);
- StorageLive(_2); StorageLive(_2);
- _2 = const 1_usize as &mut Never (Transmute); - _2 = const 1_usize as &mut Never (Transmute);
- _1 = &mut (*_2); - _1 = &mut (*_2);
- StorageDead(_2);
+ nop;
+ _2 = const {0x1 as &mut Never}; + _2 = const {0x1 as &mut Never};
+ _1 = const {0x1 as &mut Never}; + _1 = const {0x1 as &mut Never};
+ nop; StorageDead(_2);
unreachable; unreachable;
} }
} }

View file

@ -13,14 +13,12 @@
bb0: { bb0: {
StorageLive(_1); StorageLive(_1);
- StorageLive(_2); StorageLive(_2);
- _2 = const 1_usize as &mut Never (Transmute); - _2 = const 1_usize as &mut Never (Transmute);
- _1 = &mut (*_2); - _1 = &mut (*_2);
- StorageDead(_2);
+ nop;
+ _2 = const {0x1 as &mut Never}; + _2 = const {0x1 as &mut Never};
+ _1 = const {0x1 as &mut Never}; + _1 = const {0x1 as &mut Never};
+ nop; StorageDead(_2);
unreachable; unreachable;
} }
} }

View file

@ -72,8 +72,7 @@
bb2: { bb2: {
StorageDead(_7); StorageDead(_7);
StorageDead(_6); StorageDead(_6);
- StorageLive(_8); StorageLive(_8);
+ nop;
_8 = &raw const (*_1); _8 = &raw const (*_1);
StorageLive(_9); StorageLive(_9);
StorageLive(_10); StorageLive(_10);
@ -93,8 +92,7 @@
bb4: { bb4: {
StorageDead(_12); StorageDead(_12);
StorageDead(_11); StorageDead(_11);
- StorageLive(_13); StorageLive(_13);
+ nop;
_13 = &raw mut (*_1); _13 = &raw mut (*_1);
StorageLive(_14); StorageLive(_14);
StorageLive(_15); StorageLive(_15);
@ -114,8 +112,7 @@
bb6: { bb6: {
StorageDead(_17); StorageDead(_17);
StorageDead(_16); StorageDead(_16);
- StorageLive(_18); StorageLive(_18);
+ nop;
_18 = &(*_1); _18 = &(*_1);
StorageLive(_19); StorageLive(_19);
- StorageLive(_20); - StorageLive(_20);
@ -191,12 +188,9 @@
StorageDead(_32); StorageDead(_32);
StorageDead(_31); StorageDead(_31);
_0 = const (); _0 = const ();
- StorageDead(_18); StorageDead(_18);
- StorageDead(_13); StorageDead(_13);
- StorageDead(_8); StorageDead(_8);
+ nop;
+ nop;
+ nop;
return; return;
} }
} }

View file

@ -72,8 +72,7 @@
bb2: { bb2: {
StorageDead(_7); StorageDead(_7);
StorageDead(_6); StorageDead(_6);
- StorageLive(_8); StorageLive(_8);
+ nop;
_8 = &raw const (*_1); _8 = &raw const (*_1);
StorageLive(_9); StorageLive(_9);
StorageLive(_10); StorageLive(_10);
@ -93,8 +92,7 @@
bb4: { bb4: {
StorageDead(_12); StorageDead(_12);
StorageDead(_11); StorageDead(_11);
- StorageLive(_13); StorageLive(_13);
+ nop;
_13 = &raw mut (*_1); _13 = &raw mut (*_1);
StorageLive(_14); StorageLive(_14);
StorageLive(_15); StorageLive(_15);
@ -114,8 +112,7 @@
bb6: { bb6: {
StorageDead(_17); StorageDead(_17);
StorageDead(_16); StorageDead(_16);
- StorageLive(_18); StorageLive(_18);
+ nop;
_18 = &(*_1); _18 = &(*_1);
StorageLive(_19); StorageLive(_19);
- StorageLive(_20); - StorageLive(_20);
@ -191,12 +188,9 @@
StorageDead(_32); StorageDead(_32);
StorageDead(_31); StorageDead(_31);
_0 = const (); _0 = const ();
- StorageDead(_18); StorageDead(_18);
- StorageDead(_13); StorageDead(_13);
- StorageDead(_8); StorageDead(_8);
+ nop;
+ nop;
+ nop;
return; return;
} }
} }

View file

@ -194,15 +194,13 @@
- _23 = move _21; - _23 = move _21;
+ _23 = const core::panicking::AssertKind::Eq; + _23 = const core::panicking::AssertKind::Eq;
StorageLive(_24); StorageLive(_24);
- StorageLive(_25); StorageLive(_25);
- _25 = &(*_15); - _25 = &(*_15);
+ nop;
+ _25 = &(*_9); + _25 = &(*_9);
_24 = &(*_25); _24 = &(*_25);
StorageLive(_26); StorageLive(_26);
- StorageLive(_27); StorageLive(_27);
- _27 = &(*_16); - _27 = &(*_16);
+ nop;
+ _27 = &(*_12); + _27 = &(*_12);
_26 = &(*_27); _26 = &(*_27);
StorageLive(_28); StorageLive(_28);
@ -293,15 +291,13 @@
- _49 = move _47; - _49 = move _47;
+ _49 = const core::panicking::AssertKind::Eq; + _49 = const core::panicking::AssertKind::Eq;
StorageLive(_50); StorageLive(_50);
- StorageLive(_51); StorageLive(_51);
- _51 = &(*_41); - _51 = &(*_41);
+ nop;
+ _51 = &(*_35); + _51 = &(*_35);
_50 = &(*_51); _50 = &(*_51);
StorageLive(_52); StorageLive(_52);
- StorageLive(_53); StorageLive(_53);
- _53 = &(*_42); - _53 = &(*_42);
+ nop;
+ _53 = &(*_38); + _53 = &(*_38);
_52 = &(*_53); _52 = &(*_53);
StorageLive(_54); StorageLive(_54);

View file

@ -194,15 +194,13 @@
- _23 = move _21; - _23 = move _21;
+ _23 = const core::panicking::AssertKind::Eq; + _23 = const core::panicking::AssertKind::Eq;
StorageLive(_24); StorageLive(_24);
- StorageLive(_25); StorageLive(_25);
- _25 = &(*_15); - _25 = &(*_15);
+ nop;
+ _25 = &(*_9); + _25 = &(*_9);
_24 = &(*_25); _24 = &(*_25);
StorageLive(_26); StorageLive(_26);
- StorageLive(_27); StorageLive(_27);
- _27 = &(*_16); - _27 = &(*_16);
+ nop;
+ _27 = &(*_12); + _27 = &(*_12);
_26 = &(*_27); _26 = &(*_27);
StorageLive(_28); StorageLive(_28);
@ -293,15 +291,13 @@
- _49 = move _47; - _49 = move _47;
+ _49 = const core::panicking::AssertKind::Eq; + _49 = const core::panicking::AssertKind::Eq;
StorageLive(_50); StorageLive(_50);
- StorageLive(_51); StorageLive(_51);
- _51 = &(*_41); - _51 = &(*_41);
+ nop;
+ _51 = &(*_35); + _51 = &(*_35);
_50 = &(*_51); _50 = &(*_51);
StorageLive(_52); StorageLive(_52);
- StorageLive(_53); StorageLive(_53);
- _53 = &(*_42); - _53 = &(*_42);
+ nop;
+ _53 = &(*_38); + _53 = &(*_38);
_52 = &(*_53); _52 = &(*_53);
StorageLive(_54); StorageLive(_54);

View file

@ -757,8 +757,7 @@
bb34: { bb34: {
StorageDead(_121); StorageDead(_121);
StorageDead(_120); StorageDead(_120);
- StorageLive(_126); StorageLive(_126);
+ nop;
_126 = &_3; _126 = &_3;
StorageLive(_127); StorageLive(_127);
- StorageLive(_128); - StorageLive(_128);
@ -799,8 +798,7 @@
bb36: { bb36: {
StorageDead(_132); StorageDead(_132);
StorageDead(_131); StorageDead(_131);
- StorageLive(_135); StorageLive(_135);
+ nop;
_135 = &mut _3; _135 = &mut _3;
StorageLive(_136); StorageLive(_136);
StorageLive(_137); StorageLive(_137);
@ -835,8 +833,7 @@
StorageDead(_141); StorageDead(_141);
StorageDead(_140); StorageDead(_140);
StorageLive(_144); StorageLive(_144);
- StorageLive(_145); StorageLive(_145);
+ nop;
_145 = &raw const _3; _145 = &raw const _3;
StorageLive(_146); StorageLive(_146);
StorageLive(_147); StorageLive(_147);
@ -870,8 +867,7 @@
bb40: { bb40: {
StorageDead(_151); StorageDead(_151);
StorageDead(_150); StorageDead(_150);
- StorageLive(_154); StorageLive(_154);
+ nop;
_154 = &raw mut _3; _154 = &raw mut _3;
StorageLive(_155); StorageLive(_155);
StorageLive(_156); StorageLive(_156);
@ -906,13 +902,10 @@
StorageDead(_160); StorageDead(_160);
StorageDead(_159); StorageDead(_159);
_144 = const (); _144 = const ();
- StorageDead(_154); StorageDead(_154);
- StorageDead(_145); StorageDead(_145);
+ nop;
+ nop;
StorageDead(_144); StorageDead(_144);
- StorageLive(_163); StorageLive(_163);
+ nop;
_163 = &_3; _163 = &_3;
StorageLive(_164); StorageLive(_164);
- StorageLive(_165); - StorageLive(_165);
@ -954,12 +947,9 @@
StorageDead(_169); StorageDead(_169);
StorageDead(_168); StorageDead(_168);
_0 = const (); _0 = const ();
- StorageDead(_163); StorageDead(_163);
- StorageDead(_135); StorageDead(_135);
- StorageDead(_126); StorageDead(_126);
+ nop;
+ nop;
+ nop;
return; return;
} }
} }

View file

@ -757,8 +757,7 @@
bb34: { bb34: {
StorageDead(_121); StorageDead(_121);
StorageDead(_120); StorageDead(_120);
- StorageLive(_126); StorageLive(_126);
+ nop;
_126 = &_3; _126 = &_3;
StorageLive(_127); StorageLive(_127);
- StorageLive(_128); - StorageLive(_128);
@ -799,8 +798,7 @@
bb36: { bb36: {
StorageDead(_132); StorageDead(_132);
StorageDead(_131); StorageDead(_131);
- StorageLive(_135); StorageLive(_135);
+ nop;
_135 = &mut _3; _135 = &mut _3;
StorageLive(_136); StorageLive(_136);
StorageLive(_137); StorageLive(_137);
@ -835,8 +833,7 @@
StorageDead(_141); StorageDead(_141);
StorageDead(_140); StorageDead(_140);
StorageLive(_144); StorageLive(_144);
- StorageLive(_145); StorageLive(_145);
+ nop;
_145 = &raw const _3; _145 = &raw const _3;
StorageLive(_146); StorageLive(_146);
StorageLive(_147); StorageLive(_147);
@ -870,8 +867,7 @@
bb40: { bb40: {
StorageDead(_151); StorageDead(_151);
StorageDead(_150); StorageDead(_150);
- StorageLive(_154); StorageLive(_154);
+ nop;
_154 = &raw mut _3; _154 = &raw mut _3;
StorageLive(_155); StorageLive(_155);
StorageLive(_156); StorageLive(_156);
@ -906,13 +902,10 @@
StorageDead(_160); StorageDead(_160);
StorageDead(_159); StorageDead(_159);
_144 = const (); _144 = const ();
- StorageDead(_154); StorageDead(_154);
- StorageDead(_145); StorageDead(_145);
+ nop;
+ nop;
StorageDead(_144); StorageDead(_144);
- StorageLive(_163); StorageLive(_163);
+ nop;
_163 = &_3; _163 = &_3;
StorageLive(_164); StorageLive(_164);
- StorageLive(_165); - StorageLive(_165);
@ -954,12 +947,9 @@
StorageDead(_169); StorageDead(_169);
StorageDead(_168); StorageDead(_168);
_0 = const (); _0 = const ();
- StorageDead(_163); StorageDead(_163);
- StorageDead(_135); StorageDead(_135);
- StorageDead(_126); StorageDead(_126);
+ nop;
+ nop;
+ nop;
return; return;
} }
} }

View file

@ -94,6 +94,8 @@ fn variant_a::{closure#0}(_1: &mut {closure@$DIR/slice_filter.rs:8:25: 8:39}, _2
StorageLive(_9); StorageLive(_9);
_9 = _6; _9 = _6;
_10 = &_9; _10 = &_9;
StorageLive(_11);
StorageLive(_12);
_11 = _4; _11 = _4;
_12 = _9; _12 = _9;
StorageLive(_13); StorageLive(_13);
@ -103,6 +105,8 @@ fn variant_a::{closure#0}(_1: &mut {closure@$DIR/slice_filter.rs:8:25: 8:39}, _2
_15 = Le(move _13, move _14); _15 = Le(move _13, move _14);
StorageDead(_14); StorageDead(_14);
StorageDead(_13); StorageDead(_13);
StorageDead(_12);
StorageDead(_11);
switchInt(move _15) -> [0: bb1, otherwise: bb2]; switchInt(move _15) -> [0: bb1, otherwise: bb2];
} }
@ -124,6 +128,8 @@ fn variant_a::{closure#0}(_1: &mut {closure@$DIR/slice_filter.rs:8:25: 8:39}, _2
StorageLive(_17); StorageLive(_17);
_17 = _5; _17 = _5;
_18 = &_17; _18 = &_17;
StorageLive(_19);
StorageLive(_20);
_19 = _7; _19 = _7;
_20 = _17; _20 = _17;
StorageLive(_21); StorageLive(_21);
@ -133,6 +139,8 @@ fn variant_a::{closure#0}(_1: &mut {closure@$DIR/slice_filter.rs:8:25: 8:39}, _2
_23 = Le(move _21, move _22); _23 = Le(move _21, move _22);
StorageDead(_22); StorageDead(_22);
StorageDead(_21); StorageDead(_21);
StorageDead(_20);
StorageDead(_19);
switchInt(move _23) -> [0: bb3, otherwise: bb8]; switchInt(move _23) -> [0: bb3, otherwise: bb8];
} }
@ -151,6 +159,8 @@ fn variant_a::{closure#0}(_1: &mut {closure@$DIR/slice_filter.rs:8:25: 8:39}, _2
StorageLive(_25); StorageLive(_25);
_25 = _4; _25 = _4;
_26 = &_25; _26 = &_25;
StorageLive(_27);
StorageLive(_28);
_27 = _6; _27 = _6;
_28 = _25; _28 = _25;
StorageLive(_29); StorageLive(_29);
@ -160,6 +170,8 @@ fn variant_a::{closure#0}(_1: &mut {closure@$DIR/slice_filter.rs:8:25: 8:39}, _2
_31 = Le(move _29, move _30); _31 = Le(move _29, move _30);
StorageDead(_30); StorageDead(_30);
StorageDead(_29); StorageDead(_29);
StorageDead(_28);
StorageDead(_27);
switchInt(move _31) -> [0: bb5, otherwise: bb6]; switchInt(move _31) -> [0: bb5, otherwise: bb6];
} }
@ -181,6 +193,8 @@ fn variant_a::{closure#0}(_1: &mut {closure@$DIR/slice_filter.rs:8:25: 8:39}, _2
StorageLive(_33); StorageLive(_33);
_33 = _7; _33 = _7;
_34 = &_33; _34 = &_33;
StorageLive(_35);
StorageLive(_36);
_35 = _5; _35 = _5;
_36 = _33; _36 = _33;
StorageLive(_37); StorageLive(_37);
@ -190,6 +204,8 @@ fn variant_a::{closure#0}(_1: &mut {closure@$DIR/slice_filter.rs:8:25: 8:39}, _2
_0 = Le(move _37, move _38); _0 = Le(move _37, move _38);
StorageDead(_38); StorageDead(_38);
StorageDead(_37); StorageDead(_37);
StorageDead(_36);
StorageDead(_35);
StorageDead(_33); StorageDead(_33);
StorageDead(_34); StorageDead(_34);
StorageDead(_32); StorageDead(_32);

View file

@ -50,6 +50,7 @@ fn slice_get_mut_usize(_1: &mut [u32], _2: usize) -> Option<&mut u32> {
} }
bb0: { bb0: {
StorageLive(_7);
StorageLive(_4); StorageLive(_4);
StorageLive(_3); StorageLive(_3);
_3 = Len((*_1)); _3 = Len((*_1));
@ -85,6 +86,7 @@ fn slice_get_mut_usize(_1: &mut [u32], _2: usize) -> Option<&mut u32> {
bb3: { bb3: {
StorageDead(_4); StorageDead(_4);
StorageDead(_7);
return; return;
} }
} }

View file

@ -50,6 +50,7 @@ fn slice_get_mut_usize(_1: &mut [u32], _2: usize) -> Option<&mut u32> {
} }
bb0: { bb0: {
StorageLive(_7);
StorageLive(_4); StorageLive(_4);
StorageLive(_3); StorageLive(_3);
_3 = Len((*_1)); _3 = Len((*_1));
@ -85,6 +86,7 @@ fn slice_get_mut_usize(_1: &mut [u32], _2: usize) -> Option<&mut u32> {
bb3: { bb3: {
StorageDead(_4); StorageDead(_4);
StorageDead(_7);
return; return;
} }
} }