| - // MIR for `flat` before ScalarReplacementOfAggregates |
| + // MIR for `flat` after ScalarReplacementOfAggregates |
| |
| fn flat() -> () { |
| let mut _0: (); // return place in scope 0 at $DIR/sroa.rs:+0:15: +0:15 |
| let _1: u8; // in scope 0 at $DIR/sroa.rs:+1:15: +1:16 |
| let _2: (); // in scope 0 at $DIR/sroa.rs:+1:18: +1:19 |
| let _3: &str; // in scope 0 at $DIR/sroa.rs:+1:21: +1:22 |
| let _4: std::option::Option<isize>; // in scope 0 at $DIR/sroa.rs:+1:24: +1:25 |
| let mut _5: Foo; // in scope 0 at $DIR/sroa.rs:+1:30: +1:70 |
| let mut _6: (); // in scope 0 at $DIR/sroa.rs:+1:45: +1:47 |
| let mut _7: std::option::Option<isize>; // in scope 0 at $DIR/sroa.rs:+1:60: +1:68 |
| + let mut _8: u8; // in scope 0 at $DIR/sroa.rs:+1:30: +1:70 |
| + let mut _9: (); // in scope 0 at $DIR/sroa.rs:+1:30: +1:70 |
| + let mut _10: &str; // in scope 0 at $DIR/sroa.rs:+1:30: +1:70 |
| + let mut _11: std::option::Option<isize>; // in scope 0 at $DIR/sroa.rs:+1:30: +1:70 |
| scope 1 { |
| debug a => _1; // in scope 1 at $DIR/sroa.rs:+1:15: +1:16 |
| debug b => _2; // in scope 1 at $DIR/sroa.rs:+1:18: +1:19 |
| debug c => _3; // in scope 1 at $DIR/sroa.rs:+1:21: +1:22 |
| debug d => _4; // in scope 1 at $DIR/sroa.rs:+1:24: +1:25 |
| scope 2 { |
| scope 3 { |
| scope 4 { |
| scope 5 { |
| } |
| } |
| } |
| } |
| } |
| |
| bb0: { |
| - StorageLive(_5); // scope 0 at $DIR/sroa.rs:+1:30: +1:70 |
| + StorageLive(_8); // scope 0 at $DIR/sroa.rs:+1:30: +1:70 |
| + StorageLive(_9); // scope 0 at $DIR/sroa.rs:+1:30: +1:70 |
| + StorageLive(_10); // scope 0 at $DIR/sroa.rs:+1:30: +1:70 |
| + StorageLive(_11); // scope 0 at $DIR/sroa.rs:+1:30: +1:70 |
| StorageLive(_6); // scope 0 at $DIR/sroa.rs:+1:45: +1:47 |
| Deinit(_6); // scope 0 at $DIR/sroa.rs:+1:45: +1:47 |
| StorageLive(_7); // scope 0 at $DIR/sroa.rs:+1:60: +1:68 |
| Deinit(_7); // scope 0 at $DIR/sroa.rs:+1:60: +1:68 |
| ((_7 as Some).0: isize) = const -4_isize; // scope 0 at $DIR/sroa.rs:+1:60: +1:68 |
| discriminant(_7) = 1; // scope 0 at $DIR/sroa.rs:+1:60: +1:68 |
| - Deinit(_5); // scope 0 at $DIR/sroa.rs:+1:30: +1:70 |
| - (_5.0: u8) = const 5_u8; // scope 0 at $DIR/sroa.rs:+1:30: +1:70 |
| - (_5.1: ()) = move _6; // scope 0 at $DIR/sroa.rs:+1:30: +1:70 |
| - (_5.2: &str) = const "a"; // scope 0 at $DIR/sroa.rs:+1:30: +1:70 |
| + Deinit(_8); // scope 0 at $DIR/sroa.rs:+1:30: +1:70 |
| + Deinit(_9); // scope 0 at $DIR/sroa.rs:+1:30: +1:70 |
| + Deinit(_10); // scope 0 at $DIR/sroa.rs:+1:30: +1:70 |
| + Deinit(_11); // scope 0 at $DIR/sroa.rs:+1:30: +1:70 |
| + _8 = const 5_u8; // scope 0 at $DIR/sroa.rs:+1:30: +1:70 |
| + _9 = move _6; // scope 0 at $DIR/sroa.rs:+1:30: +1:70 |
| + _10 = const "a"; // scope 0 at $DIR/sroa.rs:+1:30: +1:70 |
| // mir::Constant |
| // + span: $DIR/sroa.rs:57:52: 57:55 |
| // + literal: Const { ty: &str, val: Value(Slice(..)) } |
| - (_5.3: std::option::Option<isize>) = move _7; // scope 0 at $DIR/sroa.rs:+1:30: +1:70 |
| + _11 = move _7; // scope 0 at $DIR/sroa.rs:+1:30: +1:70 |
| StorageDead(_7); // scope 0 at $DIR/sroa.rs:+1:69: +1:70 |
| StorageDead(_6); // scope 0 at $DIR/sroa.rs:+1:69: +1:70 |
| StorageLive(_1); // scope 0 at $DIR/sroa.rs:+1:15: +1:16 |
| - _1 = (_5.0: u8); // scope 0 at $DIR/sroa.rs:+1:15: +1:16 |
| + _1 = _8; // scope 0 at $DIR/sroa.rs:+1:15: +1:16 |
| StorageLive(_2); // scope 0 at $DIR/sroa.rs:+1:18: +1:19 |
| - _2 = (_5.1: ()); // scope 0 at $DIR/sroa.rs:+1:18: +1:19 |
| + _2 = _9; // scope 0 at $DIR/sroa.rs:+1:18: +1:19 |
| StorageLive(_3); // scope 0 at $DIR/sroa.rs:+1:21: +1:22 |
| - _3 = (_5.2: &str); // scope 0 at $DIR/sroa.rs:+1:21: +1:22 |
| + _3 = _10; // scope 0 at $DIR/sroa.rs:+1:21: +1:22 |
| StorageLive(_4); // scope 0 at $DIR/sroa.rs:+1:24: +1:25 |
| - _4 = (_5.3: std::option::Option<isize>); // scope 0 at $DIR/sroa.rs:+1:24: +1:25 |
| - StorageDead(_5); // scope 0 at $DIR/sroa.rs:+1:70: +1:71 |
| + _4 = _11; // scope 0 at $DIR/sroa.rs:+1:24: +1:25 |
| + StorageDead(_8); // scope 0 at $DIR/sroa.rs:+1:70: +1:71 |
| + StorageDead(_9); // scope 0 at $DIR/sroa.rs:+1:70: +1:71 |
| + StorageDead(_10); // scope 0 at $DIR/sroa.rs:+1:70: +1:71 |
| + StorageDead(_11); // scope 0 at $DIR/sroa.rs:+1:70: +1:71 |
| _0 = const (); // scope 0 at $DIR/sroa.rs:+0:15: +6:2 |
| StorageDead(_4); // scope 0 at $DIR/sroa.rs:+6:1: +6:2 |
| StorageDead(_3); // scope 0 at $DIR/sroa.rs:+6:1: +6:2 |
| StorageDead(_2); // scope 0 at $DIR/sroa.rs:+6:1: +6:2 |
| StorageDead(_1); // scope 0 at $DIR/sroa.rs:+6:1: +6:2 |
| return; // scope 0 at $DIR/sroa.rs:+6:2: +6:2 |
| } |
| } |
| |