Skip to content

Commit ed91d44

Browse files
Auto merge of #143333 - cjgillot:local-value-numbering, r=<try>
[TOY] Extend GVN to perform local value numbering.
2 parents 7e4b8d7 + aa12f6a commit ed91d44

30 files changed

+682
-443
lines changed

compiler/rustc_mir_transform/src/gvn.rs

Lines changed: 355 additions & 236 deletions
Large diffs are not rendered by default.

compiler/rustc_mir_transform/src/ssa.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,19 +99,23 @@ impl SsaLocals {
9999
ssa
100100
}
101101

102+
#[inline]
102103
pub(super) fn num_locals(&self) -> usize {
103104
self.assignments.len()
104105
}
105106

107+
#[inline]
106108
pub(super) fn locals(&self) -> impl Iterator<Item = Local> {
107109
self.assignments.indices()
108110
}
109111

112+
#[inline]
110113
pub(super) fn is_ssa(&self, local: Local) -> bool {
111114
matches!(self.assignments[local], Set1::One(_))
112115
}
113116

114117
/// Return the number of uses if a local that are not "Deref".
118+
#[inline]
115119
pub(super) fn num_direct_uses(&self, local: Local) -> u32 {
116120
self.direct_uses[local]
117121
}

tests/coverage/closure.cov-map

Lines changed: 26 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -74,24 +74,22 @@ Number of file 0 mappings: 66
7474
- Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
7575
Highest counter ID seen: c1
7676

