]> git.lizzy.rs Git - rust.git/blob - src/test/mir-opt/sroa.dropping.ScalarReplacementOfAggregates.diff
Flatten aggregates into locals.
[rust.git] / src / test / mir-opt / sroa.dropping.ScalarReplacementOfAggregates.diff
1 - // MIR for `dropping` before ScalarReplacementOfAggregates
2 + // MIR for `dropping` after ScalarReplacementOfAggregates
3   
4   fn dropping() -> () {
5       let mut _0: ();                      // return place in scope 0 at $DIR/sroa.rs:+0:19: +0:19
6       let _1: Tag;                         // in scope 0 at $DIR/sroa.rs:+1:5: +1:32
7       let mut _2: S;                       // in scope 0 at $DIR/sroa.rs:+1:5: +1:30
8       let mut _3: Tag;                     // in scope 0 at $DIR/sroa.rs:+1:7: +1:13
9       let mut _4: Tag;                     // in scope 0 at $DIR/sroa.rs:+1:15: +1:21
10       let mut _5: Tag;                     // in scope 0 at $DIR/sroa.rs:+1:23: +1:29
11   
12       bb0: {
13           StorageLive(_1);                 // scope 0 at $DIR/sroa.rs:+1:5: +1:32
14           StorageLive(_2);                 // scope 0 at $DIR/sroa.rs:+1:5: +1:30
15           StorageLive(_3);                 // scope 0 at $DIR/sroa.rs:+1:7: +1:13
16           Deinit(_3);                      // scope 0 at $DIR/sroa.rs:+1:7: +1:13
17           (_3.0: usize) = const 0_usize;   // scope 0 at $DIR/sroa.rs:+1:7: +1:13
18           StorageLive(_4);                 // scope 0 at $DIR/sroa.rs:+1:15: +1:21
19           Deinit(_4);                      // scope 0 at $DIR/sroa.rs:+1:15: +1:21
20           (_4.0: usize) = const 1_usize;   // scope 0 at $DIR/sroa.rs:+1:15: +1:21
21           StorageLive(_5);                 // scope 0 at $DIR/sroa.rs:+1:23: +1:29
22           Deinit(_5);                      // scope 0 at $DIR/sroa.rs:+1:23: +1:29
23           (_5.0: usize) = const 2_usize;   // scope 0 at $DIR/sroa.rs:+1:23: +1:29
24           Deinit(_2);                      // scope 0 at $DIR/sroa.rs:+1:5: +1:30
25           (_2.0: Tag) = move _3;           // scope 0 at $DIR/sroa.rs:+1:5: +1:30
26           (_2.1: Tag) = move _4;           // scope 0 at $DIR/sroa.rs:+1:5: +1:30
27           (_2.2: Tag) = move _5;           // scope 0 at $DIR/sroa.rs:+1:5: +1:30
28           StorageDead(_5);                 // scope 0 at $DIR/sroa.rs:+1:29: +1:30
29           StorageDead(_4);                 // scope 0 at $DIR/sroa.rs:+1:29: +1:30
30           StorageDead(_3);                 // scope 0 at $DIR/sroa.rs:+1:29: +1:30
31           _1 = move (_2.1: Tag);           // scope 0 at $DIR/sroa.rs:+1:5: +1:32
32           drop(_1) -> [return: bb1, unwind: bb2]; // scope 0 at $DIR/sroa.rs:+1:32: +1:33
33       }
34   
35       bb1: {
36           drop((_2.0: Tag)) -> [return: bb6, unwind: bb5]; // scope 0 at $DIR/sroa.rs:+1:32: +1:33
37       }
38   
39       bb2 (cleanup): {
40           drop((_2.0: Tag)) -> bb7;        // scope 0 at $DIR/sroa.rs:+1:32: +1:33
41       }
42   
43       bb3 (cleanup): {
44           resume;                          // scope 0 at $DIR/sroa.rs:+0:1: +2:2
45       }
46   
47       bb4: {
48           StorageDead(_2);                 // scope 0 at $DIR/sroa.rs:+1:32: +1:33
49           StorageDead(_1);                 // scope 0 at $DIR/sroa.rs:+1:32: +1:33
50           _0 = const ();                   // scope 0 at $DIR/sroa.rs:+0:19: +2:2
51           return;                          // scope 0 at $DIR/sroa.rs:+2:2: +2:2
52       }
53   
54       bb5 (cleanup): {
55           drop((_2.2: Tag)) -> bb3;        // scope 0 at $DIR/sroa.rs:+1:32: +1:33
56       }
57   
58       bb6: {
59           drop((_2.2: Tag)) -> [return: bb4, unwind: bb3]; // scope 0 at $DIR/sroa.rs:+1:32: +1:33
60       }
61   
62       bb7 (cleanup): {
63           drop((_2.2: Tag)) -> bb3;        // scope 0 at $DIR/sroa.rs:+1:32: +1:33
64       }
65   }
66