From ba84ebbd89d1dbe431f71b010b2d71214303ae48 Mon Sep 17 00:00:00 2001 From: lemon Date: Sat, 24 Jun 2023 23:37:14 +0200 Subject: fix regalloc thinking some ins are dead by adding ins.keep --- regalloc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'regalloc.c') diff --git a/regalloc.c b/regalloc.c index ae81fcf..6aea986 100644 --- a/regalloc.c +++ b/regalloc.c @@ -688,7 +688,7 @@ regalloc(struct function *fn) blk->id = id++; for (int i = 0; i < blk->ins.n; ++i) { struct instr *ins = &instrtab[blk->ins.p[i]]; - if (!ins->reg && insrescls(*ins) && ins->op != Omove && !oiscmp(ins->op)) { + if (!ins->reg && insrescls(*ins) && ins->op != Omove && !ins->keep) { /* dead */ Nop: *ins = mkinstr(Onop,0,); -- cgit v1.2.3