luaur_code_gen/functions/
kill_ir_utils.rs1use crate::enums::ir_cmd::IrCmd;
2use crate::functions::remove_use::remove_use;
3use crate::macros::codegen_assert::CODEGEN_ASSERT;
4use crate::records::ir_function::IrFunction;
5use crate::records::ir_inst::IrInst;
6use crate::records::ir_op::IrOp;
7
8pub fn kill_ir_function_ir_inst(function: &mut IrFunction, inst: &mut IrInst) {
9 CODEGEN_ASSERT!(inst.use_count == 0);
10
11 inst.cmd = IrCmd::NOP;
12
13 let n = inst.ops.size();
14 for i in 0..n {
15 let op: IrOp = inst.ops.as_slice()[i as usize];
16 remove_use(function, op);
17 }
18 inst.ops.clear();
19}