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 %t1 : { a:i8, %anon:struct %t0, c:f64 }
|
||||||
|
struct %t0 : { b:[4 x [5 x i32]] }
|
||||||
|
|
||||||
fun unit @init (i32, i32, [5 x i32]*) {
|
fun unit @init (i32, i32, [5 x i32]*) {
|
||||||
init:
|
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 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) {
|
fun struct Big @foo (struct Big) {
|
||||||
init:
|
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 %t0 : { b:[4 x i32] }
|
||||||
|
struct %t1 : { a:i8, %anon:struct %t0, c:i64 }
|
||||||
|
|
||||||
fun i32 @main () {
|
fun i32 @main () {
|
||||||
init:
|
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 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) {
|
fun struct Big @foo (struct Big) {
|
||||||
init:
|
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 %t1 : { a:i8, %anon:struct %t0, c:f64 }
|
||||||
|
struct %t0 : { b:[4 x [5 x i32]] }
|
||||||
|
|
||||||
fun unit @init (i32, i32, [5 x i32]*) {
|
fun unit @init (i32, i32, [5 x i32]*) {
|
||||||
init:
|
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 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) {
|
fun struct Big @foo (struct Big) {
|
||||||
init:
|
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 %t1 : { a:i8, %anon:struct %t0, c:f64 }
|
||||||
|
struct %t0 : { b:[4 x [5 x i32]] }
|
||||||
|
|
||||||
fun unit @init (i32, i32, [5 x i32]*) {
|
fun unit @init (i32, i32, [5 x i32]*) {
|
||||||
init:
|
init:
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
struct %t1 : { a:i8, %anon:struct %t0, c:i64 }
|
|
||||||
struct %t0 : { b:[4 x i32] }
|
struct %t0 : { b:[4 x i32] }
|
||||||
|
struct %t1 : { a:i8, %anon:struct %t0, c:i64 }
|
||||||
|
|
||||||
fun i32 @main () {
|
fun i32 @main () {
|
||||||
init:
|
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 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) {
|
fun struct Big @foo (struct Big) {
|
||||||
init:
|
init:
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
|
||||||
fun i32 @func_0 () {
|
fun i32 @func_0 () {
|
||||||
init:
|
init:
|
||||||
bid: b0
|
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.bid,
|
||||||
self.args
|
self.args
|
||||||
.iter()
|
.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