Skip to content

Commit 8d11d46

Browse files
committed
bless
1 parent ec7d227 commit 8d11d46

File tree

2 files changed

+141
-33
lines changed

2 files changed

+141
-33
lines changed

tests/mir-opt/const_array_locals.main.GVN.diff

+125-15
Original file line numberDiff line numberDiff line change
@@ -4,41 +4,151 @@
44
fn main() -> () {
55
let mut _0: ();
66
let _1: [i32; 32];
7-
let mut _4: &[i32; 32];
8-
let _5: [i32; 32];
7+
let mut _4: [i32; 12];
8+
let mut _5: [i32; 12];
9+
let mut _7: &[i32; 32];
10+
let _8: [i32; 32];
11+
let _9: ();
12+
let mut _10: [u16; 32];
13+
let mut _12: [f32; 8];
14+
let _13: [[i32; 3]; 3];
15+
let mut _14: [i32; 3];
16+
let mut _15: [i32; 3];
17+
let mut _16: [i32; 3];
918
scope 1 {
1019
debug _arr => _1;
1120
let _2: [i32; 32];
1221
scope 2 {
1322
debug _barr => _2;
14-
let _3: [i32; 32];
15-
let mut _6: &[i32; 32];
23+
let _3: [[i32; 12]; 2];
1624
scope 3 {
17-
debug _darr => _3;
25+
debug _foo => _3;
26+
let _6: [i32; 32];
27+
let mut _17: &[i32; 32];
28+
scope 4 {
29+
debug _darr => _6;
30+
let _11: F32x8;
31+
scope 5 {
32+
debug _f => _11;
33+
}
34+
}
1835
}
1936
}
2037
}
2138

2239
bb0: {
23-
- StorageLive(_1);
24-
+ nop;
25-
_1 = [const 255_i32, const 105_i32, const 15_i32, const 39_i32, const 62_i32, const 251_i32, const 191_i32, const 178_i32, const 9_i32, const 4_i32, const 56_i32, const 221_i32, const 193_i32, const 164_i32, const 194_i32, const 197_i32, const 6_i32, const 243_i32, const 218_i32, const 171_i32, const 87_i32, const 247_i32, const 104_i32, const 159_i32, const 22_i32, const 157_i32, const 105_i32, const 31_i32, const 96_i32, const 173_i32, const 50_i32, const 1_i32];
40+
StorageLive(_1);
41+
- _1 = [const 255_i32, const 105_i32, const 15_i32, const 39_i32, const 62_i32, const 251_i32, const 191_i32, const 178_i32, const 9_i32, const 4_i32, const 56_i32, const 221_i32, const 193_i32, const 164_i32, const 194_i32, const 197_i32, const 6_i32, const 243_i32, const 218_i32, const 171_i32, const 87_i32, const 247_i32, const 104_i32, const 159_i32, const 22_i32, const 157_i32, const 105_i32, const 31_i32, const 96_i32, const 173_i32, const 50_i32, const 1_i32];
42+
+ _1 = const [255_i32, 105_i32, 15_i32, 39_i32, 62_i32, 251_i32, 191_i32, 178_i32, 9_i32, 4_i32, 56_i32, 221_i32, 193_i32, 164_i32, 194_i32, 197_i32, 6_i32, 243_i32, 218_i32, 171_i32, 87_i32, 247_i32, 104_i32, 159_i32, 22_i32, 157_i32, 105_i32, 31_i32, 96_i32, 173_i32, 50_i32, 1_i32];
2643
StorageLive(_2);
2744
- _2 = [const 255_i32, const 105_i32, const 15_i32, const 39_i32, const 62_i32, const 251_i32, const 191_i32, const 178_i32, const 9_i32, const 4_i32, const 56_i32, const 221_i32, const 193_i32, const 164_i32, const 194_i32, const 197_i32, const 6_i32, const 243_i32, const 218_i32, const 171_i32, const 87_i32, const 247_i32, const 104_i32, const 159_i32, const 22_i32, const 157_i32, const 105_i32, const 31_i32, const 96_i32, const 173_i32, const 50_i32, const 1_i32];
28-
+ _2 = _1;
45+
+ _2 = const [255_i32, 105_i32, 15_i32, 39_i32, 62_i32, 251_i32, 191_i32, 178_i32, 9_i32, 4_i32, 56_i32, 221_i32, 193_i32, 164_i32, 194_i32, 197_i32, 6_i32, 243_i32, 218_i32, 171_i32, 87_i32, 247_i32, 104_i32, 159_i32, 22_i32, 157_i32, 105_i32, 31_i32, 96_i32, 173_i32, 50_i32, 1_i32];
2946
StorageLive(_3);
3047
StorageLive(_4);
31-
_6 = const main::promoted[0];
32-
_4 = &(*_6);
33-
- _3 = (*_4);
34-
+ _3 = (*_6);
48+
- _4 = [const 255_i32, const 105_i32, const 15_i32, const 39_i32, const 62_i32, const 251_i32, const 191_i32, const 178_i32, const 9_i32, const 4_i32, const 56_i32, const 221_i32];
49+
+ _4 = const [255_i32, 105_i32, 15_i32, 39_i32, 62_i32, 251_i32, 191_i32, 178_i32, 9_i32, 4_i32, 56_i32, 221_i32];
50+
StorageLive(_5);
51+
- _5 = [const 193_i32, const 164_i32, const 194_i32, const 197_i32, const 6_i32, const 243_i32, const 218_i32, const 171_i32, const 87_i32, const 247_i32, const 104_i32, const 42_i32];
52+
- _3 = [move _4, move _5];
53+
+ _5 = const [193_i32, 164_i32, 194_i32, 197_i32, 6_i32, 243_i32, 218_i32, 171_i32, 87_i32, 247_i32, 104_i32, 42_i32];
54+
+ _3 = [const [255_i32, 105_i32, 15_i32, 39_i32, 62_i32, 251_i32, 191_i32, 178_i32, 9_i32, 4_i32, 56_i32, 221_i32], const [193_i32, 164_i32, 194_i32, 197_i32, 6_i32, 243_i32, 218_i32, 171_i32, 87_i32, 247_i32, 104_i32, 42_i32]];
55+
StorageDead(_5);
3556
StorageDead(_4);
57+
StorageLive(_6);
58+
StorageLive(_7);
59+
_17 = const main::promoted[0];
60+
_7 = &(*_17);
61+
- _6 = (*_7);
62+
+ _6 = (*_17);
63+
StorageDead(_7);
64+
StorageLive(_9);
65+
StorageLive(_10);
66+
- _10 = [const 255_u16, const 105_u16, const 15_u16, const 39_u16, const 62_u16, const 251_u16, const 191_u16, const 178_u16, const 9_u16, const 4_u16, const 56_u16, const 221_u16, const 193_u16, const 164_u16, const 194_u16, const 197_u16, const 6_u16, const 243_u16, const 218_u16, const 171_u16, const 87_u16, const 247_u16, const 104_u16, const 159_u16, const 22_u16, const 157_u16, const 105_u16, const 31_u16, const 96_u16, const 173_u16, const 50_u16, const 1_u16];
67+
- _9 = consume(move _10) -> [return: bb1, unwind continue];
68+
+ _10 = const [255_u16, 105_u16, 15_u16, 39_u16, 62_u16, 251_u16, 191_u16, 178_u16, 9_u16, 4_u16, 56_u16, 221_u16, 193_u16, 164_u16, 194_u16, 197_u16, 6_u16, 243_u16, 218_u16, 171_u16, 87_u16, 247_u16, 104_u16, 159_u16, 22_u16, 157_u16, 105_u16, 31_u16, 96_u16, 173_u16, 50_u16, 1_u16];
69+
+ _9 = consume(const [255_u16, 105_u16, 15_u16, 39_u16, 62_u16, 251_u16, 191_u16, 178_u16, 9_u16, 4_u16, 56_u16, 221_u16, 193_u16, 164_u16, 194_u16, 197_u16, 6_u16, 243_u16, 218_u16, 171_u16, 87_u16, 247_u16, 104_u16, 159_u16, 22_u16, 157_u16, 105_u16, 31_u16, 96_u16, 173_u16, 50_u16, 1_u16]) -> [return: bb1, unwind continue];
70+
}
71+
72+
bb1: {
73+
StorageDead(_10);
74+
StorageDead(_9);
75+
StorageLive(_11);
76+
StorageLive(_12);
77+
- _12 = [const 1f32, const 2f32, const 3f32, const 1f32, const 1f32, const 1f32, const 1f32, const 42f32];
78+
- _11 = F32x8(move _12);
79+
+ _12 = const [1f32, 2f32, 3f32, 1f32, 1f32, 1f32, 1f32, 42f32];
80+
+ _11 = F32x8(const [1f32, 2f32, 3f32, 1f32, 1f32, 1f32, 1f32, 42f32]);
81+
StorageDead(_12);
82+
StorageLive(_13);
83+
StorageLive(_14);
84+
- _14 = [const 1_i32, const 0_i32, const 0_i32];
85+
+ _14 = const [1_i32, 0_i32, 0_i32];
86+
StorageLive(_15);
87+
- _15 = [const 0_i32, const 1_i32, const 0_i32];
88+
+ _15 = const [0_i32, 1_i32, 0_i32];
89+
StorageLive(_16);
90+
- _16 = [const 0_i32, const 0_i32, const 1_i32];
91+
- _13 = [move _14, move _15, move _16];
92+
+ _16 = const [0_i32, 0_i32, 1_i32];
93+
+ _13 = [const [1_i32, 0_i32, 0_i32], const [0_i32, 1_i32, 0_i32], const [0_i32, 0_i32, 1_i32]];
94+
StorageDead(_16);
95+
StorageDead(_15);
96+
StorageDead(_14);
97+
StorageDead(_13);
3698
_0 = const ();
99+
StorageDead(_11);
100+
StorageDead(_6);
37101
StorageDead(_3);
38102
StorageDead(_2);
39-
- StorageDead(_1);
40-
+ nop;
103+
StorageDead(_1);
41104
return;
42105
}
106+
+ }
107+
+
108+
+ ALLOC0 (size: 12, align: 4) {
109+
+ 00 00 00 00 00 00 00 00 01 00 00 00 │ ............
110+
+ }
111+
+
112+
+ ALLOC1 (size: 12, align: 4) {
113+
+ 00 00 00 00 01 00 00 00 00 00 00 00 │ ............
114+
+ }
115+
+
116+
+ ALLOC2 (size: 12, align: 4) {
117+
+ 01 00 00 00 00 00 00 00 00 00 00 00 │ ............
118+
+ }
119+
+
120+
+ ALLOC3 (size: 32, align: 4) {
121+
+ 0x00 │ 00 00 80 3f 00 00 00 40 00 00 40 40 00 00 80 3f │ ...?...@..@@...?
122+
+ 0x10 │ 00 00 80 3f 00 00 80 3f 00 00 80 3f 00 00 28 42 │ ...?...?...?..(B
123+
+ }
124+
+
125+
+ ALLOC4 (size: 64, align: 2) {
126+
+ 0x00 │ ff 00 69 00 0f 00 27 00 3e 00 fb 00 bf 00 b2 00 │ ..i...'.>.......
127+
+ 0x10 │ 09 00 04 00 38 00 dd 00 c1 00 a4 00 c2 00 c5 00 │ ....8...........
128+
+ 0x20 │ 06 00 f3 00 da 00 ab 00 57 00 f7 00 68 00 9f 00 │ ........W...h...
129+
+ 0x30 │ 16 00 9d 00 69 00 1f 00 60 00 ad 00 32 00 01 00 │ ....i...`...2...
130+
+ }
131+
+
132+
+ ALLOC5 (size: 48, align: 4) {
133+
+ 0x00 │ c1 00 00 00 a4 00 00 00 c2 00 00 00 c5 00 00 00 │ ................
134+
+ 0x10 │ 06 00 00 00 f3 00 00 00 da 00 00 00 ab 00 00 00 │ ................
135+
+ 0x20 │ 57 00 00 00 f7 00 00 00 68 00 00 00 2a 00 00 00 │ W.......h...*...
136+
+ }
137+
+
138+
+ ALLOC6 (size: 48, align: 4) {
139+
+ 0x00 │ ff 00 00 00 69 00 00 00 0f 00 00 00 27 00 00 00 │ ....i.......'...
140+
+ 0x10 │ 3e 00 00 00 fb 00 00 00 bf 00 00 00 b2 00 00 00 │ >...............
141+
+ 0x20 │ 09 00 00 00 04 00 00 00 38 00 00 00 dd 00 00 00 │ ........8.......
142+
+ }
143+
+
144+
+ ALLOC7 (size: 128, align: 4) {
145+
+ 0x00 │ ff 00 00 00 69 00 00 00 0f 00 00 00 27 00 00 00 │ ....i.......'...
146+
+ 0x10 │ 3e 00 00 00 fb 00 00 00 bf 00 00 00 b2 00 00 00 │ >...............
147+
+ 0x20 │ 09 00 00 00 04 00 00 00 38 00 00 00 dd 00 00 00 │ ........8.......
148+
+ 0x30 │ c1 00 00 00 a4 00 00 00 c2 00 00 00 c5 00 00 00 │ ................
149+
+ 0x40 │ 06 00 00 00 f3 00 00 00 da 00 00 00 ab 00 00 00 │ ................
150+
+ 0x50 │ 57 00 00 00 f7 00 00 00 68 00 00 00 9f 00 00 00 │ W.......h.......
151+
+ 0x60 │ 16 00 00 00 9d 00 00 00 69 00 00 00 1f 00 00 00 │ ........i.......
152+
+ 0x70 │ 60 00 00 00 ad 00 00 00 32 00 00 00 01 00 00 00 │ `.......2.......
43153
}
44154

tests/mir-opt/const_array_locals.rs

+16-18
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,44 @@
11
//@ test-mir-pass: GVN
22
#![feature(repr_simd)]
33

4-
// #[repr(simd)]
5-
// struct F32x8([f32; 8]);
4+
#[repr(simd)]
5+
struct F32x8([f32; 8]);
66

77
// EMIT_MIR const_array_locals.main.GVN.diff
88
// CHECK-LABEL: fn main(
99
#[rustfmt::skip]
1010
pub fn main() {
11-
// CHECK: let [[array_lit:_.*]]: [i32; 32];
12-
// CHECK: debug _arr => [[arr:_.*]];
13-
1411
let _arr = [
1512
255, 105, 15, 39, 62, 251, 191, 178, 9, 4, 56, 221,
1613
193, 164, 194, 197, 6, 243, 218, 171, 87, 247, 104,
1714
159, 22, 157, 105, 31, 96, 173, 50, 1,
1815
];
16+
// duplicate item
1917
let _barr = [
2018
255, 105, 15, 39, 62, 251, 191, 178, 9, 4, 56, 221,
2119
193, 164, 194, 197, 6, 243, 218, 171, 87, 247, 104,
2220
159, 22, 157, 105, 31, 96, 173, 50, 1,
2321
];
24-
// let _foo = [
25-
// [255, 105, 15, 39, 62, 251, 191, 178, 9, 4, 56, 221],
26-
// [193, 164, 194, 197, 6, 243, 218, 171, 87, 247, 104, 42],
27-
// ];
22+
let _foo = [
23+
[255, 105, 15, 39, 62, 251, 191, 178, 9, 4, 56, 221],
24+
[193, 164, 194, 197, 6, 243, 218, 171, 87, 247, 104, 42],
25+
];
2826
let _darr = *&[
2927
255, 105, 15, 39, 62, 251, 191, 178, 9, 4, 56, 221,
3028
193, 164, 194, 197, 6, 243, 218, 171, 87, 247, 104,
3129
159, 22, 157, 105, 31, 96, 173, 50, 1,
3230
];
3331

34-
// consume([255, 105, 15, 39, 62, 251, 191, 178, 9, 4, 56, 221,
35-
// 193, 164, 194, 197, 6, 243, 218, 171, 87, 247, 104,
36-
// 159, 22, 157, 105, 31, 96, 173, 50, 1,]);
32+
consume([255, 105, 15, 39, 62, 251, 191, 178, 9, 4, 56, 221,
33+
193, 164, 194, 197, 6, 243, 218, 171, 87, 247, 104,
34+
159, 22, 157, 105, 31, 96, 173, 50, 1,]);
3735

38-
// let _f = F32x8([1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]);
36+
let _f = F32x8([1.0, 2.0, 3.0, 1.0, 1.0, 1.0, 1.0, 42.0]);
3937

40-
// // ice
41-
// [[1, 0, 0], [0, 1, 0], [0, 0, 1]]; // 2D array
38+
// ice
39+
[[1, 0, 0], [0, 1, 0], [0, 0, 1]]; // 2D array
4240
}
4341

44-
// fn consume(_arr: [u16; 32]) {
45-
// unimplemented!()
46-
// }
42+
fn consume(_arr: [u16; 32]) {
43+
unimplemented!()
44+
}

0 commit comments

Comments
 (0)