Rollup merge of #127164 - Nadrieril:clean-lowering-loop, r=matthewjasper · rust-lang/rust@58fe37f (original) (raw)

`@@ -38,65 +38,61 @@ fn main() -> () {

`

38

38

`StorageLive(_2);

`

39

39

`_2 = Option::::Some(const 1_i32);

`

40

40

`PlaceMention(_2);

`

41

``

`-

_5 = discriminant(_2);

`

42

``

`-

switchInt(move _5) -> [1: bb8, otherwise: bb2];

`

``

41

`+

_4 = discriminant(_2);

`

``

42

`+

switchInt(move _4) -> [1: bb2, otherwise: bb1];

`

43

43

`}

`

44

44

``

45

45

`bb1: {

`

46

``

`-

FakeRead(ForMatchedPlace(None), _2);

`

47

``

`-

unreachable;

`

``

46

`+

falseEdge -> [real: bb14, imaginary: bb4];

`

48

47

`}

`

49

48

``

50

49

`bb2: {

`

51

``

`-

falseEdge -> [real: bb15, imaginary: bb3];

`

``

50

`+

falseEdge -> [real: bb9, imaginary: bb1];

`

52

51

`}

`

53

52

``

54

53

`bb3: {

`

55

``

`-

_4 = discriminant(_2);

`

56

``

`-

switchInt(move _4) -> [1: bb6, otherwise: bb4];

`

``

54

`+

goto -> bb1;

`

57

55

`}

`

58

56

``

59

57

`bb4: {

`

``

58

`+

_5 = discriminant(_2);

`

``

59

`+

switchInt(move _5) -> [1: bb6, otherwise: bb5];

`

``

60

`+

}

`

``

61

+

``

62

`+

bb5: {

`

60

63

`StorageLive(_14);

`

61

64

`_14 = _2;

`

62

65

`_1 = const 4_i32;

`

63

66

`StorageDead(_14);

`

64

``

`-

goto -> bb21;

`

65

``

`-

}

`

66

``

-

67

``

`-

bb5: {

`

68

``

`-

goto -> bb1;

`

``

67

`+

goto -> bb20;

`

69

68

`}

`

70

69

``

71

70

`bb6: {

`

72

``

`-

falseEdge -> [real: bb16, imaginary: bb4];

`

``

71

`+

falseEdge -> [real: bb15, imaginary: bb5];

`

73

72

`}

`

74

73

``

75

74

`bb7: {

`

76

``

`-

goto -> bb4;

`

``

75

`+

goto -> bb5;

`

77

76

`}

`

78

77

``

79

78

`bb8: {

`

80

``

`-

falseEdge -> [real: bb10, imaginary: bb2];

`

``

79

`+

FakeRead(ForMatchedPlace(None), _2);

`

``

80

`+

unreachable;

`

81

81

`}

`

82

82

``

83

83

`bb9: {

`

84

``

`-

goto -> bb2;

`

85

``

`-

}

`

86

``

-

87

``

`-

bb10: {

`

88

84

`StorageLive(_7);

`

89

85

`_7 = &((_2 as Some).0: i32);

`

90

86

`_3 = &fake shallow _2;

`

91

87

`StorageLive(_8);

`

92

``

`-

_8 = guard() -> [return: bb11, unwind: bb24];

`

``

88

`+

_8 = guard() -> [return: bb10, unwind: bb22];

`

93

89

`}

`

94

90

``

95

``

`-

bb11: {

`

96

``

`-

switchInt(move _8) -> [0: bb13, otherwise: bb12];

`

``

91

`+

bb10: {

`

``

92

`+

switchInt(move _8) -> [0: bb12, otherwise: bb11];

`

97

93

`}

`

98

94

``

99

``

`-

bb12: {

`

``

95

`+

bb11: {

`

100

96

`StorageDead(_8);

`

101

97

`FakeRead(ForMatchGuard, _3);

`

102

98

`FakeRead(ForGuardBinding, _7);

`

`@@ -105,42 +101,42 @@ fn main() -> () {

`

105

101

`_1 = const 1_i32;

`

