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 --- ir.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'ir.h') diff --git a/ir.h b/ir.h index 60a2ad8..85500d1 100644 --- a/ir.h +++ b/ir.h @@ -109,7 +109,8 @@ enum intrin { struct instr { uchar op, cls; /* operation data class; also result class except for cmp ops (always i4) */ - uchar skip : 1; /* ignore during codegen: forms part of one machine instruction */ + uchar skip : 1, /* ignore during codegen: forms part of one machine instruction */ + keep : 1; /* for codegen, keep instr even if result seems unused */ uchar inplace : 1; /* set (by isel) for instructions which modify its first arg in place */ uchar reg; /* 0 -> no reg; else reg + 1 */ union ref l, r; -- cgit v1.2.3