pub struct BlockEmitter<'a> {
indent: &'a str,
func_args: u8,
callee_args: &'a BTreeMap<u32, u8>,
used_s: &'a mut BTreeSet<usize>,
out: String,
stack: Vec<Expr>,
non_volatile_global_count: u16,
volatile_global_count: u16,
}Fields§
§indent: &'a str§func_args: u8§callee_args: &'a BTreeMap<u32, u8>§used_s: &'a mut BTreeSet<usize>§out: String§stack: Vec<Expr>§non_volatile_global_count: u16§volatile_global_count: u16Implementations§
Source§impl<'a> BlockEmitter<'a>
impl<'a> BlockEmitter<'a>
pub fn new( indent: &'a str, func_args: u8, callee_args: &'a BTreeMap<u32, u8>, used_s: &'a mut BTreeSet<usize>, non_volatile_global_count: u16, volatile_global_count: u16, ) -> Self
pub fn init_stack(&mut self, depth: usize)
pub fn take_output(self) -> String
fn emit_line(&mut self, line: &str)
fn pop(&mut self) -> Expr
fn push(&mut self, e: Expr)
fn stack_slot_get(&self, idx: i8) -> String
fn materialize_all_stack_slots(&mut self)
pub fn emit_inst(&mut self, inst: &Instruction)
pub fn emit_terminator(&mut self, term: BlockTerm, succs: &[usize])
Auto Trait Implementations§
impl<'a> Freeze for BlockEmitter<'a>
impl<'a> RefUnwindSafe for BlockEmitter<'a>
impl<'a> Send for BlockEmitter<'a>
impl<'a> Sync for BlockEmitter<'a>
impl<'a> Unpin for BlockEmitter<'a>
impl<'a> !UnwindSafe for BlockEmitter<'a>
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