luaur-code-gen 0.1.0

Native (A64/X64) code generation for Luau (Rust).
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use crate::enums::ir_block_kind::IrBlockKind;
use crate::functions::kill_ir_utils_alt_c::kill_ir_function_ir_block;
use crate::records::ir_block::IrBlock;
use crate::records::ir_function::IrFunction;

pub fn kill_unused_blocks(function: &mut IrFunction) {
    // Start from 1 as the first block is the entry block
    let mut i = 1usize;
    while i < function.blocks.len() {
        let block: *mut IrBlock = &mut function.blocks[i];

        if unsafe { (*block).kind } != IrBlockKind::Dead && unsafe { (*block).use_count } == 0 {
            kill_ir_function_ir_block(function, unsafe { &mut *block });
        }

        i += 1;
    }
}