luaur-code-gen 0.1.3

Native (A64/X64) code generation for Luau (Rust).
Documentation
use crate::enums::ir_block_kind::IrBlockKind;
use crate::enums::ir_op_kind::IrOpKind;
use crate::records::ir_function::IrFunction;
use crate::records::ir_op::IrOp;

pub fn update_last_use_for_op(function: &mut IrFunction, inst_idx: u32, op: IrOp) {
    if op.kind() == IrOpKind::Inst {
        function.instructions[op.index() as usize].last_use = inst_idx;
    } else if op.kind() == IrOpKind::Block {
        let block = &function.blocks[op.index() as usize];
        if block.kind == IrBlockKind::ExitSync {
            if let Some(sync_info) = function.vm_exit_info.find(&inst_idx) {
                let arg_ops = sync_info.arg_ops.clone();
                for arg_op in arg_ops.iter() {
                    update_last_use_for_op(function, inst_idx, *arg_op);
                }
            }
        }
    }
}