mem2reg and constprob/fold,涉及部分支配树,CFG,新建测试程序,总工作见/doc/lab4_work

LuoHello 2 weeks ago
parent c276d5649f
commit 474ea61045

@ -1,40 +0,0 @@
declare i32 @getint()
declare i32 @getch()
declare i32 @getarray(i32*)
declare void @putint(i32)
declare void @putch(i32)
declare void @putarray(i32, i32*)
declare void @puts(i32*)
declare void @_sysy_starttime(i32)
declare void @_sysy_stoptime(i32)
declare void @starttime()
declare void @stoptime()
declare float @getfloat()
declare void @putfloat(float)
declare i32 @getfarray(float*)
declare void @putfarray(i32, float*)
declare i32* @memset(i32*, i32, i32)
declare i32* @sysy_alloc_i32(i32)
declare float* @sysy_alloc_f32(i32)
declare void @sysy_free_i32(i32*)
declare void @sysy_free_f32(float*)
declare void @sysy_zero_i32(i32*, i32)
declare void @sysy_zero_f32(float*, i32)
define i32 @main() {
entry:
%t0.retval = alloca i32
%t1_x = alloca i32
store i32 0, i32* %t1_x
%t5 = load i32, i32* %t1_x
%t6 = icmp eq i32 %t5, 0
br i1 %t6, label %then.t2, label %else.t3
then.t2:
store i32 5, i32* %t1_x
br label %merge.t4
else.t3:
store i32 7, i32* %t1_x
br label %merge.t4
merge.t4:
%t7 = load i32, i32* %t1_x
ret i32 %t7
}

@ -1,9 +0,0 @@
int main() {
int x = 0;
if (x == 0) {
x = 5;
} else {
x = 7;
}
return x;
}
Loading…
Cancel
Save