pub struct CallInliner<'a> { /* private fields */ }Implementations§
Source§impl<'a> CallInliner<'a>
impl<'a> CallInliner<'a>
pub fn add_successor( &mut self, from: BcRef<'a, BcBlock>, to: BcRef<'a, BcBlock>, kind: BcBlockEdgeKind, )
Source§impl<'a> CallInliner<'a>
impl<'a> CallInliner<'a>
Source§impl<'a> CallInliner<'a>
impl<'a> CallInliner<'a>
pub fn call_inliner( caller: &'a mut BcFunction, target: &'a mut BcFunction, call_op: BcOp, ) -> Self
Source§impl<'a> CallInliner<'a>
impl<'a> CallInliner<'a>
pub fn fill_under_call_arguments(&mut self)
Source§impl<'a> CallInliner<'a>
impl<'a> CallInliner<'a>
pub fn find_target_call_projections(&mut self)
Source§impl<'a> CallInliner<'a>
impl<'a> CallInliner<'a>
pub fn get_var_arg_param(&self, get_var_args_op: BcOp, idx: u32) -> BcOp
Source§impl<'a> CallInliner<'a>
impl<'a> CallInliner<'a>
pub fn has_edge(&self, edges: &BcEdges, kind: BcBlockEdgeKind) -> bool
Source§impl<'a> CallInliner<'a>
impl<'a> CallInliner<'a>
pub fn inline_target(&mut self, target_proto_id: u32) -> bool
Source§impl<'a> CallInliner<'a>
impl<'a> CallInliner<'a>
pub fn is_get_var_arg(&mut self, target_op: BcOp) -> bool
Source§impl<'a> CallInliner<'a>
impl<'a> CallInliner<'a>
pub fn is_multi_consumer(&self, inst: &BcRef<'a, BcInst>) -> bool
Source§impl<'a> CallInliner<'a>
impl<'a> CallInliner<'a>
pub fn make_fixed_consumer(&mut self, inst: &mut BcRef<'a, BcInst>)
Source§impl<'a> CallInliner<'a>
impl<'a> CallInliner<'a>
pub fn map_block_op(&mut self, target_block: BcOp) -> BcOp
Source§impl<'a> CallInliner<'a>
impl<'a> CallInliner<'a>
pub fn map_proto_op(&self, target_proto_op: BcOp) -> BcOp
Source§impl<'a> CallInliner<'a>
impl<'a> CallInliner<'a>
pub fn map_to_caller_op(&mut self, target_op: BcOp) -> BcOp
Source§impl<'a> CallInliner<'a>
impl<'a> CallInliner<'a>
pub fn map_to_caller_reg(&self, reg: Reg) -> Reg
Source§impl<'a> CallInliner<'a>
impl<'a> CallInliner<'a>
pub fn map_up_value_op(&mut self, target_upval: BcOp) -> BcOp
Source§impl<'a> CallInliner<'a>
impl<'a> CallInliner<'a>
pub fn migrate_blocks(&mut self, next_block: &mut BcRef<'a, BcBlock>) -> bool
Source§impl<'a> CallInliner<'a>
impl<'a> CallInliner<'a>
pub fn migrate_instructions(&mut self)
Source§impl<'a> CallInliner<'a>
impl<'a> CallInliner<'a>
pub fn replace_call_usages_in_ops(&mut self, ops: &mut BcOps)
Source§impl<'a> CallInliner<'a>
impl<'a> CallInliner<'a>
pub fn replace_call_usages_with_return_phis(&mut self)
Source§impl<'a> CallInliner<'a>
impl<'a> CallInliner<'a>
pub fn replace_get_var_arg( &mut self, caller_block_op: BcOp, target_get_var_args_op: BcOp, )
Source§impl<'a> CallInliner<'a>
impl<'a> CallInliner<'a>
Source§impl<'a> CallInliner<'a>
impl<'a> CallInliner<'a>
Source§impl<'a> CallInliner<'a>
impl<'a> CallInliner<'a>
pub fn set_fallthrough(&mut self, edges: &mut BcEdges, entry: BcOp)
Source§impl<'a> CallInliner<'a>
impl<'a> CallInliner<'a>
pub fn set_return_op(&mut self, idx: u32, op: BcOp)
Source§impl<'a> CallInliner<'a>
impl<'a> CallInliner<'a>
Source§impl<'a> CallInliner<'a>
impl<'a> CallInliner<'a>
pub fn validate_cfg(&self) -> bool
Trait Implementations§
Auto Trait Implementations§
impl<'a> !UnwindSafe for CallInliner<'a>
impl<'a> Freeze for CallInliner<'a>
impl<'a> RefUnwindSafe for CallInliner<'a>
impl<'a> Send for CallInliner<'a>
impl<'a> Sync for CallInliner<'a>
impl<'a> Unpin for CallInliner<'a>
impl<'a> UnsafeUnpin for CallInliner<'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