luaur_code_gen/methods/
const_prop_state_try_get_reg_link.rs1use crate::enums::ir_op_kind::IrOpKind;
2use crate::records::const_prop_state::ConstPropState;
3use crate::records::ir_op::IrOp;
4use crate::records::register_link::RegisterLink;
5
6impl ConstPropState {
7 pub fn try_get_reg_link(&mut self, inst_op: IrOp) -> Option<*mut RegisterLink> {
8 if inst_op.kind() != IrOpKind::Inst {
9 return None;
10 }
11 if let Some(link) = self.inst_link.find(&inst_op.index()) {
12 if link.version < self.regs[link.reg as usize].version {
13 return None;
14 }
15 return Some(link as *const RegisterLink as *mut RegisterLink);
16 }
17 None
18 }
19}