mirror of
https://github.com/kmc7468/cs420.git
synced 2025-12-14 22:38:46 +00:00
Update skeleton
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
int main() {
|
||||
char a = -1;
|
||||
char a = 127;
|
||||
char b = a << 1;
|
||||
unsigned char c = (unsigned char)b >> 1;
|
||||
|
||||
|
||||
44
examples/gvn/gvn.input.ir
Normal file
44
examples/gvn/gvn.input.ir
Normal file
@@ -0,0 +1,44 @@
|
||||
fun unit @sink {
|
||||
init:
|
||||
bid: b0
|
||||
allocations:
|
||||
|
||||
block b0:
|
||||
%b0:p0:i32
|
||||
ret unit:unit
|
||||
}
|
||||
|
||||
fun i32 @gvn {
|
||||
init:
|
||||
bid: b0
|
||||
allocations:
|
||||
|
||||
block b0:
|
||||
%b0:p0:i32:a
|
||||
%b0:i0:i32:b = add %b0:p0:i32 1:i32
|
||||
br undef:i1 b1() b2()
|
||||
|
||||
block b1:
|
||||
%b1:i0:i32:b = add %b0:p0:i32 1:i32
|
||||
%b1:i1:i32:c = add %b1:i0:i32 2:i32
|
||||
|
||||
%b1:i2:unit = call @sink(%b1:i0:i32)
|
||||
|
||||
j b3()
|
||||
|
||||
block b2:
|
||||
%b2:i0:i32:c = add %b0:i0:i32 2:i32
|
||||
|
||||
%b2:i1:unit = call @sink(%b2:i0:i32)
|
||||
|
||||
j b3()
|
||||
|
||||
block b3:
|
||||
%b3:i0:i32:b = add %b0:p0:i32 1:i32
|
||||
%b3:i1:i32:c = add %b3:i0:i32 2:i32
|
||||
|
||||
%b3:i2:unit = call @sink(%b3:i0:i32)
|
||||
%b3:i3:unit = call @sink(%b3:i1:i32)
|
||||
|
||||
ret 0:i32
|
||||
}
|
||||
46
examples/gvn/gvn.output.ir
Normal file
46
examples/gvn/gvn.output.ir
Normal file
@@ -0,0 +1,46 @@
|
||||
fun unit @sink {
|
||||
init:
|
||||
bid: b0
|
||||
allocations:
|
||||
|
||||
block b0:
|
||||
%b0:p0:i32
|
||||
ret unit:unit
|
||||
}
|
||||
|
||||
fun i32 @gvn {
|
||||
init:
|
||||
bid: b0
|
||||
allocations:
|
||||
|
||||
block b0:
|
||||
%b0:p0:i32:a
|
||||
%b0:i0:i32:b = add %b0:p0:i32 1:i32
|
||||
br undef:i1 b1() b2()
|
||||
|
||||
block b1:
|
||||
%b1:i0:i32:b = add %b0:p0:i32 1:i32
|
||||
%b1:i1:i32:c = add %b0:i0:i32 2:i32
|
||||
|
||||
%b1:i2:unit = call @sink(%b0:i0:i32)
|
||||
|
||||
j b3(%b1:i1:i32)
|
||||
|
||||
block b2:
|
||||
%b2:i0:i32:c = add %b0:i0:i32 2:i32
|
||||
|
||||
%b2:i1:unit = call @sink(%b2:i0:i32)
|
||||
|
||||
j b3(%b2:i0:i32)
|
||||
|
||||
block b3:
|
||||
%b3:p0:i32
|
||||
|
||||
%b3:i0:i32:b = add %b0:p0:i32 1:i32
|
||||
%b3:i1:i32:c = add %b0:i0:i32 2:i32
|
||||
|
||||
%b3:i2:unit = call @sink(%b0:i0:i32)
|
||||
%b3:i3:unit = call @sink(%b3:p0:i32)
|
||||
|
||||
ret 0:i32
|
||||
}
|
||||
@@ -45,17 +45,15 @@ block b0:
|
||||
%b0:i3:unit = nop
|
||||
%b0:i4:i32 = load %l0:*i32
|
||||
|
||||
j b1(37:i32)
|
||||
j b1()
|
||||
|
||||
block b1:
|
||||
%b1:p0:i32:x
|
||||
|
||||
%b1:i0:i32 = load %l0:*i32
|
||||
|
||||
%b1:i1:unit = call @sink(undef:i32)
|
||||
%b1:i2:unit = call @sink(42:i32)
|
||||
%b1:i3:unit = call @sink(37:i32)
|
||||
%b1:i4:unit = call @sink(%b1:p0:i32)
|
||||
%b1:i4:unit = call @sink(37:i32)
|
||||
|
||||
ret 0:i32
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user