use crate::enums::ir_block_kind::IrBlockKind;
use crate::records::label::Label;
pub const kBlockNoStartPc: u32 = !0u32;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[repr(C)]
pub struct IrBlock {
pub kind: IrBlockKind,
pub flags: u8,
pub use_count: u16,
pub start: u32,
pub finish: u32,
pub sortkey: u32,
pub chainkey: u32,
pub expected_next_block: u32,
pub startpc: u32,
pub label: Label,
}
impl Default for IrBlock {
fn default() -> Self {
Self {
kind: IrBlockKind::Dead,
flags: 0,
use_count: 0,
start: !0u32,
finish: !0u32,
sortkey: !0u32,
chainkey: 0,
expected_next_block: !0u32,
startpc: kBlockNoStartPc,
label: Label {
id: 0,
location: !0u32,
},
}
}
}