mirror of
https://github.com/kmc7468/cs420.git
synced 2025-12-15 23:18:48 +00:00
Prepare for Spring 2025.
This commit is contained in:
@@ -17,10 +17,11 @@ block b0:
|
||||
%b0:i1:unit = nop
|
||||
%b0:i2:unit = nop
|
||||
%b0:i3:unit = nop
|
||||
j b2(0:i32)
|
||||
j b2(0:i32, undef:i32)
|
||||
|
||||
block b2:
|
||||
%b2:p0:i32:i
|
||||
%b2:p1:i32:j
|
||||
%b2:i0:unit = nop
|
||||
%b2:i1:unit = nop
|
||||
%b2:i2:u1 = cmp lt %b2:p0:i32 %b0:p0:i32
|
||||
@@ -64,7 +65,7 @@ block b10:
|
||||
%b10:i0:unit = nop
|
||||
%b10:i1:i32 = add %b2:p0:i32 1:i32
|
||||
%b10:i2:unit = nop
|
||||
j b2(%b10:i1:i32)
|
||||
j b2(%b10:i1:i32, %b7:p0:i32)
|
||||
}
|
||||
|
||||
fun i32 @main () {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -30,18 +30,19 @@ block b2:
|
||||
%b2:i1:unit = nop
|
||||
%b2:i2:i32 = add 2:i32 5:i32
|
||||
%b2:i3:unit = nop
|
||||
j b3(2:i32, %b2:i2:i32)
|
||||
j b3(2:i32, undef:i32, %b2:i2:i32)
|
||||
|
||||
block b3:
|
||||
%b3:p0:i32:p
|
||||
%b3:p1:i32:t1
|
||||
%b3:p1:i32:t0
|
||||
%b3:p2:i32:t1
|
||||
%b3:i0:unit = nop
|
||||
%b3:i1:unit = nop
|
||||
%b3:i2:i32 = load @nonce:i32*
|
||||
%b3:i3:i32 = mod %b3:i2:i32 100:i32
|
||||
%b3:i4:unit = nop
|
||||
%b3:i5:unit = nop
|
||||
j b8(0:i32, %b3:p0:i32)
|
||||
j b8(0:i32, %b3:p0:i32, undef:i32)
|
||||
|
||||
block b4:
|
||||
%b4:i0:unit = nop
|
||||
@@ -62,11 +63,12 @@ block b6:
|
||||
%b6:p1:i32:t0
|
||||
%b6:i0:unit = nop
|
||||
%b6:i1:unit = nop
|
||||
j b3(%b6:p0:i32, %b6:p1:i32)
|
||||
j b3(%b6:p0:i32, %b6:p1:i32, %b6:p1:i32)
|
||||
|
||||
block b8:
|
||||
%b8:p0:i32:i
|
||||
%b8:p1:i32:p
|
||||
%b8:p2:i32:t2
|
||||
%b8:i0:unit = nop
|
||||
%b8:i1:unit = nop
|
||||
%b8:i2:u1 = cmp lt %b8:p0:i32 %b3:i3:i32
|
||||
@@ -92,7 +94,7 @@ block b12:
|
||||
block b13:
|
||||
%b13:i0:unit = nop
|
||||
%b13:i1:unit = nop
|
||||
%b13:i2:i32 = add %b8:p1:i32 %b3:p1:i32
|
||||
%b13:i2:i32 = add %b8:p1:i32 %b3:p2:i32
|
||||
%b13:i3:unit = nop
|
||||
j b14(%b13:i2:i32)
|
||||
|
||||
@@ -121,5 +123,5 @@ block b17:
|
||||
%b17:p0:i32:i
|
||||
%b17:p1:i32:t2
|
||||
%b17:i0:unit = nop
|
||||
j b8(%b17:p0:i32, %b14:p0:i32)
|
||||
j b8(%b17:p0:i32, %b14:p0:i32, %b17:p1:i32)
|
||||
}
|
||||
|
||||
@@ -26,12 +26,13 @@ block b1:
|
||||
|
||||
block b2:
|
||||
%b2:i0:unit = nop
|
||||
j b6(1:i32, 0:i32, 1:i32)
|
||||
j b6(1:i32, 0:i32, 1:i32, 0:i32)
|
||||
|
||||
block b6:
|
||||
%b6:p0:i32:i
|
||||
%b6:p1:i32:t1
|
||||
%b6:p2:i32:t2
|
||||
%b6:p3:i32:next_term
|
||||
%b6:i0:unit = nop
|
||||
%b6:i1:unit = nop
|
||||
%b6:i2:u1 = cmp lt %b6:p0:i32 %b0:p0:i32
|
||||
@@ -49,7 +50,7 @@ block b7:
|
||||
%b7:i8:unit = nop
|
||||
%b7:i9:i32 = add %b6:p0:i32 1:i32
|
||||
%b7:i10:unit = nop
|
||||
j b6(%b7:i9:i32, %b6:p2:i32, %b7:i2:i32)
|
||||
j b6(%b7:i9:i32, %b6:p2:i32, %b7:i2:i32, %b7:i2:i32)
|
||||
|
||||
block b9:
|
||||
%b9:i0:unit = nop
|
||||
|
||||
@@ -26,12 +26,13 @@ block b1:
|
||||
|
||||
block b2:
|
||||
%b2:i0:unit = nop
|
||||
j b5(1:i32, 0:i32, 1:i32)
|
||||
j b5(1:i32, 0:i32, 1:i32, 0:i32)
|
||||
|
||||
block b5:
|
||||
%b5:p0:i32:i
|
||||
%b5:p1:i32:t1
|
||||
%b5:p2:i32:t2
|
||||
%b5:p3:i32:next_term
|
||||
%b5:i0:unit = nop
|
||||
%b5:i1:unit = nop
|
||||
%b5:i2:u1 = cmp lt %b5:p0:i32 %b0:p0:i32
|
||||
@@ -49,7 +50,7 @@ block b6:
|
||||
%b6:i8:unit = nop
|
||||
%b6:i9:i32 = add %b5:p0:i32 1:i32
|
||||
%b6:i10:unit = nop
|
||||
j b5(%b6:i9:i32, %b5:p2:i32, %b6:i2:i32)
|
||||
j b5(%b6:i9:i32, %b5:p2:i32, %b6:i2:i32, %b6:i2:i32)
|
||||
|
||||
block b7:
|
||||
%b7:i0:unit = nop
|
||||
|
||||
@@ -26,12 +26,13 @@ block b1:
|
||||
|
||||
block b2:
|
||||
%b2:i0:unit = nop
|
||||
j b5(1:i32, 0:i32, 1:i32)
|
||||
j b5(1:i32, 0:i32, 1:i32, 0:i32)
|
||||
|
||||
block b5:
|
||||
%b5:p0:i32:i
|
||||
%b5:p1:i32:t1
|
||||
%b5:p2:i32:t2
|
||||
%b5:p3:i32:next_term
|
||||
%b5:i0:unit = nop
|
||||
%b5:i1:unit = nop
|
||||
%b5:i2:i32 = add %b5:p1:i32 %b5:p2:i32
|
||||
@@ -46,7 +47,7 @@ block b5:
|
||||
%b5:i11:unit = nop
|
||||
%b5:i12:unit = nop
|
||||
%b5:i13:u1 = cmp lt %b5:i9:i32 %b0:p0:i32
|
||||
br %b5:i13:u1, b5(%b5:i9:i32, %b5:p2:i32, %b5:i2:i32), b7()
|
||||
br %b5:i13:u1, b5(%b5:i9:i32, %b5:p2:i32, %b5:i2:i32, %b5:i2:i32), b7()
|
||||
|
||||
block b7:
|
||||
%b7:i0:unit = nop
|
||||
|
||||
@@ -11,10 +11,12 @@ init:
|
||||
block b0:
|
||||
%b0:i0:unit = nop
|
||||
%b0:i1:unit = nop
|
||||
j b2(0:i32)
|
||||
j b2(0:i32, undef:i32, undef:i32)
|
||||
|
||||
block b2:
|
||||
%b2:p0:i32:i
|
||||
%b2:p1:i32:i
|
||||
%b2:p2:i32:k
|
||||
%b2:i0:unit = nop
|
||||
%b2:i1:u1 = cmp lt %b2:p0:i32 10:i32
|
||||
br %b2:i1:u1, b3(), b5()
|
||||
@@ -25,7 +27,7 @@ block b3:
|
||||
%b3:i2:unit = nop
|
||||
%b3:i3:i32 = add %b2:p0:i32 1:i32
|
||||
%b3:i4:unit = nop
|
||||
j b2(%b3:i3:i32)
|
||||
j b2(%b3:i3:i32, 0:i32, 0:i32)
|
||||
|
||||
block b5:
|
||||
ret 1:i32
|
||||
|
||||
29
examples/ir2/lost_copy.ir
Normal file
29
examples/ir2/lost_copy.ir
Normal file
@@ -0,0 +1,29 @@
|
||||
|
||||
fun i32 @main () {
|
||||
init:
|
||||
bid: b0
|
||||
allocations:
|
||||
%l0:i32:i
|
||||
%l1:i32:result
|
||||
|
||||
block b0:
|
||||
%b0:i0:unit = nop
|
||||
%b0:i1:unit = nop
|
||||
j b1(0:i32, 0:i32)
|
||||
|
||||
block b1:
|
||||
%b1:p0:i32:i
|
||||
%b1:p1:i32:result
|
||||
%b1:i0:unit = nop
|
||||
%b1:i1:unit = nop
|
||||
%b1:i2:unit = nop
|
||||
%b1:i3:i32 = add %b1:p0:i32 1:i32
|
||||
%b1:i4:unit = nop
|
||||
%b1:i5:unit = nop
|
||||
%b1:i6:u1 = cmp lt %b1:i3:i32 4:i32
|
||||
br %b1:i6:u1, b1(%b1:i3:i32, %b1:p0:i32), b3()
|
||||
|
||||
block b3:
|
||||
%b3:i0:unit = nop
|
||||
ret %b1:p0:i32
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
struct %t1 : { a:i8, %anon:struct %t0, c:f64 }
|
||||
struct %t0 : { b:[4 x [5 x i32]] }
|
||||
struct %t1 : { a:i8, %anon:struct %t0, c:f64 }
|
||||
|
||||
fun unit @init (i32, i32, [5 x i32]*) {
|
||||
init:
|
||||
@@ -19,10 +19,11 @@ block b0:
|
||||
%b0:i1:unit = nop
|
||||
%b0:i2:unit = nop
|
||||
%b0:i3:unit = nop
|
||||
j b2(0:i32)
|
||||
j b2(0:i32, undef:i32)
|
||||
|
||||
block b2:
|
||||
%b2:p0:i32:i
|
||||
%b2:p1:i32:j
|
||||
%b2:i0:unit = nop
|
||||
%b2:i1:unit = nop
|
||||
%b2:i2:u1 = cmp lt %b2:p0:i32 %b0:p0:i32
|
||||
@@ -66,7 +67,7 @@ block b10:
|
||||
%b10:i0:unit = nop
|
||||
%b10:i1:i32 = add %b2:p0:i32 1:i32
|
||||
%b10:i2:unit = nop
|
||||
j b2(%b10:i1:i32)
|
||||
j b2(%b10:i1:i32, %b7:p0:i32)
|
||||
}
|
||||
|
||||
fun i32 @main () {
|
||||
|
||||
35
examples/ir2/swap.ir
Normal file
35
examples/ir2/swap.ir
Normal file
@@ -0,0 +1,35 @@
|
||||
|
||||
fun i32 @main () {
|
||||
init:
|
||||
bid: b0
|
||||
allocations:
|
||||
%l0:i32:a
|
||||
%l1:i32:b
|
||||
%l2:i32:t
|
||||
|
||||
block b0:
|
||||
%b0:i0:unit = nop
|
||||
%b0:i1:unit = nop
|
||||
j b1(1:i32, 2:i32, undef:i32)
|
||||
|
||||
block b1:
|
||||
%b1:p0:i32:a
|
||||
%b1:p1:i32:b
|
||||
%b1:p2:i32:t
|
||||
%b1:i0:unit = nop
|
||||
%b1:i1:unit = nop
|
||||
%b1:i2:unit = nop
|
||||
%b1:i3:unit = nop
|
||||
%b1:i4:unit = nop
|
||||
%b1:i5:unit = nop
|
||||
%b1:i6:unit = nop
|
||||
%b1:i7:u1 = cmp eq %b1:p0:i32 1:i32
|
||||
br %b1:i7:u1, b1(%b1:p1:i32, %b1:p0:i32, %b1:p0:i32), b3()
|
||||
|
||||
block b3:
|
||||
%b3:i0:unit = nop
|
||||
%b3:i1:i32 = mul %b1:p1:i32 10:i32
|
||||
%b3:i2:unit = nop
|
||||
%b3:i3:i32 = add %b3:i1:i32 %b1:p0:i32
|
||||
ret %b3:i3:i32
|
||||
}
|
||||
@@ -45,14 +45,15 @@ block b0:
|
||||
%b0:i30:unit = nop
|
||||
%b0:i31:unit = nop
|
||||
%b0:i32:unit = nop
|
||||
j b2(%b0:i29:i32, 0:i32)
|
||||
j b2(%b0:i29:i32, 0:i32, undef:u1)
|
||||
|
||||
block b2:
|
||||
%b2:p0:i32:temp
|
||||
%b2:p1:i32:i
|
||||
%b2:p2:u1:t0
|
||||
%b2:i0:unit = nop
|
||||
%b2:i1:u1 = cmp lt %b2:p1:i32 10:i32
|
||||
br %b2:i1:u1, b3(), b5()
|
||||
br %b2:i1:u1, b3(), b5(%b2:p2:u1)
|
||||
|
||||
block b3:
|
||||
%b3:i0:unit = nop
|
||||
@@ -60,6 +61,7 @@ block b3:
|
||||
br %b3:i1:u1, b9(), b10()
|
||||
|
||||
block b5:
|
||||
%b5:p0:u1:t0
|
||||
%b5:i0:unit = nop
|
||||
switch %b2:p0:i32 default b13(%b2:p0:i32) [
|
||||
1:i32 b14()
|
||||
@@ -73,7 +75,7 @@ block b7:
|
||||
%b7:i4:unit = nop
|
||||
%b7:i5:i32 = add %b2:p1:i32 1:i32
|
||||
%b7:i6:unit = nop
|
||||
j b2(%b7:i2:i32, %b7:i5:i32)
|
||||
j b2(%b7:i2:i32, %b7:i5:i32, %b11:p0:u1)
|
||||
|
||||
block b9:
|
||||
%b9:i0:unit = nop
|
||||
@@ -88,7 +90,7 @@ block b10:
|
||||
block b11:
|
||||
%b11:p0:u1:t0
|
||||
%b11:i0:unit = nop
|
||||
br %b11:p0:u1, b5(), b7()
|
||||
br %b11:p0:u1, b5(%b11:p0:u1), b7()
|
||||
|
||||
block b13:
|
||||
%b13:p0:i32:temp
|
||||
|
||||
@@ -21,7 +21,7 @@ block b1:
|
||||
%b1:p1:i32:i
|
||||
%b1:i0:unit = nop
|
||||
%b1:i1:u1 = cmp lt %b1:p1:i32 100:i32
|
||||
br %b1:i1:u1, b2(), b3(%b1:p0:i32)
|
||||
br %b1:i1:u1, b2(), b3(%b1:p0:i32, %b1:p1:i32)
|
||||
|
||||
block b2:
|
||||
%b2:i0:unit = nop
|
||||
@@ -31,6 +31,7 @@ block b2:
|
||||
|
||||
block b3:
|
||||
%b3:p0:i32:sum
|
||||
%b3:p1:i32:i
|
||||
%b3:i0:unit = nop
|
||||
ret %b3:p0:i32
|
||||
|
||||
@@ -52,7 +53,7 @@ block b5:
|
||||
%b5:i8:unit = nop
|
||||
%b5:i9:i32 = add %b0:i3:i32 2:i32
|
||||
%b5:i10:u1 = cmp eq %b5:i5:i32 %b5:i9:i32
|
||||
br %b5:i10:u1, b3(%b5:i2:i32), b1(%b5:i2:i32, %b5:i5:i32)
|
||||
br %b5:i10:u1, b3(%b5:i2:i32, %b5:i5:i32), b1(%b5:i2:i32, %b5:i5:i32)
|
||||
}
|
||||
|
||||
fun i32 @main () {
|
||||
|
||||
Reference in New Issue
Block a user