luaur-code-gen 0.1.0

Native (A64/X64) code generation for Luau (Rust).
Documentation
use crate::enums::ir_op_kind::IrOpKind;
use crate::macros::op_a::op_a;
use crate::records::ir_inst::IrInst;
use crate::records::ir_value_location_tracking::IrValueLocationTracking;

impl IrValueLocationTracking {
    pub fn can_rematerialize_arguments(&mut self, inst: &mut IrInst) -> bool {
        if self.can_be_rematerialized(inst.cmd) && op_a(inst).kind() == IrOpKind::Inst {
            let function = unsafe { &mut *self.function };
            let dep_inst = function.inst_op(op_a(inst));

            if dep_inst.last_use != function.get_inst_index(inst) {
                return true;
            }
        }

        false
    }
}