106

102

`StorageDead(_6);

`

107

103

`StorageDead(_7);

`

108

``

`-

goto -> bb21;

`

``

104

`+

goto -> bb20;

`

109

105

`}

`

110

106

``

111

``

`-

bb13: {

`

112

``

`-

goto -> bb14;

`

``

107

`+

bb12: {

`

``

108

`+

goto -> bb13;

`

113

109

`}

`

114

110

``

115

``

`-

bb14: {

`

``

111

`+

bb13: {

`

116

112

`StorageDead(_8);

`

117

113

`StorageDead(_7);

`

118

``

`-

falseEdge -> [real: bb9, imaginary: bb2];

`

``

114

`+

falseEdge -> [real: bb3, imaginary: bb1];

`

119

115

`}

`

120

116

``

121

``

`-

bb15: {

`

``

117

`+

bb14: {

`

122

118

`StorageLive(_9);

`

123

119

`_9 = _2;

`

124

120

`_1 = const 2_i32;

`

125

121

`StorageDead(_9);

`

126

``

`-

goto -> bb21;

`

``

122

`+

goto -> bb20;

`

127

123

`}

`

128

124

``

129

``

`-

bb16: {

`

``

125

`+

bb15: {

`

130

126

`StorageLive(_11);

`

131

127

`_11 = &((_2 as Some).0: i32);

`

132

128

`_3 = &fake shallow _2;

`

133

129

`StorageLive(_12);

`

134

130

`StorageLive(_13);

`

135

131

`_13 = (*_11);

`

136

``

`-

_12 = guard2(move _13) -> [return: bb17, unwind: bb24];

`

``

132

`+

_12 = guard2(move _13) -> [return: bb16, unwind: bb22];

`

137

133

`}

`

138

134

``

139

``

`-

bb17: {

`

140

``

`-

switchInt(move _12) -> [0: bb19, otherwise: bb18];

`

``

135

`+

bb16: {

`

``

136

`+

switchInt(move _12) -> [0: bb18, otherwise: bb17];

`

141

137

`}

`

142

138

``

143

``

`-

bb18: {

`

``

139

`+

bb17: {

`

144

140

`StorageDead(_13);

`

145

141

`StorageDead(_12);

`

146

142

`FakeRead(ForMatchGuard, _3);

`

`@@ -150,38 +146,34 @@ fn main() -> () {

`

150

146

`_1 = const 3_i32;

`

151

147

`StorageDead(_10);

`

152

148

`StorageDead(_11);

`

153

``

`-

goto -> bb21;

`

``

149

`+

goto -> bb20;

`

154

150

`}

`

155

151

``

156

``

`-

bb19: {

`

157

``

`-

goto -> bb20;

`

``

152

`+

bb18: {

`

``

153

`+

goto -> bb19;

`

158

154

`}

`

159

155

``

160

``

`-

bb20: {

`

``

156

`+

bb19: {

`

161

157

`StorageDead(_13);

`

162

158

`StorageDead(_12);

`

163

159

`StorageDead(_11);

`

164

``

`-

falseEdge -> [real: bb7, imaginary: bb4];

`

``

160

`+

falseEdge -> [real: bb7, imaginary: bb5];

`

165

161

`}

`

166

162

``

167

``

`-

bb21: {

`

``

163

`+

bb20: {

`

168

164

`PlaceMention(_1);

`

169

165

`StorageDead(_2);

`

170

166

`StorageDead(_1);

`

171

167

`_0 = const ();

`

172

168

`return;

`

173

169

`}

`

174

170

``

175

``

`-

bb22: {

`

``

171

`+

bb21: {

`

176

172

`FakeRead(ForMatchedPlace(None), _1);

`

177

173

`unreachable;

`

178

174

`}

`

179

175

``

180

``

`-

bb23: {

`

181

``

`-

goto -> bb22;

`

182

``

`-

}

`

183

``

-

184

``

`-

bb24 (cleanup): {

`

``

176

`+

bb22 (cleanup): {

`

185

177

`resume;

`

186

178

`}

`

187

179

`}

`