Skip to main content

luaur_code_gen/functions/
kill_ir_utils.rs

1use 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}