pub struct FunctionInfo { /* private fields */ }Expand description
What emission decided about one function.
§Examples
use backend_lang::mir::Function;
use backend_lang::x86_64::{op, Emitter, SYSV};
let mut f = Function::new("f", &SYSV);
let b = f.block()?;
f.push(b, op::RET, &[])?;
let mut e = Emitter::new();
let info = e.function(&f)?;
assert_eq!(info.frame().alloc(), 0);Implementations§
Source§impl FunctionInfo
impl FunctionInfo
Sourcepub fn frame(&self) -> &FrameLayout
pub fn frame(&self) -> &FrameLayout
The frame as laid out, including any hidden slots edge moves needed (numbered after the function’s own).
§Examples
use backend_lang::mir::{Function, SlotKind};
use backend_lang::x86_64::{op, Emitter, SYSV};
let mut f = Function::new("f", &SYSV);
let s = f.stack_slot(SlotKind::Local { size: 8, align: 8 })?;
let b = f.block()?;
f.push(b, op::RET, &[])?;
let info = Emitter::new().function(&f)?;
assert!(info.frame().slot_offset(s).is_some());Trait Implementations§
Source§impl Clone for FunctionInfo
impl Clone for FunctionInfo
Source§impl Debug for FunctionInfo
impl Debug for FunctionInfo
impl Eq for FunctionInfo
Source§impl PartialEq for FunctionInfo
impl PartialEq for FunctionInfo
impl StructuralPartialEq for FunctionInfo
Auto Trait Implementations§
impl Freeze for FunctionInfo
impl RefUnwindSafe for FunctionInfo
impl Send for FunctionInfo
impl Sync for FunctionInfo
impl Unpin for FunctionInfo
impl UnsafeUnpin for FunctionInfo
impl UnwindSafe for FunctionInfo
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more