Skip to content

Commit fe0cbde

Browse files
committed
feature: in IR textual representation put module body in a curly braces
and indent it
1 parent 8a593d7 commit fe0cbde

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

85 files changed

+2830
-2736
lines changed

frontend-wasm/src/code_translator/tests.rs

Lines changed: 112 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -58,15 +58,16 @@ fn module() {
5858
)
5959
"#,
6060
expect![[r#"
61-
module noname
61+
module noname {
6262
63-
pub fn main() {
64-
block0:
65-
v0 = const.i32 0 : i32;
66-
br block1;
63+
pub fn main() {
64+
block0:
65+
v0 = const.i32 0 : i32;
66+
br block1;
6767
68-
block1:
69-
ret;
68+
block1:
69+
ret;
70+
}
7071
}
7172
"#]],
7273
);
@@ -86,16 +87,17 @@ fn locals() {
8687
)
8788
"#,
8889
expect![[r#"
89-
module noname
90+
module noname {
9091
91-
pub fn main() {
92-
block0:
93-
v0 = const.i32 0 : i32;
94-
v1 = const.i32 1 : i32;
95-
br block1;
92+
pub fn main() {
93+
block0:
94+
v0 = const.i32 0 : i32;
95+
v1 = const.i32 1 : i32;
96+
br block1;
9697
97-
block1:
98-
ret;
98+
block1:
99+
ret;
100+
}
99101
}
100102
"#]],
101103
);
@@ -124,26 +126,27 @@ fn locals_inter_block() {
124126
)
125127
"#,
126128
expect![[r#"
127-
module noname
129+
module noname {
128130
129-
pub fn main() -> i32 {
130-
block0:
131-
v1 = const.i32 0 : i32;
132-
v2 = const.i32 3 : i32;
133-
br block2;
131+
pub fn main() -> i32 {
132+
block0:
133+
v1 = const.i32 0 : i32;
134+
v2 = const.i32 3 : i32;
135+
br block2;
134136
135-
block1(v0: i32):
136-
ret v0;
137+
block1(v0: i32):
138+
ret v0;
137139
138-
block2:
139-
v3 = const.i32 5 : i32;
140-
v4 = add.wrapping v2, v3 : i32;
141-
br block3;
140+
block2:
141+
v3 = const.i32 5 : i32;
142+
v4 = add.wrapping v2, v3 : i32;
143+
br block3;
142144
143-
block3:
144-
v5 = const.i32 7 : i32;
145-
v6 = add.wrapping v5, v4 : i32;
146-
br block1(v6);
145+
block3:
146+
v5 = const.i32 7 : i32;
147+
v6 = add.wrapping v5, v4 : i32;
148+
br block1(v6);
149+
}
147150
}
148151
"#]],
149152
);
@@ -167,26 +170,27 @@ fn func_call() {
167170
)
168171
"#,
169172
expect![[r#"
170-
module noname
173+
module noname {
171174
172-
pub fn add(i32, i32) -> i32 {
173-
block0(v0: i32, v1: i32):
174-
v3 = add.wrapping v0, v1 : i32;
175-
br block1(v3);
175+
pub fn add(i32, i32) -> i32 {
176+
block0(v0: i32, v1: i32):
177+
v3 = add.wrapping v0, v1 : i32;
178+
br block1(v3);
176179
177-
block1(v2: i32):
178-
ret v2;
179-
}
180+
block1(v2: i32):
181+
ret v2;
182+
}
180183
181-
pub fn main() -> i32 {
182-
block0:
183-
v1 = const.i32 3 : i32;
184-
v2 = const.i32 5 : i32;
185-
v3 = call noname::add(v1, v2) : i32;
186-
br block1(v3);
184+
pub fn main() -> i32 {
185+
block0:
186+
v1 = const.i32 3 : i32;
187+
v2 = const.i32 5 : i32;
188+
v3 = call noname::add(v1, v2) : i32;
189+
br block1(v3);
187190
188-
block1(v0: i32):
189-
ret v0;
191+
block1(v0: i32):
192+
ret v0;
193+
}
190194
}
191195
"#]],
192196
);
@@ -208,19 +212,20 @@ fn br() {
208212
)
209213
"#,
210214
expect![[r#"
211-
module noname
215+
module noname {
212216
213-
pub fn main() -> i32 {
214-
block0:
215-
v1 = const.i32 0 : i32;
216-
v2 = const.i32 3 : i32;
217-
br block2;
217+
pub fn main() -> i32 {
218+
block0:
219+
v1 = const.i32 0 : i32;
220+
v2 = const.i32 3 : i32;
221+
br block2;
218222
219-
block1(v0: i32):
220-
ret v0;
223+
block1(v0: i32):
224+
ret v0;
221225
222-
block2:
223-
br block1(v2);
226+
block2:
227+
br block1(v2);
228+
}
224229
}
225230
"#]],
226231
);
@@ -251,29 +256,30 @@ fn loop_br_if() {
251256
)
252257
"#,
253258
expect![[r#"
254-
module noname
259+
module noname {
255260
256-
pub fn main() -> i32 {
257-
block0:
258-
v1 = const.i32 0 : i32;
259-
v2 = const.i32 2 : i32;
260-
br block2(v2, v1);
261+
pub fn main() -> i32 {
262+
block0:
263+
v1 = const.i32 0 : i32;
264+
v2 = const.i32 2 : i32;
265+
br block2(v2, v1);
261266
262-
block1(v0: i32):
263-
ret v0;
267+
block1(v0: i32):
268+
ret v0;
264269
265-
block2(v3: i32, v4: i32):
266-
v5 = add.wrapping v3, v4 : i32;
267-
v6 = const.i32 1 : i32;
268-
v7 = sub.wrapping v3, v6 : i32;
269-
v8 = neq v7, 0 : i1;
270-
condbr v8, block2(v7, v5), block4;
270+
block2(v3: i32, v4: i32):
271+
v5 = add.wrapping v3, v4 : i32;
272+
v6 = const.i32 1 : i32;
273+
v7 = sub.wrapping v3, v6 : i32;
274+
v8 = neq v7, 0 : i1;
275+
condbr v8, block2(v7, v5), block4;
271276
272-
block3:
273-
br block1(v5);
277+
block3:
278+
br block1(v5);
274279
275-
block4:
276-
br block3;
280+
block4:
281+
br block3;
282+
}
277283
}
278284
"#]],
279285
);
@@ -295,27 +301,28 @@ fn if_then_else() {
295301
)
296302
"#,
297303
expect![[r#"
298-
module noname
304+
module noname {
299305
300-
pub fn main() -> i32 {
301-
block0:
302-
v1 = const.i32 2 : i32;
303-
v2 = neq v1, 0 : i1;
304-
condbr v2, block2, block4;
306+
pub fn main() -> i32 {
307+
block0:
308+
v1 = const.i32 2 : i32;
309+
v2 = neq v1, 0 : i1;
310+
condbr v2, block2, block4;
305311
306-
block1(v0: i32):
307-
ret v0;
312+
block1(v0: i32):
313+
ret v0;
308314
309-
block2:
310-
v4 = const.i32 3 : i32;
311-
br block3(v4);
315+
block2:
316+
v4 = const.i32 3 : i32;
317+
br block3(v4);
312318
313-
block3(v3: i32):
314-
br block1(v3);
319+
block3(v3: i32):
320+
br block1(v3);
315321
316-
block4:
317-
v5 = const.i32 5 : i32;
318-
br block3(v5);
322+
block4:
323+
v5 = const.i32 5 : i32;
324+
br block3(v5);
325+
}
319326
}
320327
"#]],
321328
);
@@ -336,23 +343,24 @@ fn global_var() {
336343
)
337344
"#,
338345
expect![[r#"
339-
module noname
346+
module noname {
340347
341-
const $0 = 0x0000002a;
348+
const $0 = 0x0000002a;
342349
343-
global external @MyGlobalVal : i32 = $0 { id = 0 };
350+
global external @MyGlobalVal : i32 = $0 { id = 0 };
344351
345-
pub fn main() {
346-
block0:
347-
v0 = global.load (@MyGlobalVal) as *mut i8 : i32;
348-
v1 = const.i32 9 : i32;
349-
v2 = add.wrapping v0, v1 : i32;
350-
v3 = global.symbol @MyGlobalVal : *mut i32;
351-
store v3, v2;
352-
br block1;
352+
pub fn main() {
353+
block0:
354+
v0 = global.load (@MyGlobalVal) as *mut i8 : i32;
355+
v1 = const.i32 9 : i32;
356+
v2 = add.wrapping v0, v1 : i32;
357+
v3 = global.symbol @MyGlobalVal : *mut i32;
358+
store v3, v2;
359+
br block1;
353360
354-
block1:
355-
ret;
361+
block1:
362+
ret;
363+
}
356364
}
357365
"#]],
358366
);

frontend-wasm/tests/expected/add.hir

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,22 @@
1-
module noname
1+
module noname {
22

3-
const $0 = 0x00100000;
3+
const $0 = 0x00100000;
44

5-
global external @__stack_pointer : i32 = $0 { id = 0 };
6-
global external @gv1 : i32 = $0 { id = 1 };
7-
global external @gv2 : i32 = $0 { id = 2 };
5+
global external @__stack_pointer : i32 = $0 { id = 0 };
6+
global external @gv1 : i32 = $0 { id = 1 };
7+
global external @gv2 : i32 = $0 { id = 2 };
88

9-
pub fn __main() -> i32 {
10-
block0:
11-
v1 = const.i32 1 : i32;
12-
v2 = const.i32 2 : i32;
13-
v3 = call noname::add(v1, v2) : i32;
14-
ret v3;
15-
}
9+
pub fn __main() -> i32 {
10+
block0:
11+
v1 = const.i32 1 : i32;
12+
v2 = const.i32 2 : i32;
13+
v3 = call noname::add(v1, v2) : i32;
14+
ret v3;
15+
}
1616

17-
pub fn add(i32, i32) -> i32 {
18-
block0(v0: i32, v1: i32):
19-
v3 = add.wrapping v1, v0 : i32;
20-
ret v3;
17+
pub fn add(i32, i32) -> i32 {
18+
block0(v0: i32, v1: i32):
19+
v3 = add.wrapping v1, v0 : i32;
20+
ret v3;
21+
}
2122
}

0 commit comments

Comments
 (0)