Enum llvm_ir::terminator::Terminator
source · pub enum Terminator {
Ret(Ret),
Br(Br),
CondBr(CondBr),
Switch(Switch),
IndirectBr(IndirectBr),
Invoke(Invoke),
Resume(Resume),
Unreachable(Unreachable),
CleanupRet(CleanupRet),
CatchRet(CatchRet),
CatchSwitch(CatchSwitch),
CallBr(CallBr),
}
Expand description
Terminator instructions end a basic block. See LLVM 14 docs on Terminator Instructions
Variants§
Ret(Ret)
Br(Br)
CondBr(CondBr)
Switch(Switch)
IndirectBr(IndirectBr)
Invoke(Invoke)
Resume(Resume)
Unreachable(Unreachable)
CleanupRet(CleanupRet)
CatchRet(CatchRet)
CatchSwitch(CatchSwitch)
CallBr(CallBr)
Implementations§
source§impl Terminator
impl Terminator
sourcepub fn try_get_result(&self) -> Option<&Name>
pub fn try_get_result(&self) -> Option<&Name>
Get the result (destination) of the Terminator
, or None
if the
Terminator
doesn’t have a result (has void type).
Trait Implementations§
source§impl Clone for Terminator
impl Clone for Terminator
source§fn clone(&self) -> Terminator
fn clone(&self) -> Terminator
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for Terminator
impl Debug for Terminator
source§impl Display for Terminator
impl Display for Terminator
source§impl From<Br> for Terminator
impl From<Br> for Terminator
source§fn from(term: Br) -> Terminator
fn from(term: Br) -> Terminator
Converts to this type from the input type.
source§impl From<CallBr> for Terminator
impl From<CallBr> for Terminator
source§fn from(term: CallBr) -> Terminator
fn from(term: CallBr) -> Terminator
Converts to this type from the input type.
source§impl From<CatchRet> for Terminator
impl From<CatchRet> for Terminator
source§fn from(term: CatchRet) -> Terminator
fn from(term: CatchRet) -> Terminator
Converts to this type from the input type.
source§impl From<CatchSwitch> for Terminator
impl From<CatchSwitch> for Terminator
source§fn from(term: CatchSwitch) -> Terminator
fn from(term: CatchSwitch) -> Terminator
Converts to this type from the input type.
source§impl From<CleanupRet> for Terminator
impl From<CleanupRet> for Terminator
source§fn from(term: CleanupRet) -> Terminator
fn from(term: CleanupRet) -> Terminator
Converts to this type from the input type.
source§impl From<CondBr> for Terminator
impl From<CondBr> for Terminator
source§fn from(term: CondBr) -> Terminator
fn from(term: CondBr) -> Terminator
Converts to this type from the input type.
source§impl From<IndirectBr> for Terminator
impl From<IndirectBr> for Terminator
source§fn from(term: IndirectBr) -> Terminator
fn from(term: IndirectBr) -> Terminator
Converts to this type from the input type.
source§impl From<Invoke> for Terminator
impl From<Invoke> for Terminator
source§fn from(term: Invoke) -> Terminator
fn from(term: Invoke) -> Terminator
Converts to this type from the input type.
source§impl From<Resume> for Terminator
impl From<Resume> for Terminator
source§fn from(term: Resume) -> Terminator
fn from(term: Resume) -> Terminator
Converts to this type from the input type.
source§impl From<Ret> for Terminator
impl From<Ret> for Terminator
source§fn from(term: Ret) -> Terminator
fn from(term: Ret) -> Terminator
Converts to this type from the input type.
source§impl From<Switch> for Terminator
impl From<Switch> for Terminator
source§fn from(term: Switch) -> Terminator
fn from(term: Switch) -> Terminator
Converts to this type from the input type.
source§impl From<Unreachable> for Terminator
impl From<Unreachable> for Terminator
source§fn from(term: Unreachable) -> Terminator
fn from(term: Unreachable) -> Terminator
Converts to this type from the input type.
source§impl HasDebugLoc for Terminator
impl HasDebugLoc for Terminator
source§impl PartialEq for Terminator
impl PartialEq for Terminator
source§fn eq(&self, other: &Terminator) -> bool
fn eq(&self, other: &Terminator) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl TryFrom<Terminator> for Br
impl TryFrom<Terminator> for Br
source§impl TryFrom<Terminator> for CallBr
impl TryFrom<Terminator> for CallBr
source§impl TryFrom<Terminator> for CatchRet
impl TryFrom<Terminator> for CatchRet
source§impl TryFrom<Terminator> for CatchSwitch
impl TryFrom<Terminator> for CatchSwitch
source§impl TryFrom<Terminator> for CleanupRet
impl TryFrom<Terminator> for CleanupRet
source§impl TryFrom<Terminator> for CondBr
impl TryFrom<Terminator> for CondBr
source§impl TryFrom<Terminator> for IndirectBr
impl TryFrom<Terminator> for IndirectBr
source§impl TryFrom<Terminator> for Invoke
impl TryFrom<Terminator> for Invoke
source§impl TryFrom<Terminator> for Resume
impl TryFrom<Terminator> for Resume
source§impl TryFrom<Terminator> for Ret
impl TryFrom<Terminator> for Ret
source§impl TryFrom<Terminator> for Switch
impl TryFrom<Terminator> for Switch
source§impl TryFrom<Terminator> for Unreachable
impl TryFrom<Terminator> for Unreachable
source§impl Typed for Terminator
impl Typed for Terminator
The Type
of a Terminator
is its result type.
For most terminators, this is VoidType
.
For instance, a Ret
instruction has void type even if
the function returns a non-void value; we do not store the result of a Ret
instruction using something like %3 = ret i32 %2
.
See LLVM 14 docs on Terminator Instructions
impl StructuralPartialEq for Terminator
Auto Trait Implementations§
impl RefUnwindSafe for Terminator
impl Send for Terminator
impl Sync for Terminator
impl Unpin for Terminator
impl UnwindSafe for Terminator
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