luaur_code_gen/functions/
kill_ir_utils_alt_b.rs1use crate::enums::ir_cmd::IrCmd;
2use crate::functions::kill_ir_utils::kill_ir_function_ir_inst;
3use crate::macros::codegen_assert::CODEGEN_ASSERT;
4use crate::records::ir_function::IrFunction;
5use crate::records::ir_inst::IrInst;
6
7pub fn kill_ir_function_u32_u32(function: &mut IrFunction, start: u32, end: u32) {
8 let mut i = end as i64;
10 while i >= start as i64 {
11 CODEGEN_ASSERT!((i as usize) < function.instructions.len());
12 let curr: *mut IrInst = &mut function.instructions[i as usize];
13
14 if unsafe { (*curr).cmd } == IrCmd::NOP {
15 i -= 1;
16 continue;
17 }
18
19 if unsafe { (*curr).use_count } != 0 {
22 i -= 1;
23 continue;
24 }
25
26 kill_ir_function_ir_inst(function, unsafe { &mut *curr });
27 i -= 1;
28 }
29}