pub struct SwitchOperation<'c> { /* private fields */ }
Expand description
A switch
operation. Switch operation.
The switch
terminator operation represents a switch on a signless integer
value. If the flag matches one of the specified cases, then the
corresponding destination is jumped to. If the flag does not match any of
the cases, the default destination is jumped to. The count and types of
operands must align with the arguments in the corresponding target blocks.
Example:
switch %flag : i32, [
default: ^bb1(%a : i32),
42: ^bb1(%b : i32),
43: ^bb3(%c : i32)
]
Implementations§
source§impl<'c> SwitchOperation<'c>
impl<'c> SwitchOperation<'c>
sourcepub fn as_operation(&self) -> &Operation<'c>
pub fn as_operation(&self) -> &Operation<'c>
Returns a generic operation.
sourcepub fn builder(
context: &'c Context,
location: Location<'c>
) -> SwitchOperationBuilder<'c, Unset, Unset, Unset, Unset, Unset, Unset>
pub fn builder( context: &'c Context, location: Location<'c> ) -> SwitchOperationBuilder<'c, Unset, Unset, Unset, Unset, Unset, Unset>
Creates a builder.
pub fn flag(&self) -> Result<Value<'c, '_>, Error>
pub fn default_operands( &self ) -> Result<impl Iterator<Item = Value<'c, '_>>, Error>
pub fn case_operands( &self ) -> Result<impl Iterator<Item = Value<'c, '_>>, Error>
pub fn default_destination(&self) -> Result<BlockRef<'c, '_>, Error>
pub fn case_destinations(&self) -> impl Iterator<Item = BlockRef<'c, '_>>
pub fn case_values(&self) -> Result<Attribute<'c>, Error>
pub fn set_case_values(&mut self, value: Attribute<'c>)
pub fn remove_case_values(&mut self) -> Result<(), Error>
pub fn case_operand_segments(&self) -> Result<DenseI32ArrayAttribute<'c>, Error>
pub fn set_case_operand_segments(&mut self, value: DenseI32ArrayAttribute<'c>)
Trait Implementations§
source§impl<'c> From<SwitchOperation<'c>> for Operation<'c>
impl<'c> From<SwitchOperation<'c>> for Operation<'c>
source§fn from(operation: SwitchOperation<'c>) -> Self
fn from(operation: SwitchOperation<'c>) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl<'c> RefUnwindSafe for SwitchOperation<'c>
impl<'c> !Send for SwitchOperation<'c>
impl<'c> !Sync for SwitchOperation<'c>
impl<'c> Unpin for SwitchOperation<'c>
impl<'c> UnwindSafe for SwitchOperation<'c>
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