summaryrefslogtreecommitdiffstats
path: root/src/test/mir-opt/inline/inline_retag.bar.Inline.after.mir
blob: 169e7f5c5d9360f3c288a80f81b494791faab1db (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
// MIR for `bar` after Inline

fn bar() -> bool {
    let mut _0: bool;                    // return place in scope 0 at $DIR/inline-retag.rs:+0:13: +0:17
    let _1: for<'a, 'b> fn(&'a i32, &'b i32) -> bool {foo}; // in scope 0 at $DIR/inline-retag.rs:+1:9: +1:10
    let mut _2: for<'a, 'b> fn(&'a i32, &'b i32) -> bool {foo}; // in scope 0 at $DIR/inline-retag.rs:+2:5: +2:6
    let mut _3: &i32;                    // in scope 0 at $DIR/inline-retag.rs:+2:7: +2:9
    let _4: &i32;                        // in scope 0 at $DIR/inline-retag.rs:+2:7: +2:9
    let _5: i32;                         // in scope 0 at $DIR/inline-retag.rs:+2:8: +2:9
    let mut _6: &i32;                    // in scope 0 at $DIR/inline-retag.rs:+2:11: +2:14
    let _7: &i32;                        // in scope 0 at $DIR/inline-retag.rs:+2:11: +2:14
    let _8: i32;                         // in scope 0 at $DIR/inline-retag.rs:+2:12: +2:14
    scope 1 {
        debug f => _1;                   // in scope 1 at $DIR/inline-retag.rs:+1:9: +1:10
        let mut _9: &i32;                // in scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
        let mut _10: &i32;               // in scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
        scope 2 (inlined foo) {          // at $DIR/inline-retag.rs:12:5: 12:15
            debug x => _3;               // in scope 2 at $DIR/inline-retag.rs:16:8: 16:9
            debug y => _6;               // in scope 2 at $DIR/inline-retag.rs:16:17: 16:18
            let mut _11: i32;            // in scope 2 at $DIR/inline-retag.rs:17:5: 17:7
            let mut _12: i32;            // in scope 2 at $DIR/inline-retag.rs:17:11: 17:13
        }
    }

    bb0: {
        StorageLive(_1);                 // scope 0 at $DIR/inline-retag.rs:+1:9: +1:10
        _1 = foo;                        // scope 0 at $DIR/inline-retag.rs:+1:13: +1:16
                                         // mir::Constant
                                         // + span: $DIR/inline-retag.rs:11:13: 11:16
                                         // + literal: Const { ty: for<'a, 'b> fn(&'a i32, &'b i32) -> bool {foo}, val: Value(<ZST>) }
        StorageLive(_2);                 // scope 1 at $DIR/inline-retag.rs:+2:5: +2:6
        _2 = _1;                         // scope 1 at $DIR/inline-retag.rs:+2:5: +2:6
        StorageLive(_3);                 // scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
        StorageLive(_4);                 // scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
        _10 = const _;                   // scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
                                         // mir::Constant
                                         // + span: $DIR/inline-retag.rs:12:7: 12:9
                                         // + literal: Const { ty: &i32, val: Unevaluated(bar, [], Some(promoted[1])) }
        Retag(_10);                      // scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
        _4 = &(*_10);                    // scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
        Retag(_4);                       // scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
        _3 = &(*_4);                     // scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
        Retag(_3);                       // scope 1 at $DIR/inline-retag.rs:+2:7: +2:9
        StorageLive(_6);                 // scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
        StorageLive(_7);                 // scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
        _9 = const _;                    // scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
                                         // mir::Constant
                                         // + span: $DIR/inline-retag.rs:12:11: 12:14
                                         // + literal: Const { ty: &i32, val: Unevaluated(bar, [], Some(promoted[0])) }
        Retag(_9);                       // scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
        _7 = &(*_9);                     // scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
        Retag(_7);                       // scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
        _6 = &(*_7);                     // scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
        Retag(_6);                       // scope 1 at $DIR/inline-retag.rs:+2:11: +2:14
        Retag(_3);                       // scope 2 at $DIR/inline-retag.rs:16:8: 16:9
        Retag(_6);                       // scope 2 at $DIR/inline-retag.rs:16:17: 16:18
        StorageLive(_11);                // scope 2 at $DIR/inline-retag.rs:17:5: 17:7
        _11 = (*_3);                     // scope 2 at $DIR/inline-retag.rs:17:5: 17:7
        StorageLive(_12);                // scope 2 at $DIR/inline-retag.rs:17:11: 17:13
        _12 = (*_6);                     // scope 2 at $DIR/inline-retag.rs:17:11: 17:13
        _0 = Eq(move _11, move _12);     // scope 2 at $DIR/inline-retag.rs:17:5: 17:13
        StorageDead(_12);                // scope 2 at $DIR/inline-retag.rs:17:12: 17:13
        StorageDead(_11);                // scope 2 at $DIR/inline-retag.rs:17:12: 17:13
        StorageDead(_6);                 // scope 1 at $DIR/inline-retag.rs:+2:14: +2:15
        StorageDead(_3);                 // scope 1 at $DIR/inline-retag.rs:+2:14: +2:15
        StorageDead(_2);                 // scope 1 at $DIR/inline-retag.rs:+2:14: +2:15
        StorageDead(_1);                 // scope 0 at $DIR/inline-retag.rs:+3:1: +3:2
        StorageDead(_7);                 // scope 0 at $DIR/inline-retag.rs:+3:1: +3:2
        StorageDead(_4);                 // scope 0 at $DIR/inline-retag.rs:+3:1: +3:2
        return;                          // scope 0 at $DIR/inline-retag.rs:+3:2: +3:2
    }
}