pub struct BlockTagOp { /* private fields */ }Expand description
Similar to MLIR’s LLVM dialect llvm.blocktag.
Marks a basic block with a tag so llvm.blockaddress can refer to it.
A given function should have at most one llvm.blocktag operation with a given tag.
§Attribute(s):
Note: Only attributes defined directly as part of this operation are listed here. There may be others, not listed here, defined by interface implementations.
| Name | Static Name Identifier | Type |
|---|---|---|
llvm_block_tag_id | ATTR_KEY_LLVM_BLOCK_TAG_ID | IntegerAttr |
Implementations§
Source§impl BlockTagOp
impl BlockTagOp
Sourcepub fn get_attr_llvm_block_tag_id<'a>(
&self,
ctx: &'a Context,
) -> Option<Ref<'a, IntegerAttr>>
pub fn get_attr_llvm_block_tag_id<'a>( &self, ctx: &'a Context, ) -> Option<Ref<'a, IntegerAttr>>
Get a Ref to the value of the attribute named llvm_block_tag_id.
The Ref is a borrow of the containing Operation object.
Sourcepub fn set_attr_llvm_block_tag_id(&self, ctx: &Context, value: IntegerAttr)
pub fn set_attr_llvm_block_tag_id(&self, ctx: &Context, value: IntegerAttr)
Set the value of the attribute named llvm_block_tag_id.
Trait Implementations§
Source§impl Clone for BlockTagOp
impl Clone for BlockTagOp
Source§fn clone(&self) -> BlockTagOp
fn clone(&self) -> BlockTagOp
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Hash for BlockTagOp
impl Hash for BlockTagOp
Source§impl NOpdsInterface<0> for BlockTagOp
impl NOpdsInterface<0> for BlockTagOp
Source§fn operand_type_i(&self, ctx: &Context, i: LessThanN<N>) -> TypeHandle
fn operand_type_i(&self, ctx: &Context, i: LessThanN<N>) -> TypeHandle
Get the type of the
i’th operand.Source§impl NResultsInterface<0> for BlockTagOp
impl NResultsInterface<0> for BlockTagOp
Source§fn result_type_i(&self, ctx: &Context, i: LessThanN<N>) -> TypeHandle
fn result_type_i(&self, ctx: &Context, i: LessThanN<N>) -> TypeHandle
Get the type of the
i’th result.Source§impl Op for BlockTagOp
impl Op for BlockTagOp
Source§fn get_operation(&self) -> Ptr<Operation>
fn get_operation(&self) -> Ptr<Operation>
Get the underlying IR Operation
Source§fn get_opid_static() -> OpId
fn get_opid_static() -> OpId
Get this Op’s OpId, without self reference.
Source§fn get_concrete_op_info() -> (fn(Ptr<Operation>) -> OpBox, TypeId)where
Self: Sized,
fn get_concrete_op_info() -> (fn(Ptr<Operation>) -> OpBox, TypeId)where
Self: Sized,
Get details about the concrete Op type.
Source§impl Parsable for BlockTagOp
impl Parsable for BlockTagOp
Source§type Arg = Vec<(Identifier, Location)>
type Arg = Vec<(Identifier, Location)>
Type of the argument that must be passed to the parser.
Source§fn parse<'__pliron_parse>(
state_stream: &mut StateStream<'__pliron_parse>,
arg: Self::Arg,
) -> ParseResult<'__pliron_parse, Self::Parsed>
fn parse<'__pliron_parse>( state_stream: &mut StateStream<'__pliron_parse>, arg: Self::Arg, ) -> ParseResult<'__pliron_parse, Self::Parsed>
Define a parser using existing combinators and call
into on [Parser::parse_stream] to get the final ParseResult.
Use state_stream.state as necessary.Source§impl PartialEq for BlockTagOp
impl PartialEq for BlockTagOp
Source§fn eq(&self, other: &BlockTagOp) -> bool
fn eq(&self, other: &BlockTagOp) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl Printable for BlockTagOp
impl Printable for BlockTagOp
impl Copy for BlockTagOp
impl Eq for BlockTagOp
impl StructuralPartialEq for BlockTagOp
Auto Trait Implementations§
impl Freeze for BlockTagOp
impl !RefUnwindSafe for BlockTagOp
impl Send for BlockTagOp
impl Sync for BlockTagOp
impl Unpin for BlockTagOp
impl UnsafeUnpin for BlockTagOp
impl !UnwindSafe for BlockTagOp
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.