pub struct CondBranchOperation<'c> { /* private fields */ }
Expand description
A cond_br
operation. Conditional branch operation.
The cond_br
terminator operation represents a conditional branch on a
boolean (1-bit integer) value. If the bit is set, then the first destination
is jumped to; if it is false, the second destination is chosen. The count
and types of operands must align with the arguments in the corresponding
target blocks.
The MLIR conditional branch operation is not allowed to target the entry block for a region. The two destinations of the conditional branch operation are allowed to be the same.
The following example illustrates a function with a conditional branch operation that targets the same block.
Example:
func.func @select(%a: i32, %b: i32, %flag: i1) -> i32 {
// Both targets are the same, operands differ
cond_br %flag, ^bb1(%a : i32), ^bb1(%b : i32)
^bb1(%x : i32) :
return %x : i32
}
Implementations§
source§impl<'c> CondBranchOperation<'c>
impl<'c> CondBranchOperation<'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>
) -> CondBranchOperationBuilder<'c, Unset, Unset, Unset, Unset, Unset>
pub fn builder( context: &'c Context, location: Location<'c> ) -> CondBranchOperationBuilder<'c, Unset, Unset, Unset, Unset, Unset>
Creates a builder.
pub fn condition(&self) -> Result<Value<'c, '_>, Error>
pub fn true_dest_operands( &self ) -> Result<impl Iterator<Item = Value<'c, '_>>, Error>
pub fn false_dest_operands( &self ) -> Result<impl Iterator<Item = Value<'c, '_>>, Error>
pub fn true_dest(&self) -> Result<BlockRef<'c, '_>, Error>
pub fn false_dest(&self) -> Result<BlockRef<'c, '_>, Error>
Trait Implementations§
source§impl<'c> From<CondBranchOperation<'c>> for Operation<'c>
impl<'c> From<CondBranchOperation<'c>> for Operation<'c>
source§fn from(operation: CondBranchOperation<'c>) -> Self
fn from(operation: CondBranchOperation<'c>) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl<'c> RefUnwindSafe for CondBranchOperation<'c>
impl<'c> !Send for CondBranchOperation<'c>
impl<'c> !Sync for CondBranchOperation<'c>
impl<'c> Unpin for CondBranchOperation<'c>
impl<'c> UnwindSafe for CondBranchOperation<'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