cranelift_codegen/
value_label.rs1use crate::ir::ValueLabel;
2use crate::machinst::Reg;
3use crate::HashMap;
4use alloc::vec::Vec;
5
6#[cfg(feature = "enable-serde")]
7use serde_derive::{Deserialize, Serialize};
8
9#[derive(Debug, Clone, Copy, PartialEq, Eq)]
11#[cfg_attr(feature = "enable-serde", derive(Serialize, Deserialize))]
12pub struct ValueLocRange {
13 pub loc: LabelValueLoc,
15 pub start: u32,
17 pub end: u32,
19}
20
21#[derive(Debug, Clone, Copy, PartialEq, Eq)]
23#[cfg_attr(feature = "enable-serde", derive(Serialize, Deserialize))]
24pub enum LabelValueLoc {
25 Reg(Reg),
27 CFAOffset(i64),
29}
30
31pub type ValueLabelsRanges = HashMap<ValueLabel, Vec<ValueLocRange>>;