77-
Function name: closure::main::{closure#0}
78-
Raw bytes (51): 0x[01, 01, 01, 01, 05, 09, 01, 28, 05, 00, 06, 01, 01, 0d, 00, 1a, 01, 00, 1d, 00, 1e, 01, 01, 0c, 00, 14, 05, 00, 15, 02, 0a, 02, 02, 09, 00, 0a, 01, 01, 09, 00, 17, 01, 00, 18, 00, 20, 01, 01, 05, 00, 06]
77+
Function name: closure::main::{closure#0} (unused)
78+
Raw bytes (49): 0x[01, 01, 00, 09, 00, 28, 05, 00, 06, 00, 01, 0d, 00, 1a, 00, 00, 1d, 00, 1e, 00, 01, 0c, 00, 14, 00, 00, 15, 02, 0a, 00, 02, 09, 00, 0a, 00, 01, 09, 00, 17, 00, 00, 18, 00, 20, 00, 01, 05, 00, 06]
7979
Number of files: 1
8080
- file 0 => $DIR/closure.rs
81-
Number of expressions: 1
82-
- expression 0 operands: lhs = Counter(0), rhs = Counter(1)
81+
Number of expressions: 0
8382
Number of file 0 mappings: 9
84-
- Code(Counter(0)) at (prev + 40, 5) to (start + 0, 6)
85-
- Code(Counter(0)) at (prev + 1, 13) to (start + 0, 26)
86-
- Code(Counter(0)) at (prev + 0, 29) to (start + 0, 30)
87-
- Code(Counter(0)) at (prev + 1, 12) to (start + 0, 20)
88-
- Code(Counter(1)) at (prev + 0, 21) to (start + 2, 10)
89-
- Code(Expression(0, Sub)) at (prev + 2, 9) to (start + 0, 10)
90-
= (c0 - c1)
91-
- Code(Counter(0)) at (prev + 1, 9) to (start + 0, 23)
92-
- Code(Counter(0)) at (prev + 0, 24) to (start + 0, 32)
93-
- Code(Counter(0)) at (prev + 1, 5) to (start + 0, 6)
94-
Highest counter ID seen: c1
83+
- Code(Zero) at (prev + 40, 5) to (start + 0, 6)
84+
- Code(Zero) at (prev + 1, 13) to (start + 0, 26)
85+
- Code(Zero) at (prev + 0, 29) to (start + 0, 30)
86+
- Code(Zero) at (prev + 1, 12) to (start + 0, 20)
87+
- Code(Zero) at (prev + 0, 21) to (start + 2, 10)
88+
- Code(Zero) at (prev + 2, 9) to (start + 0, 10)
89+
- Code(Zero) at (prev + 1, 9) to (start + 0, 23)
90+
- Code(Zero) at (prev + 0, 24) to (start + 0, 32)
91+
- Code(Zero) at (prev + 1, 5) to (start + 0, 6)
92+
Highest counter ID seen: (none)
9593

9694
Function name: closure::main::{closure#10} (unused)
9795
Raw bytes (25): 0x[01, 01, 00, 04, 00, 9b, 01, 07, 00, 08, 00, 00, 09, 00, 11, 00, 00, 12, 00, 1e, 00, 00, 20, 00, 21]
@@ -199,24 +197,22 @@ Number of file 0 mappings: 7
199197
- Code(Counter(0)) at (prev + 2, 9) to (start + 0, 10)
200198
Highest counter ID seen: c1
201199

202-
Function name: closure::main::{closure#18}
203-
Raw bytes (51): 0x[01, 01, 01, 01, 05, 09, 01, 19, 0d, 00, 0e, 01, 01, 15, 00, 22, 01, 00, 25, 00, 26, 01, 01, 14, 00, 1c, 05, 00, 1d, 02, 12, 02, 02, 11, 00, 12, 01, 01, 11, 00, 1f, 01, 00, 20, 00, 28, 01, 01, 0d, 00, 0e]
200+
Function name: closure::main::{closure#18} (unused)
201+
Raw bytes (49): 0x[01, 01, 00, 09, 00, 19, 0d, 00, 0e, 00, 01, 15, 00, 22, 00, 00, 25, 00, 26, 00, 01, 14, 00, 1c, 00, 00, 1d, 02, 12, 00, 02, 11, 00, 12, 00, 01, 11, 00, 1f, 00, 00, 20, 00, 28, 00, 01, 0d, 00, 0e]
204202
Number of files: 1
205203
- file 0 => $DIR/closure.rs
206-
Number of expressions: 1
207-
- expression 0 operands: lhs = Counter(0), rhs = Counter(1)
204+
Number of expressions: 0
208205
Number of file 0 mappings: 9
209-
- Code(Counter(0)) at (prev + 25, 13) to (start + 0, 14)
210-
- Code(Counter(0)) at (prev + 1, 21) to (start + 0, 34)
211-
- Code(Counter(0)) at (prev + 0, 37) to (start + 0, 38)
212-
- Code(Counter(0)) at (prev + 1, 20) to (start + 0, 28)
213-
- Code(Counter(1)) at (prev + 0, 29) to (start + 2, 18)
214-
- Code(Expression(0, Sub)) at (prev + 2, 17) to (start + 0, 18)
215-
= (c0 - c1)
216-
- Code(Counter(0)) at (prev + 1, 17) to (start + 0, 31)
217-
- Code(Counter(0)) at (prev + 0, 32) to (start + 0, 40)
218-
- Code(Counter(0)) at (prev + 1, 13) to (start + 0, 14)
219-
Highest counter ID seen: c1
206+
- Code(Zero) at (prev + 25, 13) to (start + 0, 14)
207+
- Code(Zero) at (prev + 1, 21) to (start + 0, 34)
208+
- Code(Zero) at (prev + 0, 37) to (start + 0, 38)
209+
- Code(Zero) at (prev + 1, 20) to (start + 0, 28)
210+
- Code(Zero) at (prev + 0, 29) to (start + 2, 18)
211+
- Code(Zero) at (prev + 2, 17) to (start + 0, 18)
212+
- Code(Zero) at (prev + 1, 17) to (start + 0, 31)
213+
- Code(Zero) at (prev + 0, 32) to (start + 0, 40)
214+
- Code(Zero) at (prev + 1, 13) to (start + 0, 14)
215+
Highest counter ID seen: (none)
220216

221217
Function name: closure::main::{closure#19}
222218
Raw bytes (51): 0x[01, 01, 01, 01, 05, 09, 01, 43, 0d, 00, 0e, 01, 01, 15, 00, 22, 01, 00, 25, 00, 26, 01, 01, 14, 00, 1c, 05, 00, 1d, 02, 12, 02, 02, 11, 00, 12, 01, 01, 11, 00, 1f, 01, 00, 20, 00, 28, 01, 01, 0d, 00, 0e]

tests/coverage/issue-83601.cov-map

Lines changed: 13 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,22 @@
11
Function name: issue_83601::main
2-
Raw bytes (76): 0x[01, 01, 01, 05, 09, 0e, 01, 06, 01, 00, 0a, 01, 01, 09, 00, 0c, 01, 00, 0f, 00, 15, 01, 01, 05, 00, 0f, 05, 01, 09, 00, 0c, 05, 00, 0f, 00, 15, 05, 01, 05, 00, 0f, 02, 01, 05, 00, 0d, 02, 00, 0e, 00, 14, 02, 01, 05, 00, 0d, 02, 00, 0e, 00, 14, 02, 01, 05, 00, 0d, 02, 00, 0e, 00, 14, 02, 01, 01, 00, 02]
2+
Raw bytes (74): 0x[01, 01, 00, 0e, 01, 06, 01, 00, 0a, 01, 01, 09, 00, 0c, 01, 00, 0f, 00, 15, 01, 01, 05, 00, 0f, 01, 01, 09, 00, 0c, 01, 00, 0f, 00, 15, 01, 01, 05, 00, 0f, 01, 01, 05, 00, 0d, 01, 00, 0e, 00, 14, 01, 01, 05, 00, 0d, 01, 00, 0e, 00, 14, 01, 01, 05, 00, 0d, 01, 00, 0e, 00, 14, 01, 01, 01, 00, 02]
33
Number of files: 1
44
- file 0 => $DIR/issue-83601.rs
5-
Number of expressions: 1
6-
- expression 0 operands: lhs = Counter(1), rhs = Counter(2)
5+
Number of expressions: 0
76
Number of file 0 mappings: 14
87
- Code(Counter(0)) at (prev + 6, 1) to (start + 0, 10)
98
- Code(Counter(0)) at (prev + 1, 9) to (start + 0, 12)
109
- Code(Counter(0)) at (prev + 0, 15) to (start + 0, 21)
1110
- Code(Counter(0)) at (prev + 1, 5) to (start + 0, 15)
12-
- Code(Counter(1)) at (prev + 1, 9) to (start + 0, 12)
13-
- Code(Counter(1)) at (prev + 0, 15) to (start + 0, 21)
14-
- Code(Counter(1)) at (prev + 1, 5) to (start + 0, 15)
15-
- Code(Expression(0, Sub)) at (prev + 1, 5) to (start + 0, 13)
16-
= (c1 - c2)
17-
- Code(Expression(0, Sub)) at (prev + 0, 14) to (start + 0, 20)
18-
= (c1 - c2)
19-
- Code(Expression(0, Sub)) at (prev + 1, 5) to (start + 0, 13)
20-
= (c1 - c2)
21-
- Code(Expression(0, Sub)) at (prev + 0, 14) to (start + 0, 20)
22-
= (c1 - c2)
23-
- Code(Expression(0, Sub)) at (prev + 1, 5) to (start + 0, 13)
24-
= (c1 - c2)
25-
- Code(Expression(0, Sub)) at (prev + 0, 14) to (start + 0, 20)
26-
= (c1 - c2)
27-
- Code(Expression(0, Sub)) at (prev + 1, 1) to (start + 0, 2)
28-
= (c1 - c2)
29-
Highest counter ID seen: c1
11+
- Code(Counter(0)) at (prev + 1, 9) to (start + 0, 12)
12+
- Code(Counter(0)) at (prev + 0, 15) to (start + 0, 21)
13+
- Code(Counter(0)) at (prev + 1, 5) to (start + 0, 15)
14+
- Code(Counter(0)) at (prev + 1, 5) to (start + 0, 13)
15+
- Code(Counter(0)) at (prev + 0, 14) to (start + 0, 20)
16+
- Code(Counter(0)) at (prev + 1, 5) to (start + 0, 13)
17+
- Code(Counter(0)) at (prev + 0, 14) to (start + 0, 20)
18+
- Code(Counter(0)) at (prev + 1, 5) to (start + 0, 13)
19+
- Code(Counter(0)) at (prev + 0, 14) to (start + 0, 20)
20+
- Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
21+
Highest counter ID seen: c0
3022

tests/coverage/issue-84561.cov-map

Lines changed: 68 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -73,106 +73,106 @@ Number of file 0 mappings: 4
7373
Highest counter ID seen: c0
7474

7575
Function name: issue_84561::test3
76-
Raw bytes (409): 0x[01, 01, 0a, 0d, 11, 0d, 15, 0d, 19, 1d, 21, 29, 2d, 25, 29, 25, 29, 25, 29, 27, 31, 29, 2d, 4d, 01, 08, 01, 00, 0b, 01, 01, 09, 00, 10, 01, 00, 13, 00, 2e, 01, 01, 09, 00, 0c, 01, 00, 0f, 00, 15, 01, 01, 05, 00, 0f, 05, 01, 09, 00, 0c, 05, 00, 0f, 00, 15, 05, 01, 05, 00, 0f, 09, 01, 05, 00, 0d, 09, 00, 0e, 00, 14, 09, 01, 05, 00, 0d, 09, 00, 0e, 00, 14, 09, 01, 05, 00, 0d, 09, 00, 0e, 00, 14, 09, 02, 05, 00, 0f, 09, 01, 05, 00, 0f, 09, 01, 05, 00, 0f, 09, 01, 09, 00, 0c, 09, 00, 0f, 00, 15, 09, 01, 05, 00, 0f, 0d, 01, 05, 00, 0f, 0d, 01, 05, 00, 0f, 00, 00, 20, 00, 30, 0d, 01, 05, 00, 0d, 0d, 00, 0e, 00, 14, 0d, 01, 05, 00, 0d, 0d, 00, 0e, 00, 14, 0d, 02, 05, 00, 0f, 00, 00, 20, 00, 24, 00, 00, 29, 00, 30, 00, 00, 33, 00, 41, 00, 00, 4b, 00, 5a, 0d, 01, 05, 00, 0f, 00, 05, 09, 00, 0d, 00, 03, 09, 00, 10, 00, 02, 0d, 00, 1b, 00, 02, 0d, 00, 1c, 0d, 04, 09, 00, 10, 0d, 00, 13, 00, 2e, 0d, 02, 05, 00, 0f, 0d, 04, 05, 00, 0f, 0d, 04, 05, 00, 0f, 0d, 04, 09, 00, 0c, 0d, 00, 0f, 00, 15, 0d, 01, 05, 00, 0f, 0d, 04, 08, 00, 0f, 11, 01, 09, 00, 13, 02, 05, 09, 00, 13, 0d, 05, 08, 00, 0f, 15, 01, 09, 00, 13, 00, 03, 0d, 00, 1d, 06, 03, 09, 00, 13, 00, 03, 0d, 00, 1d, 0d, 03, 05, 00, 0f, 0d, 01, 0c, 00, 13, 19, 01, 0d, 00, 13, 0a, 02, 0d, 00, 13, 1d, 04, 05, 00, 0f, 1d, 02, 0c, 00, 13, 21, 01, 0d, 00, 13, 0e, 02, 0d, 00, 13, 27, 03, 05, 00, 0f, 25, 01, 0c, 00, 13, 29, 01, 0d, 00, 17, 29, 04, 0d, 00, 13, 1e, 02, 0d, 00, 17, 1e, 01, 14, 00, 1b, 00, 01, 15, 00, 1b, 1e, 02, 15, 00, 1b, 2d, 04, 0d, 00, 13, 22, 03, 09, 00, 19, 31, 02, 05, 00, 0f, 31, 03, 09, 00, 22, 00, 02, 05, 00, 0f, 00, 03, 09, 00, 2c, 00, 02, 01, 00, 02]
76+
Raw bytes (409): 0x[01, 01, 0a, 01, 05, 01, 09, 01, 0d, 11, 15, 1d, 21, 19, 1d, 19, 1d, 19, 1d, 27, 25, 1d, 21, 4d, 01, 08, 01, 00, 0b, 01, 01, 09, 00, 10, 01, 00, 13, 00, 2e, 01, 01, 09, 00, 0c, 01, 00, 0f, 00, 15, 01, 01, 05, 00, 0f, 01, 01, 09, 00, 0c, 01, 00, 0f, 00, 15, 01, 01, 05, 00, 0f, 01, 01, 05, 00, 0d, 01, 00, 0e, 00, 14, 01, 01, 05, 00, 0d, 01, 00, 0e, 00, 14, 01, 01, 05, 00, 0d, 01, 00, 0e, 00, 14, 01, 02, 05, 00, 0f, 01, 01, 05, 00, 0f, 01, 01, 05, 00, 0f, 01, 01, 09, 00, 0c, 01, 00, 0f, 00, 15, 01, 01, 05, 00, 0f, 01, 01, 05, 00, 0f, 01, 01, 05, 00, 0f, 00, 00, 20, 00, 30, 01, 01, 05, 00, 0d, 01, 00, 0e, 00, 14, 01, 01, 05, 00, 0d, 01, 00, 0e, 00, 14, 01, 02, 05, 00, 0f, 00, 00, 20, 00, 24, 00, 00, 29, 00, 30, 00, 00, 33, 00, 41, 00, 00, 4b, 00, 5a, 01, 01, 05, 00, 0f, 00, 05, 09, 00, 0d, 00, 03, 09, 00, 10, 00, 02, 0d, 00, 1b, 00, 02, 0d, 00, 1c, 01, 04, 09, 00, 10, 01, 00, 13, 00, 2e, 01, 02, 05, 00, 0f, 01, 04, 05, 00, 0f, 01, 04, 05, 00, 0f, 01, 04, 09, 00, 0c, 01, 00, 0f, 00, 15, 01, 01, 05, 00, 0f, 01, 04, 08, 00, 0f, 05, 01, 09, 00, 13, 02, 05, 09, 00, 13, 01, 05, 08, 00, 0f, 09, 01, 09, 00, 13, 00, 03, 0d, 00, 1d, 06, 03, 09, 00, 13, 00, 03, 0d, 00, 1d, 01, 03, 05, 00, 0f, 01, 01, 0c, 00, 13, 0d, 01, 0d, 00, 13, 0a, 02, 0d, 00, 13, 11, 04, 05, 00, 0f, 11, 02, 0c, 00, 13, 15, 01, 0d, 00, 13, 0e, 02, 0d, 00, 13, 27, 03, 05, 00, 0f, 19, 01, 0c, 00, 13, 1d, 01, 0d, 00, 17, 1d, 04, 0d, 00, 13, 1e, 02, 0d, 00, 17, 1e, 01, 14, 00, 1b, 00, 01, 15, 00, 1b, 1e, 02, 15, 00, 1b, 21, 04, 0d, 00, 13, 22, 03, 09, 00, 19, 25, 02, 05, 00, 0f, 25, 03, 09, 00, 22, 00, 02, 05, 00, 0f, 00, 03, 09, 00, 2c, 00, 02, 01, 00, 02]
7777
Number of files: 1
7878
- file 0 => $DIR/issue-84561.rs
7979
Number of expressions: 10
80-
- expression 0 operands: lhs = Counter(3), rhs = Counter(4)
81-
- expression 1 operands: lhs = Counter(3), rhs = Counter(5)
82-
- expression 2 operands: lhs = Counter(3), rhs = Counter(6)
83-
- expression 3 operands: lhs = Counter(7), rhs = Counter(8)
84-
- expression 4 operands: lhs = Counter(10), rhs = Counter(11)
85-
- expression 5 operands: lhs = Counter(9), rhs = Counter(10)
86-
- expression 6 operands: lhs = Counter(9), rhs = Counter(10)
87-
- expression 7 operands: lhs = Counter(9), rhs = Counter(10)
88-
- expression 8 operands: lhs = Expression(9, Add), rhs = Counter(12)
89-
- expression 9 operands: lhs = Counter(10), rhs = Counter(11)
80+
- expression 0 operands: lhs = Counter(0), rhs = Counter(1)
81+
- expression 1 operands: lhs = Counter(0), rhs = Counter(2)
82+
- expression 2 operands: lhs = Counter(0), rhs = Counter(3)
83+
- expression 3 operands: lhs = Counter(4), rhs = Counter(5)
84+
- expression 4 operands: lhs = Counter(7), rhs = Counter(8)
85+
- expression 5 operands: lhs = Counter(6), rhs = Counter(7)
86+
- expression 6 operands: lhs = Counter(6), rhs = Counter(7)
87+
- expression 7 operands: lhs = Counter(6), rhs = Counter(7)
88+
- expression 8 operands: lhs = Expression(9, Add), rhs = Counter(9)
89+
- expression 9 operands: lhs = Counter(7), rhs = Counter(8)
9090
Number of file 0 mappings: 77
9191
- Code(Counter(0)) at (prev + 8, 1) to (start + 0, 11)
9292
- Code(Counter(0)) at (prev + 1, 9) to (start + 0, 16)
9393
- Code(Counter(0)) at (prev + 0, 19) to (start + 0, 46)
9494
- Code(Counter(0)) at (prev + 1, 9) to (start + 0, 12)
9595
- Code(Counter(0)) at (prev + 0, 15) to (start + 0, 21)
9696
- Code(Counter(0)) at (prev + 1, 5) to (start + 0, 15)
97-
- Code(Counter(1)) at (prev + 1, 9) to (start + 0, 12)
98-
- Code(Counter(1)) at (prev + 0, 15) to (start + 0, 21)
99-
- Code(Counter(1)) at (prev + 1, 5) to (start + 0, 15)
100-
- Code(Counter(2)) at (prev + 1, 5) to (start + 0, 13)
101-
- Code(Counter(2)) at (prev + 0, 14) to (start + 0, 20)
102-
- Code(Counter(2)) at (prev + 1, 5) to (start + 0, 13)
103-
- Code(Counter(2)) at (prev + 0, 14) to (start + 0, 20)
104-
- Code(Counter(2)) at (prev + 1, 5) to (start + 0, 13)
105-
- Code(Counter(2)) at (prev + 0, 14) to (start + 0, 20)
106-
- Code(Counter(2)) at (prev + 2, 5) to (start + 0, 15)
107-
- Code(Counter(2)) at (prev + 1, 5) to (start + 0, 15)
108-
- Code(Counter(2)) at (prev + 1, 5) to (start + 0, 15)
109-
- Code(Counter(2)) at (prev + 1, 9) to (start + 0, 12)
110-
- Code(Counter(2)) at (prev + 0, 15) to (start + 0, 21)
111-
- Code(Counter(2)) at (prev + 1, 5) to (start + 0, 15)
112-
- Code(Counter(3)) at (prev + 1, 5) to (start + 0, 15)
113-
- Code(Counter(3)) at (prev + 1, 5) to (start + 0, 15)
97+
- Code(Counter(0)) at (prev + 1, 9) to (start + 0, 12)
98+
- Code(Counter(0)) at (prev + 0, 15) to (start + 0, 21)
99+
- Code(Counter(0)) at (prev + 1, 5) to (start + 0, 15)
100+
- Code(Counter(0)) at (prev + 1, 5) to (start + 0, 13)
101+
- Code(Counter(0)) at (prev + 0, 14) to (start + 0, 20)
102+
- Code(Counter(0)) at (prev + 1, 5) to (start + 0, 13)
103+
- Code(Counter(0)) at (prev + 0, 14) to (start + 0, 20)
104+
- Code(Counter(0)) at (prev + 1, 5) to (start + 0, 13)
105+
- Code(Counter(0)) at (prev + 0, 14) to (start + 0, 20)
106+
- Code(Counter(0)) at (prev + 2, 5) to (start + 0, 15)
107+
- Code(Counter(0)) at (prev + 1, 5) to (start + 0, 15)
108+
- Code(Counter(0)) at (prev + 1, 5) to (start + 0, 15)
109+
- Code(Counter(0)) at (prev + 1, 9) to (start + 0, 12)
110+
- Code(Counter(0)) at (prev + 0, 15) to (start + 0, 21)
111+
- Code(Counter(0)) at (prev + 1, 5) to (start + 0, 15)
112+
- Code(Counter(0)) at (prev + 1, 5) to (start + 0, 15)
113+
- Code(Counter(0)) at (prev + 1, 5) to (start + 0, 15)
114114
- Code(Zero) at (prev + 0, 32) to (start + 0, 48)
115-
- Code(Counter(3)) at (prev + 1, 5) to (start + 0, 13)
116-
- Code(Counter(3)) at (prev + 0, 14) to (start + 0, 20)
117-
- Code(Counter(3)) at (prev + 1, 5) to (start + 0, 13)
118-
- Code(Counter(3)) at (prev + 0, 14) to (start + 0, 20)
119-
- Code(Counter(3)) at (prev + 2, 5) to (start + 0, 15)
115+
- Code(Counter(0)) at (prev + 1, 5) to (start + 0, 13)
116+
- Code(Counter(0)) at (prev + 0, 14) to (start + 0, 20)
117+
- Code(Counter(0)) at (prev + 1, 5) to (start + 0, 13)
118+
- Code(Counter(0)) at (prev + 0, 14) to (start + 0, 20)
119+
- Code(Counter(0)) at (prev + 2, 5) to (start + 0, 15)
120120
- Code(Zero) at (prev + 0, 32) to (start + 0, 36)
121121
- Code(Zero) at (prev + 0, 41) to (start + 0, 48)
122122
- Code(Zero) at (prev + 0, 51) to (start + 0, 65)
123123
- Code(Zero) at (prev + 0, 75) to (start + 0, 90)
124-
- Code(Counter(3)) at (prev + 1, 5) to (start + 0, 15)
124+
- Code(Counter(0)) at (prev + 1, 5) to (start + 0, 15)
125125
- Code(Zero) at (prev + 5, 9) to (start + 0, 13)
126126
- Code(Zero) at (prev + 3, 9) to (start + 0, 16)
127127
- Code(Zero) at (prev + 2, 13) to (start + 0, 27)
128128
- Code(Zero) at (prev + 2, 13) to (start + 0, 28)
129-
- Code(Counter(3)) at (prev + 4, 9) to (start + 0, 16)
130-
- Code(Counter(3)) at (prev + 0, 19) to (start + 0, 46)
131-
- Code(Counter(3)) at (prev + 2, 5) to (start + 0, 15)
132-
- Code(Counter(3)) at (prev + 4, 5) to (start + 0, 15)
133-
- Code(Counter(3)) at (prev + 4, 5) to (start + 0, 15)
134-
- Code(Counter(3)) at (prev + 4, 9) to (start + 0, 12)
135-
- Code(Counter(3)) at (prev + 0, 15) to (start + 0, 21)
136-
- Code(Counter(3)) at (prev + 1, 5) to (start + 0, 15)
137-
- Code(Counter(3)) at (prev + 4, 8) to (start + 0, 15)
138-
- Code(Counter(4)) at (prev + 1, 9) to (start + 0, 19)
129+
- Code(Counter(0)) at (prev + 4, 9) to (start + 0, 16)
130+
- Code(Counter(0)) at (prev + 0, 19) to (start + 0, 46)
131+
- Code(Counter(0)) at (prev + 2, 5) to (start + 0, 15)
132+
- Code(Counter(0)) at (prev + 4, 5) to (start + 0, 15)
133+
- Code(Counter(0)) at (prev + 4, 5) to (start + 0, 15)
134+
- Code(Counter(0)) at (prev + 4, 9) to (start + 0, 12)
135+
- Code(Counter(0)) at (prev + 0, 15) to (start + 0, 21)
136+
- Code(Counter(0)) at (prev + 1, 5) to (start + 0, 15)
137+
- Code(Counter(0)) at (prev + 4, 8) to (start + 0, 15)
138+
- Code(Counter(1)) at (prev + 1, 9) to (start + 0, 19)
139139
- Code(Expression(0, Sub)) at (prev + 5, 9) to (start + 0, 19)
140-
= (c3 - c4)
141-
- Code(Counter(3)) at (prev + 5, 8) to (start + 0, 15)
142-
- Code(Counter(5)) at (prev + 1, 9) to (start + 0, 19)
140+
= (c0 - c1)
141+
- Code(Counter(0)) at (prev + 5, 8) to (start + 0, 15)
142+
- Code(Counter(2)) at (prev + 1, 9) to (start + 0, 19)
143143
- Code(Zero) at (prev + 3, 13) to (start + 0, 29)
144144
- Code(Expression(1, Sub)) at (prev + 3, 9) to (start + 0, 19)
145-
= (c3 - c5)
145+
= (c0 - c2)
146146
- Code(Zero) at (prev + 3, 13) to (start + 0, 29)
147-
- Code(Counter(3)) at (prev + 3, 5) to (start + 0, 15)
148-
- Code(Counter(3)) at (prev + 1, 12) to (start + 0, 19)
149-
- Code(Counter(6)) at (prev + 1, 13) to (start + 0, 19)
147+
- Code(Counter(0)) at (prev + 3, 5) to (start + 0, 15)
148+
- Code(Counter(0)) at (prev + 1, 12) to (start + 0, 19)
149+
- Code(Counter(3)) at (prev + 1, 13) to (start + 0, 19)
150150
- Code(Expression(2, Sub)) at (prev + 2, 13) to (start + 0, 19)
151-
= (c3 - c6)
152-
- Code(Counter(7)) at (prev + 4, 5) to (start + 0, 15)
153-
- Code(Counter(7)) at (prev + 2, 12) to (start + 0, 19)
154-
- Code(Counter(8)) at (prev + 1, 13) to (start + 0, 19)
151+
= (c0 - c3)
152+
- Code(Counter(4)) at (prev + 4, 5) to (start + 0, 15)
153+
- Code(Counter(4)) at (prev + 2, 12) to (start + 0, 19)
154+
- Code(Counter(5)) at (prev + 1, 13) to (start + 0, 19)
155155
- Code(Expression(3, Sub)) at (prev + 2, 13) to (start + 0, 19)
156-
= (c7 - c8)
156+
= (c4 - c5)
157157
- Code(Expression(9, Add)) at (prev + 3, 5) to (start + 0, 15)
158-
= (c10 + c11)
159-
- Code(Counter(9)) at (prev + 1, 12) to (start + 0, 19)
160-
- Code(Counter(10)) at (prev + 1, 13) to (start + 0, 23)
161-
- Code(Counter(10)) at (prev + 4, 13) to (start + 0, 19)
158+
= (c7 + c8)
159+
- Code(Counter(6)) at (prev + 1, 12) to (start + 0, 19)
160+
- Code(Counter(7)) at (prev + 1, 13) to (start + 0, 23)
161+
- Code(Counter(7)) at (prev + 4, 13) to (start + 0, 19)
162162
- Code(Expression(7, Sub)) at (prev + 2, 13) to (start + 0, 23)
163-
= (c9 - c10)
163+
= (c6 - c7)
164164
- Code(Expression(7, Sub)) at (prev + 1, 20) to (start + 0, 27)
165-
= (c9 - c10)
165+
= (c6 - c7)
166166
- Code(Zero) at (prev + 1, 21) to (start + 0, 27)
167167
- Code(Expression(7, Sub)) at (prev + 2, 21) to (start + 0, 27)
168-
= (c9 - c10)
169-
- Code(Counter(11)) at (prev + 4, 13) to (start + 0, 19)
168+
= (c6 - c7)
169+
- Code(Counter(8)) at (prev + 4, 13) to (start + 0, 19)
170170
- Code(Expression(8, Sub)) at (prev + 3, 9) to (start + 0, 25)
171-
= ((c10 + c11) - c12)
172-
- Code(Counter(12)) at (prev + 2, 5) to (start + 0, 15)
173-
- Code(Counter(12)) at (prev + 3, 9) to (start + 0, 34)
171+
= ((c7 + c8) - c9)
172+
- Code(Counter(9)) at (prev + 2, 5) to (start + 0, 15)
173+
- Code(Counter(9)) at (prev + 3, 9) to (start + 0, 34)
174174
- Code(Zero) at (prev + 2, 5) to (start + 0, 15)
175175
- Code(Zero) at (prev + 3, 9) to (start + 0, 44)
176176
- Code(Zero) at (prev + 2, 1) to (start + 0, 2)
177-
Highest counter ID seen: c12
177+
Highest counter ID seen: c9
178178

tests/mir-opt/const_prop/boxes.main.GVN.panic-abort.diff

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,16 +30,21 @@
3030
}
3131

3232
bb1: {
33-
StorageLive(_7);
33+
- StorageLive(_7);
34+
+ nop;
3435
_7 = ShallowInitBox(move _6, i32);
3536
_8 = copy ((_7.0: std::ptr::Unique<i32>).0: std::ptr::NonNull<i32>) as *const i32 (Transmute);
3637
(*_8) = const 42_i32;
37-
_3 = move _7;
38-
StorageDead(_7);
39-
_9 = copy ((_3.0: std::ptr::Unique<i32>).0: std::ptr::NonNull<i32>) as *const i32 (Transmute);
40-
_2 = copy (*_9);
38+
- _3 = move _7;
39+
- StorageDead(_7);
40+
- _9 = copy ((_3.0: std::ptr::Unique<i32>).0: std::ptr::NonNull<i32>) as *const i32 (Transmute);
41+
- _2 = copy (*_9);
4142
- _1 = Add(move _2, const 0_i32);
4243
- StorageDead(_2);
44+
+ _3 = copy _7;
45+
+ nop;
46+
+ _9 = copy _8;
47+
+ _2 = copy (*_8);
4348
+ _1 = copy _2;
4449
+ nop;
4550
drop(_3) -> [return: bb2, unwind unreachable];

0 commit comments

Comments
 (0)