pub struct Replacer<'tcx> {
pub(crate) tcx: TyCtxt<'tcx>,
pub(crate) ssatransformer: SSATransformer<'tcx>,
pub(crate) new_local_collection: HashSet<Local>,
}
Fields§
§tcx: TyCtxt<'tcx>
§ssatransformer: SSATransformer<'tcx>
§new_local_collection: HashSet<Local>
Implementations§
source§impl<'tcx> Replacer<'tcx>
impl<'tcx> Replacer<'tcx>
pub fn insert_phi_statment(&mut self, body: &mut Body<'tcx>)
pub fn insert_essa_statement(&mut self, body: &mut Body<'tcx>)
fn essa_process_basic_block(&mut self, bb: BasicBlock, body: &mut Body<'tcx>)
fn extract_condition( &self, place: &Place<'tcx>, switch_block: BasicBlockData<'tcx>, ) -> Option<(Operand<'tcx>, Operand<'tcx>, BinOp)>
fn essa_assign_statement( &mut self, bb: &BasicBlock, switch_block: &BasicBlock, value: u128, discr: &Operand<'tcx>, body: &mut Body<'tcx>, )
pub fn flip(binOp: BinOp) -> BinOp
pub fn rename_variables(&mut self, body: &mut Body<'tcx>)
fn process_basic_block(&mut self, bb: BasicBlock, body: &mut Body<'tcx>)
pub fn process_essa_statments( &mut self, succ_bb: BasicBlock, body: &mut Body<'tcx>, switch_bb: BasicBlock, )
fn process_phi_functions( &mut self, succ_bb: BasicBlock, body: &mut Body<'tcx>, do_bb: BasicBlock, )
pub fn rename_statement(&mut self, bb: BasicBlock, body: &mut Body<'tcx>)
fn rename_terminator(&mut self, bb: BasicBlock, body: &mut Body<'tcx>)
fn replace_rvalue(&mut self, rvalue: &mut Rvalue<'tcx>, bb: &BasicBlock)
fn replace_operand(&mut self, operand: &mut Operand<'tcx>, bb: &BasicBlock)
fn replace_place(&mut self, place: &mut Place<'tcx>, bb: &BasicBlock)
fn rename_local_def( &mut self, place: &mut Place<'tcx>, bb: &BasicBlock, not_phi: bool, )
pub fn dominates_(&self, def_bb: &BasicBlock, bb: &BasicBlock) -> bool
fn update_reachinf_def(&mut self, local: &Local, bb: &BasicBlock)
Auto Trait Implementations§
impl<'tcx> !Freeze for Replacer<'tcx>
impl<'tcx> !RefUnwindSafe for Replacer<'tcx>
impl<'tcx> !Send for Replacer<'tcx>
impl<'tcx> !Sync for Replacer<'tcx>
impl<'tcx> Unpin for Replacer<'tcx>
impl<'tcx> !UnwindSafe for Replacer<'tcx>
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