summary refs log tree commit diff
path: root/src/test/mir-opt/funky_arms.float_to_exponential_common.ConstProp.diff
blob: caa02abf019365dd93afd67ed335ae0ed63b03be (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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
- // MIR for `float_to_exponential_common` before ConstProp
+ // MIR for `float_to_exponential_common` after ConstProp
  
  fn float_to_exponential_common(_1: &mut Formatter, _2: &T, _3: bool) -> Result<(), std::fmt::Error> {
      debug fmt => _1;                     // in scope 0 at $DIR/funky_arms.rs:11:35: 11:38
      debug num => _2;                     // in scope 0 at $DIR/funky_arms.rs:11:60: 11:63
      debug upper => _3;                   // in scope 0 at $DIR/funky_arms.rs:11:69: 11:74
      let mut _0: std::result::Result<(), std::fmt::Error>; // return place in scope 0 at $DIR/funky_arms.rs:11:85: 11:91
      let _4: bool;                        // in scope 0 at $DIR/funky_arms.rs:15:9: 15:19
      let mut _5: &std::fmt::Formatter;    // in scope 0 at $DIR/funky_arms.rs:15:22: 15:25
      let mut _7: std::option::Option<usize>; // in scope 0 at $DIR/funky_arms.rs:24:30: 24:45
      let mut _8: &std::fmt::Formatter;    // in scope 0 at $DIR/funky_arms.rs:24:30: 24:33
      let mut _9: isize;                   // in scope 0 at $DIR/funky_arms.rs:24:12: 24:27
      let mut _11: &mut std::fmt::Formatter; // in scope 0 at $DIR/funky_arms.rs:26:43: 26:46
      let mut _12: &T;                     // in scope 0 at $DIR/funky_arms.rs:26:48: 26:51
      let mut _13: core::num::flt2dec::Sign; // in scope 0 at $DIR/funky_arms.rs:26:53: 26:57
      let mut _14: u32;                    // in scope 0 at $DIR/funky_arms.rs:26:59: 26:79
      let mut _15: u32;                    // in scope 0 at $DIR/funky_arms.rs:26:59: 26:75
      let mut _16: usize;                  // in scope 0 at $DIR/funky_arms.rs:26:59: 26:68
      let mut _17: bool;                   // in scope 0 at $DIR/funky_arms.rs:26:81: 26:86
      let mut _18: &mut std::fmt::Formatter; // in scope 0 at $DIR/funky_arms.rs:28:46: 28:49
      let mut _19: &T;                     // in scope 0 at $DIR/funky_arms.rs:28:51: 28:54
      let mut _20: core::num::flt2dec::Sign; // in scope 0 at $DIR/funky_arms.rs:28:56: 28:60
      let mut _21: bool;                   // in scope 0 at $DIR/funky_arms.rs:28:62: 28:67
      scope 1 {
          debug force_sign => _4;          // in scope 1 at $DIR/funky_arms.rs:15:9: 15:19
          let _6: core::num::flt2dec::Sign; // in scope 1 at $DIR/funky_arms.rs:19:9: 19:13
          scope 2 {
              debug sign => _6;            // in scope 2 at $DIR/funky_arms.rs:19:9: 19:13
              let _10: usize;              // in scope 2 at $DIR/funky_arms.rs:24:17: 24:26
              scope 3 {
                  debug precision => _10;  // in scope 3 at $DIR/funky_arms.rs:24:17: 24:26
              }
          }
      }
  
      bb0: {
          StorageLive(_4);                 // scope 0 at $DIR/funky_arms.rs:15:9: 15:19
          StorageLive(_5);                 // scope 0 at $DIR/funky_arms.rs:15:22: 15:25
          _5 = &(*_1);                     // scope 0 at $DIR/funky_arms.rs:15:22: 15:25
          _4 = Formatter::sign_plus(move _5) -> bb1; // scope 0 at $DIR/funky_arms.rs:15:22: 15:37
                                           // mir::Constant
                                           // + span: $DIR/funky_arms.rs:15:26: 15:35
                                           // + literal: Const { ty: for<'r> fn(&'r std::fmt::Formatter) -> bool {std::fmt::Formatter::sign_plus}, val: Value(Scalar(<ZST>)) }
      }
  
      bb1: {
          StorageDead(_5);                 // scope 0 at $DIR/funky_arms.rs:15:36: 15:37
          StorageLive(_6);                 // scope 1 at $DIR/funky_arms.rs:19:9: 19:13
          switchInt(_4) -> [false: bb3, otherwise: bb2]; // scope 1 at $DIR/funky_arms.rs:20:9: 20:14
      }
  
      bb2: {
          discriminant(_6) = 2;            // scope 1 at $DIR/funky_arms.rs:21:17: 21:41
          goto -> bb4;                     // scope 1 at $DIR/funky_arms.rs:19:16: 22:6
      }
  
      bb3: {
          discriminant(_6) = 0;            // scope 1 at $DIR/funky_arms.rs:20:18: 20:38
          goto -> bb4;                     // scope 1 at $DIR/funky_arms.rs:19:16: 22:6
      }
  
      bb4: {
          StorageLive(_7);                 // scope 2 at $DIR/funky_arms.rs:24:30: 24:45
          StorageLive(_8);                 // scope 2 at $DIR/funky_arms.rs:24:30: 24:33
          _8 = &(*_1);                     // scope 2 at $DIR/funky_arms.rs:24:30: 24:33
          _7 = Formatter::precision(move _8) -> bb5; // scope 2 at $DIR/funky_arms.rs:24:30: 24:45
                                           // mir::Constant
                                           // + span: $DIR/funky_arms.rs:24:34: 24:43
                                           // + literal: Const { ty: for<'r> fn(&'r std::fmt::Formatter) -> std::option::Option<usize> {std::fmt::Formatter::precision}, val: Value(Scalar(<ZST>)) }
      }
  
      bb5: {
          StorageDead(_8);                 // scope 2 at $DIR/funky_arms.rs:24:44: 24:45
          _9 = discriminant(_7);           // scope 2 at $DIR/funky_arms.rs:24:12: 24:27
          switchInt(move _9) -> [1_isize: bb7, otherwise: bb6]; // scope 2 at $DIR/funky_arms.rs:24:12: 24:27
      }
  
      bb6: {
          StorageLive(_18);                // scope 2 at $DIR/funky_arms.rs:28:46: 28:49
          _18 = &mut (*_1);                // scope 2 at $DIR/funky_arms.rs:28:46: 28:49
          StorageLive(_19);                // scope 2 at $DIR/funky_arms.rs:28:51: 28:54
          _19 = _2;                        // scope 2 at $DIR/funky_arms.rs:28:51: 28:54
          StorageLive(_20);                // scope 2 at $DIR/funky_arms.rs:28:56: 28:60
          _20 = _6;                        // scope 2 at $DIR/funky_arms.rs:28:56: 28:60
          StorageLive(_21);                // scope 2 at $DIR/funky_arms.rs:28:62: 28:67
          _21 = _3;                        // scope 2 at $DIR/funky_arms.rs:28:62: 28:67
          _0 = float_to_exponential_common_shortest::<T>(move _18, move _19, move _20, move _21) -> bb9; // scope 2 at $DIR/funky_arms.rs:28:9: 28:68
                                           // mir::Constant
                                           // + span: $DIR/funky_arms.rs:28:9: 28:45
                                           // + literal: Const { ty: for<'r, 's, 't0> fn(&'r mut std::fmt::Formatter<'s>, &'t0 T, core::num::flt2dec::Sign, bool) -> std::result::Result<(), std::fmt::Error> {float_to_exponential_common_shortest::<T>}, val: Value(Scalar(<ZST>)) }
      }
  
      bb7: {
          StorageLive(_10);                // scope 2 at $DIR/funky_arms.rs:24:17: 24:26
          _10 = ((_7 as Some).0: usize);   // scope 2 at $DIR/funky_arms.rs:24:17: 24:26
          StorageLive(_11);                // scope 3 at $DIR/funky_arms.rs:26:43: 26:46
          _11 = &mut (*_1);                // scope 3 at $DIR/funky_arms.rs:26:43: 26:46
          StorageLive(_12);                // scope 3 at $DIR/funky_arms.rs:26:48: 26:51
          _12 = _2;                        // scope 3 at $DIR/funky_arms.rs:26:48: 26:51
          StorageLive(_13);                // scope 3 at $DIR/funky_arms.rs:26:53: 26:57
          _13 = _6;                        // scope 3 at $DIR/funky_arms.rs:26:53: 26:57
          StorageLive(_14);                // scope 3 at $DIR/funky_arms.rs:26:59: 26:79
          StorageLive(_15);                // scope 3 at $DIR/funky_arms.rs:26:59: 26:75
          StorageLive(_16);                // scope 3 at $DIR/funky_arms.rs:26:59: 26:68
          _16 = _10;                       // scope 3 at $DIR/funky_arms.rs:26:59: 26:68
          _15 = move _16 as u32 (Misc);    // scope 3 at $DIR/funky_arms.rs:26:59: 26:75
          StorageDead(_16);                // scope 3 at $DIR/funky_arms.rs:26:74: 26:75
          _14 = Add(move _15, const 1_u32); // scope 3 at $DIR/funky_arms.rs:26:59: 26:79
          StorageDead(_15);                // scope 3 at $DIR/funky_arms.rs:26:78: 26:79
          StorageLive(_17);                // scope 3 at $DIR/funky_arms.rs:26:81: 26:86
          _17 = _3;                        // scope 3 at $DIR/funky_arms.rs:26:81: 26:86
          _0 = float_to_exponential_common_exact::<T>(move _11, move _12, move _13, move _14, move _17) -> bb8; // scope 3 at $DIR/funky_arms.rs:26:9: 26:87
                                           // mir::Constant
                                           // + span: $DIR/funky_arms.rs:26:9: 26:42
                                           // + literal: Const { ty: for<'r, 's, 't0> fn(&'r mut std::fmt::Formatter<'s>, &'t0 T, core::num::flt2dec::Sign, u32, bool) -> std::result::Result<(), std::fmt::Error> {float_to_exponential_common_exact::<T>}, val: Value(Scalar(<ZST>)) }
      }
  
      bb8: {
          StorageDead(_17);                // scope 3 at $DIR/funky_arms.rs:26:86: 26:87
          StorageDead(_14);                // scope 3 at $DIR/funky_arms.rs:26:86: 26:87
          StorageDead(_13);                // scope 3 at $DIR/funky_arms.rs:26:86: 26:87
          StorageDead(_12);                // scope 3 at $DIR/funky_arms.rs:26:86: 26:87
          StorageDead(_11);                // scope 3 at $DIR/funky_arms.rs:26:86: 26:87
          StorageDead(_10);                // scope 2 at $DIR/funky_arms.rs:27:5: 27:6
          goto -> bb10;                    // scope 2 at $DIR/funky_arms.rs:24:5: 29:6
      }
  
      bb9: {
          StorageDead(_21);                // scope 2 at $DIR/funky_arms.rs:28:67: 28:68
          StorageDead(_20);                // scope 2 at $DIR/funky_arms.rs:28:67: 28:68
          StorageDead(_19);                // scope 2 at $DIR/funky_arms.rs:28:67: 28:68
          StorageDead(_18);                // scope 2 at $DIR/funky_arms.rs:28:67: 28:68
          goto -> bb10;                    // scope 2 at $DIR/funky_arms.rs:24:5: 29:6
      }
  
      bb10: {
          StorageDead(_6);                 // scope 1 at $DIR/funky_arms.rs:30:1: 30:2
          StorageDead(_4);                 // scope 0 at $DIR/funky_arms.rs:30:1: 30:2
          StorageDead(_7);                 // scope 0 at $DIR/funky_arms.rs:30:1: 30:2
          return;                          // scope 0 at $DIR/funky_arms.rs:30:2: 30:2
      }
  }