use crate::enums::ir_cmd::IrCmd;
use crate::functions::kill_ir_utils::kill_ir_function_ir_inst;
use crate::macros::codegen_assert::CODEGEN_ASSERT;
use crate::records::ir_function::IrFunction;
use crate::records::ir_inst::IrInst;
pub fn kill_ir_function_u32_u32(function: &mut IrFunction, start: u32, end: u32) {
let mut i = end as i64;
while i >= start as i64 {
CODEGEN_ASSERT!((i as usize) < function.instructions.len());
let curr: *mut IrInst = &mut function.instructions[i as usize];
if unsafe { (*curr).cmd } == IrCmd::NOP {
i -= 1;
continue;
}
if unsafe { (*curr).use_count } != 0 {
i -= 1;
continue;
}
kill_ir_function_ir_inst(function, unsafe { &mut *curr });
i -= 1;
}
}