use crate::enums::ir_const_kind::IrConstKind;
use crate::records::host_ir_hooks::HostIrHooks;
use crate::records::ir_function::IrFunction;
use crate::records::ir_op::IrOp;
use alloc::vec::Vec;
use luaur_common::records::dense_hash_map::DenseHashMap;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct LoopInfo {
pub step: IrOp,
pub startpc: i32,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct ConstantKey {
pub kind: IrConstKind,
pub value: u64,
}
#[derive(Debug)]
pub struct IrBuilder {
pub host_hooks: *const HostIrHooks, pub in_terminated_block: bool,
pub interrupt_requested: bool,
pub active_fastcall_fallback: bool,
pub fastcall_fallback_return: IrOp,
pub cmd_skip_target: i32,
pub function: IrFunction,
pub active_block_idx: u32,
pub inst_index_to_block: Vec<u32>,
pub numeric_loop_stack: Vec<LoopInfo>,
pub constant_map: DenseHashMap<ConstantKey, u32>,
}