From e5ed3b20351a2715fe88d9a5dbcc8e6757fe96aa Mon Sep 17 00:00:00 2001 From: lemon Date: Wed, 24 Aug 2022 06:46:23 +0200 Subject: llvm defer and more --- src/irgen.cff | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src/irgen.cff') diff --git a/src/irgen.cff b/src/irgen.cff index e157406..c0ea1e1 100644 --- a/src/irgen.cff +++ b/src/irgen.cff @@ -70,7 +70,7 @@ struct InstStream { } -fn genblock(S *InstStream, block [#]Stmt) void; +fn genblock(S *InstStream, block Block) void; fn genexpr(S *InstStream, ex *Expr) IRValue { static tmpid int = 0; @@ -343,7 +343,7 @@ fn genstmt(S *InstStream, stmt *Stmt) void { let beqz = S->mkinst1({:beqz}, :Val(t)); S->push(beqz); genblock(S, If.t); - if If.f.#ptr { + if If.f.sts.#ptr { let b = S->mkinst({:b}, 0); S->push(b); beqz.branch = S->pushnop(); @@ -407,11 +407,11 @@ fn genstmt(S *InstStream, stmt *Stmt) void { assert(jumpto != #null, "no cont label %d", id); S->push(S->mkinst({:b, .branch: *jumpto},0)); - case Return retex; - if retex->empty() { + case Return *ret; + if ret.ex->empty() { S->push(S->mkinst({:ret0}, 0)); } else { - let inst = S->mkinst1({:ret}, :Val(genexpr(S, &retex.Some))); + let inst = S->mkinst1({:ret}, :Val(genexpr(S, &ret.ex.Some))); S->push(inst); } @@ -420,8 +420,8 @@ fn genstmt(S *InstStream, stmt *Stmt) void { } } -fn genblock(S *InstStream, block [#]Stmt) void { - foreach_ptr(st, _, block) { +fn genblock(S *InstStream, block Block) void { + foreach_ptr(st, _, block.sts) { genstmt(S, st); } } -- cgit v1.2.3