pub struct DeclareVariableOp { /* private fields */ }Expand description
§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 |
|---|---|---|
memory_declare_variable_value_ty | ATTR_KEY_MEMORY_DECLARE_VARIABLE_VALUE_TY | TypeAttr |
memory_declare_variable_addr_space | ATTR_KEY_MEMORY_DECLARE_VARIABLE_ADDR_SPACE | AddressSpaceAttr |
memory_declare_variable_alignment | ATTR_KEY_MEMORY_DECLARE_VARIABLE_ALIGNMENT | IndexAttr |
memory_declare_variable_initializer | ATTR_KEY_MEMORY_DECLARE_VARIABLE_INITIALIZER | Any |
Implementations§
Source§impl DeclareVariableOp
impl DeclareVariableOp
Sourcepub fn get_attr_memory_declare_variable_value_ty<'a>(
&self,
ctx: &'a Context,
) -> Option<Ref<'a, TypeAttr>>
pub fn get_attr_memory_declare_variable_value_ty<'a>( &self, ctx: &'a Context, ) -> Option<Ref<'a, TypeAttr>>
Get a Ref to the value of the attribute named memory_declare_variable_value_ty.
The Ref is a borrow of the containing Operation object.
Sourcepub fn set_attr_memory_declare_variable_value_ty(
&self,
ctx: &Context,
value: TypeAttr,
)
pub fn set_attr_memory_declare_variable_value_ty( &self, ctx: &Context, value: TypeAttr, )
Set the value of the attribute named memory_declare_variable_value_ty.
Sourcepub fn get_attr_memory_declare_variable_addr_space<'a>(
&self,
ctx: &'a Context,
) -> Option<Ref<'a, AddressSpaceAttr>>
pub fn get_attr_memory_declare_variable_addr_space<'a>( &self, ctx: &'a Context, ) -> Option<Ref<'a, AddressSpaceAttr>>
Get a Ref to the value of the attribute named memory_declare_variable_addr_space.
The Ref is a borrow of the containing Operation object.
Sourcepub fn set_attr_memory_declare_variable_addr_space(
&self,
ctx: &Context,
value: AddressSpaceAttr,
)
pub fn set_attr_memory_declare_variable_addr_space( &self, ctx: &Context, value: AddressSpaceAttr, )
Set the value of the attribute named memory_declare_variable_addr_space.
Sourcepub fn get_attr_memory_declare_variable_alignment<'a>(
&self,
ctx: &'a Context,
) -> Option<Ref<'a, IndexAttr>>
pub fn get_attr_memory_declare_variable_alignment<'a>( &self, ctx: &'a Context, ) -> Option<Ref<'a, IndexAttr>>
Get a Ref to the value of the attribute named memory_declare_variable_alignment.
The Ref is a borrow of the containing Operation object.
Sourcepub fn set_attr_memory_declare_variable_alignment(
&self,
ctx: &Context,
value: IndexAttr,
)
pub fn set_attr_memory_declare_variable_alignment( &self, ctx: &Context, value: IndexAttr, )
Set the value of the attribute named memory_declare_variable_alignment.
Sourcepub fn get_attr_memory_declare_variable_initializer<'a>(
&self,
ctx: &'a Context,
) -> Option<Ref<'a, AttrObj>>
pub fn get_attr_memory_declare_variable_initializer<'a>( &self, ctx: &'a Context, ) -> Option<Ref<'a, AttrObj>>
Get a Ref to the value of the attribute named memory_declare_variable_initializer.
The Ref is a borrow of the containing Operation object.
Sourcepub fn set_attr_memory_declare_variable_initializer(
&self,
ctx: &Context,
value: AttrObj,
)
pub fn set_attr_memory_declare_variable_initializer( &self, ctx: &Context, value: AttrObj, )
Set the value of the attribute named memory_declare_variable_initializer.
Source§impl DeclareVariableOp
impl DeclareVariableOp
pub fn new( ctx: &mut Context, value_ty: impl Into<TypeAttr>, addr_space: impl Into<AddressSpaceAttr>, alignment: impl Into<IndexAttr>, initializer: Option<AttrObj>, ) -> Self
pub fn value_ty<'a>(&self, ctx: &'a Context) -> Ref<'a, TypeAttr>
pub fn addr_space<'a>(&self, ctx: &'a Context) -> Ref<'a, AddressSpaceAttr>
pub fn alignment<'a>(&self, ctx: &'a Context) -> Ref<'a, IndexAttr>
pub fn initializer<'a>(&self, ctx: &'a Context) -> Option<Ref<'a, AttrObj>>
pub fn set_value_ty(&self, ctx: &Context, value: impl Into<TypeAttr>)
pub fn set_addr_space(&self, ctx: &Context, value: impl Into<AddressSpaceAttr>)
pub fn set_alignment(&self, ctx: &Context, value: impl Into<IndexAttr>)
pub fn set_initializer(&self, ctx: &Context, value: impl Into<AttrObj>)
pub fn remove_initializer(&self, ctx: &Context)
Trait Implementations§
impl AtLeastNResultsInterface<1> for DeclareVariableOp
impl AtMostNOpdsInterface<0> for DeclareVariableOp
impl AtMostNResultsInterface<1> for DeclareVariableOp
Source§impl Clone for DeclareVariableOp
impl Clone for DeclareVariableOp
impl Copy for DeclareVariableOp
Source§impl DestructurableConstructorOpInterface for DeclareVariableOp
impl DestructurableConstructorOpInterface for DeclareVariableOp
Source§fn destructurable_values(&self, ctx: &Context) -> Vec<DestructurableValueSlot>
fn destructurable_values(&self, ctx: &Context) -> Vec<DestructurableValueSlot>
DestructurableTypeInterface. Read moreSource§fn destructure(
&self,
ctx: &mut Context,
_value: &DestructurableValueSlot,
used_indices: &SmallSet<AttrObj, 8>,
rewriter: &mut PassRewriter,
new_constructors: &mut Vec<TraitOp<dyn DestructurableConstructorOpInterface>>,
) -> HMap<AttrObj, ValueSlot>
fn destructure( &self, ctx: &mut Context, _value: &DestructurableValueSlot, used_indices: &SmallSet<AttrObj, 8>, rewriter: &mut PassRewriter, new_constructors: &mut Vec<TraitOp<dyn DestructurableConstructorOpInterface>>, ) -> HMap<AttrObj, ValueSlot>
used_indices since all other subvalues are unused. Read moreSource§fn handle_destructuring_complete(
&self,
ctx: &mut Context,
value: &DestructurableValueSlot,
rewriter: &mut PassRewriter,
) -> Option<TraitOp<dyn DestructurableConstructorOpInterface>>
fn handle_destructuring_complete( &self, ctx: &mut Context, value: &DestructurableValueSlot, rewriter: &mut PassRewriter, ) -> Option<TraitOp<dyn DestructurableConstructorOpInterface>>
fn verify(_op: &dyn Op, _ctx: &Context) -> Result<()>where
Self: Sized,
impl Eq for DeclareVariableOp
Source§impl Hash for DeclareVariableOp
impl Hash for DeclareVariableOp
Source§impl MaterializableOp for DeclareVariableOp
impl MaterializableOp for DeclareVariableOp
Source§impl NOpdsInterface<0> for DeclareVariableOp
impl NOpdsInterface<0> for DeclareVariableOp
Source§fn operand_type_i(&self, ctx: &Context, i: LessThanN<N>) -> TypeHandle
fn operand_type_i(&self, ctx: &Context, i: LessThanN<N>) -> TypeHandle
i’th operand.Source§impl NResultsInterface<1> for DeclareVariableOp
impl NResultsInterface<1> for DeclareVariableOp
Source§fn result_type_i(&self, ctx: &Context, i: LessThanN<N>) -> TypeHandle
fn result_type_i(&self, ctx: &Context, i: LessThanN<N>) -> TypeHandle
i’th result.Source§impl OneResultInterface for DeclareVariableOp
impl OneResultInterface for DeclareVariableOp
Source§fn result_type(&self, ctx: &Context) -> TypeHandle
fn result_type(&self, ctx: &Context) -> TypeHandle
Source§impl Op for DeclareVariableOp
impl Op for DeclareVariableOp
Source§fn get_operation(&self) -> Ptr<Operation>
fn get_operation(&self) -> Ptr<Operation>
Source§fn get_opid_static() -> OpId
fn get_opid_static() -> OpId
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,
Source§impl Parsable for DeclareVariableOp
impl Parsable for DeclareVariableOp
Source§type Arg = Vec<(Identifier, Location)>
type Arg = Vec<(Identifier, Location)>
Source§fn parse<'a>(
input: &mut StateStream<'a>,
arg: Self::Arg,
) -> ParseResult<'a, Self::Parsed>
fn parse<'a>( input: &mut StateStream<'a>, arg: Self::Arg, ) -> ParseResult<'a, Self::Parsed>
into on Parser::parse_stream to get the final ParseResult.
Use state_stream.state as necessary.Source§fn parser<'a>(
arg: Self::Arg,
) -> Box<dyn Parser<Stream<Stream<Stream<Stream<IteratorStream<CharIterator<'a>>, SourcePosition>>>, State<'a>>, Output = Self::Parsed, PartialState = ()> + 'a>where
Self::Parsed: 'a,
fn parser<'a>(
arg: Self::Arg,
) -> Box<dyn Parser<Stream<Stream<Stream<Stream<IteratorStream<CharIterator<'a>>, SourcePosition>>>, State<'a>>, Output = Self::Parsed, PartialState = ()> + 'a>where
Self::Parsed: 'a,
Source§impl PartialEq for DeclareVariableOp
impl PartialEq for DeclareVariableOp
Source§impl Printable for DeclareVariableOp
impl Printable for DeclareVariableOp
Source§impl PromotableAllocationInterface for DeclareVariableOp
impl PromotableAllocationInterface for DeclareVariableOp
Source§fn alloc_info(&self, ctx: &Context) -> Vec<AllocInfo>
fn alloc_info(&self, ctx: &Context) -> Vec<AllocInfo>
Source§fn default_value(
&self,
ctx: &mut Context,
inserter: &mut dyn Inserter,
alloc_info: &AllocInfo,
) -> Result<Value>
fn default_value( &self, ctx: &mut Context, inserter: &mut dyn Inserter, alloc_info: &AllocInfo, ) -> Result<Value>
alloc_info
passed is guaranteed to be one of the entries returned by alloc_info.
The inserter is positioned in the entry block. If the allocation
is in the entry block, the inserter position will be before it.Source§fn promote(
&self,
ctx: &mut Context,
rewriter: &mut dyn Rewriter,
alloc_infos: &[AllocInfo],
) -> Result<()>
fn promote( &self, ctx: &mut Context, rewriter: &mut dyn Rewriter, alloc_infos: &[AllocInfo], ) -> Result<()>
alloc_infos passed are guaranteed to be from the entries returned by alloc_info.
The rewriter is set to insert before this alloc op.Source§impl SameResultsType for DeclareVariableOp
impl SameResultsType for DeclareVariableOp
Source§fn common_result_type(&self, ctx: &Context) -> Option<TypeHandle>
fn common_result_type(&self, ctx: &Context) -> Option<TypeHandle>
Source§impl SideEffects for DeclareVariableOp
impl SideEffects for DeclareVariableOp
Source§fn has_side_effects(&self, _ctx: &Context) -> bool
fn has_side_effects(&self, _ctx: &Context) -> bool
true if the operation has side effects, and false otherwise.impl StructuralPartialEq for DeclareVariableOp
Source§impl UniformOpInterface for DeclareVariableOp
impl UniformOpInterface for DeclareVariableOp
fn uniformity(&self, ctx: &Context, _operands: &[Uniformity]) -> Uniformity
fn verify(_op: &dyn Op, _ctx: &Context) -> Result<()>where
Self: Sized,
Auto Trait Implementations§
impl !RefUnwindSafe for DeclareVariableOp
impl !UnwindSafe for DeclareVariableOp
impl Freeze for DeclareVariableOp
impl Send for DeclareVariableOp
impl Sync for DeclareVariableOp
impl Unpin for DeclareVariableOp
impl UnsafeUnpin for DeclareVariableOp
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more