Skip to main content

luaur_code_gen/functions/
compute_block_live_in_reg_set.rs

1use crate::functions::visit_vm_reg_defs_uses_ir_visit_use_def_alt_b::visit_vm_reg_defs_uses_t_ir_function_ir_block;
2use crate::records::block_vm_reg_live_in_computation::BlockVmRegLiveInComputation;
3use crate::records::ir_block::IrBlock;
4use crate::records::ir_function::IrFunction;
5use crate::records::register_set::RegisterSet;
6
7pub fn compute_block_live_in_reg_set(
8    function: &mut IrFunction,
9    block: &IrBlock,
10    def_rs: &mut RegisterSet,
11    captured_regs: &mut [u64; 4],
12) -> RegisterSet {
13    let mut visitor = BlockVmRegLiveInComputation::new(def_rs, captured_regs);
14    visit_vm_reg_defs_uses_t_ir_function_ir_block(&mut visitor, function, block);
15    visitor.in_rs
16}