mirror of
https://github.com/kmc7468/cs420.git
synced 2025-12-15 23:18:48 +00:00
Update examples with new testcase
This commit is contained in:
6
examples/c/sizeof4.c
Normal file
6
examples/c/sizeof4.c
Normal file
@@ -0,0 +1,6 @@
|
||||
int main()
|
||||
{
|
||||
int a = 3;
|
||||
int b = sizeof(!(a++));
|
||||
return a + b;
|
||||
}
|
||||
20
examples/ir0/sizeof4.ir
Normal file
20
examples/ir0/sizeof4.ir
Normal file
@@ -0,0 +1,20 @@
|
||||
|
||||
fun i32 @main () {
|
||||
init:
|
||||
bid: b0
|
||||
allocations:
|
||||
%l0:i32:a
|
||||
%l1:i32:b
|
||||
|
||||
block b0:
|
||||
%b0:i0:unit = store 3:i32 %l0:i32*
|
||||
%b0:i1:i32 = typecast 4:u64 to i32
|
||||
%b0:i2:unit = store %b0:i1:i32 %l1:i32*
|
||||
%b0:i3:i32 = load %l0:i32*
|
||||
%b0:i4:i32 = load %l1:i32*
|
||||
%b0:i5:i32 = add %b0:i3:i32 %b0:i4:i32
|
||||
ret %b0:i5:i32
|
||||
|
||||
block b1:
|
||||
ret 0:i32
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
struct %t0 : { b:[4 x [5 x i32]] }
|
||||
struct %t1 : { a:i8, %anon:struct %t0, c:f64 }
|
||||
struct %t0 : { b:[4 x [5 x i32]] }
|
||||
|
||||
fun unit @init (i32, i32, [5 x i32]*) {
|
||||
init:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
struct Sub : { m1:i64, m2:i64, m3:i64, m4:i64 }
|
||||
struct Big : { m1:struct Sub, m2:struct Sub, m3:struct Sub }
|
||||
struct Sub : { m1:i64, m2:i64, m3:i64, m4:i64 }
|
||||
|
||||
fun struct Big @foo (struct Big) {
|
||||
init:
|
||||
|
||||
17
examples/ir1/sizeof4.ir
Normal file
17
examples/ir1/sizeof4.ir
Normal file
@@ -0,0 +1,17 @@
|
||||
|
||||
fun i32 @main () {
|
||||
init:
|
||||
bid: b0
|
||||
allocations:
|
||||
%l0:i32:a
|
||||
%l1:i32:b
|
||||
|
||||
block b0:
|
||||
%b0:i0:unit = store 3:i32 %l0:i32*
|
||||
%b0:i1:i32 = typecast 4:u64 to i32
|
||||
%b0:i2:unit = store %b0:i1:i32 %l1:i32*
|
||||
%b0:i3:i32 = load %l0:i32*
|
||||
%b0:i4:i32 = load %l1:i32*
|
||||
%b0:i5:i32 = add %b0:i3:i32 %b0:i4:i32
|
||||
ret %b0:i5:i32
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
struct %t1 : { a:i8, %anon:struct %t0, c:i64 }
|
||||
struct %t0 : { b:[4 x i32] }
|
||||
struct %t1 : { a:i8, %anon:struct %t0, c:i64 }
|
||||
|
||||
fun i32 @main () {
|
||||
init:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
struct Big : { m1:struct Sub, m2:struct Sub, m3:struct Sub }
|
||||
struct Sub : { m1:i64, m2:i64, m3:i64, m4:i64 }
|
||||
struct Big : { m1:struct Sub, m2:struct Sub, m3:struct Sub }
|
||||
|
||||
fun struct Big @foo (struct Big) {
|
||||
init:
|
||||
|
||||
17
examples/ir2/sizeof4.ir
Normal file
17
examples/ir2/sizeof4.ir
Normal file
@@ -0,0 +1,17 @@
|
||||
|
||||
fun i32 @main () {
|
||||
init:
|
||||
bid: b0
|
||||
allocations:
|
||||
%l0:i32:a
|
||||
%l1:i32:b
|
||||
|
||||
block b0:
|
||||
%b0:i0:unit = nop
|
||||
%b0:i1:i32 = typecast 4:u64 to i32
|
||||
%b0:i2:unit = nop
|
||||
%b0:i3:unit = nop
|
||||
%b0:i4:unit = nop
|
||||
%b0:i5:i32 = add 3:i32 %b0:i1:i32
|
||||
ret %b0:i5:i32
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
struct %t0 : { b:[4 x [5 x i32]] }
|
||||
struct %t1 : { a:i8, %anon:struct %t0, c:f64 }
|
||||
struct %t0 : { b:[4 x [5 x i32]] }
|
||||
|
||||
fun unit @init (i32, i32, [5 x i32]*) {
|
||||
init:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
struct Sub : { m1:i64, m2:i64, m3:i64, m4:i64 }
|
||||
struct Big : { m1:struct Sub, m2:struct Sub, m3:struct Sub }
|
||||
struct Sub : { m1:i64, m2:i64, m3:i64, m4:i64 }
|
||||
|
||||
fun struct Big @foo (struct Big) {
|
||||
init:
|
||||
|
||||
12
examples/ir3/sizeof4.ir
Normal file
12
examples/ir3/sizeof4.ir
Normal file
@@ -0,0 +1,12 @@
|
||||
|
||||
fun i32 @main () {
|
||||
init:
|
||||
bid: b0
|
||||
allocations:
|
||||
|
||||
|
||||
block b0:
|
||||
%b0:i0:i32 = typecast 4:u64 to i32
|
||||
%b0:i1:i32 = add 3:i32 %b0:i0:i32
|
||||
ret %b0:i1:i32
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
struct %t0 : { b:[4 x [5 x i32]] }
|
||||
struct %t1 : { a:i8, %anon:struct %t0, c:f64 }
|
||||
struct %t0 : { b:[4 x [5 x i32]] }
|
||||
|
||||
fun unit @init (i32, i32, [5 x i32]*) {
|
||||
init:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
struct %t1 : { a:i8, %anon:struct %t0, c:i64 }
|
||||
struct %t0 : { b:[4 x i32] }
|
||||
struct %t1 : { a:i8, %anon:struct %t0, c:i64 }
|
||||
|
||||
fun i32 @main () {
|
||||
init:
|
||||
|
||||
12
examples/ir4/sizeof4.ir
Normal file
12
examples/ir4/sizeof4.ir
Normal file
@@ -0,0 +1,12 @@
|
||||
|
||||
fun i32 @main () {
|
||||
init:
|
||||
bid: b0
|
||||
allocations:
|
||||
|
||||
|
||||
block b0:
|
||||
%b0:i0:i32 = typecast 4:u64 to i32
|
||||
%b0:i1:i32 = add 3:i32 %b0:i0:i32
|
||||
ret %b0:i1:i32
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
struct Sub : { m1:i64, m2:i64, m3:i64, m4:i64 }
|
||||
struct Big : { m1:struct Sub, m2:struct Sub, m3:struct Sub }
|
||||
struct Sub : { m1:i64, m2:i64, m3:i64, m4:i64 }
|
||||
|
||||
fun struct Big @foo (struct Big) {
|
||||
init:
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
|
||||
fun i32 @func_0 () {
|
||||
init:
|
||||
bid: b0
|
||||
|
||||
12
examples/opt/sizeof4.ir
Normal file
12
examples/opt/sizeof4.ir
Normal file
@@ -0,0 +1,12 @@
|
||||
|
||||
fun i32 @main () {
|
||||
init:
|
||||
bid: b0
|
||||
allocations:
|
||||
|
||||
|
||||
block b0:
|
||||
%b0:i0:i32 = typecast 4:u64 to i32
|
||||
%b0:i1:i32 = add 3:i32 %b0:i0:i32
|
||||
ret %b0:i1:i32
|
||||
}
|
||||
@@ -431,7 +431,7 @@ impl fmt::Display for JumpArg {
|
||||
self.bid,
|
||||
self.args
|
||||
.iter()
|
||||
.format_with(", ", |a, f| f(&format_args!("{}:{}", a, a.dtype())))
|
||||
.format_with(", ", |a, f| f(&format_args!("{}", a)))
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user