pub struct RemoveNoopLandingPads;
Expand description
A pass that removes noop landing pads and replaces jumps to them with
UnwindAction::Continue
. This is important because otherwise LLVM generates
terrible code for these.
Implementations§
source§impl RemoveNoopLandingPads
impl RemoveNoopLandingPads
fn is_nop_landing_pad( &self, bb: BasicBlock, body: &Body<'_>, nop_landing_pads: &BitSet<BasicBlock> ) -> bool
fn remove_nop_landing_pads(&self, body: &mut Body<'_>)
Trait Implementations§
source§impl<'tcx> MirPass<'tcx> for RemoveNoopLandingPads
impl<'tcx> MirPass<'tcx> for RemoveNoopLandingPads
source§fn is_enabled(&self, sess: &Session) -> bool
fn is_enabled(&self, sess: &Session) -> bool
Returns
true
if this pass is enabled with the current combination of compiler flags.fn run_pass(&self, _tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>)
fn name(&self) -> &'static str
fn profiler_name(&self) -> &'static str
fn is_mir_dump_enabled(&self) -> bool
Auto Trait Implementations§
impl RefUnwindSafe for RemoveNoopLandingPads
impl Send for RemoveNoopLandingPads
impl Sync for RemoveNoopLandingPads
impl Unpin for RemoveNoopLandingPads
impl UnwindSafe for RemoveNoopLandingPads
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
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 0 bytes