Enum orzir_core::Value
source · pub enum Value {
OpResult {
self_ptr: ArenaPtr<Self>,
ty: ArenaPtr<TyObj>,
op: ArenaPtr<OpObj>,
index: usize,
},
BlockArgument {
self_ptr: ArenaPtr<Self>,
ty: ArenaPtr<TyObj>,
block: ArenaPtr<Block>,
index: usize,
},
}Expand description
An SSA value.
Variants§
Implementations§
source§impl Value
impl Value
sourcepub fn new_op_result(
ctx: &mut Context,
ty: ArenaPtr<TyObj>,
op: ArenaPtr<OpObj>,
index: usize,
name: Option<String>
) -> ArenaPtr<Value>
pub fn new_op_result( ctx: &mut Context, ty: ArenaPtr<TyObj>, op: ArenaPtr<OpObj>, index: usize, name: Option<String> ) -> ArenaPtr<Value>
Create a new Value::OpResult.
If the name is not none, this will lookup for reserved arena ptr by the name.
sourcepub fn new_block_argument(
ctx: &mut Context,
ty: ArenaPtr<TyObj>,
block: ArenaPtr<Block>,
index: usize,
name: Option<String>
) -> ArenaPtr<Value>
pub fn new_block_argument( ctx: &mut Context, ty: ArenaPtr<TyObj>, block: ArenaPtr<Block>, index: usize, name: Option<String> ) -> ArenaPtr<Value>
Create a new Value::BlockArgument.
If the name is not none, this will lookup for reserved arena ptr by the name.
sourcepub fn name(&self, ctx: &Context) -> String
pub fn name(&self, ctx: &Context) -> String
Get the name of the value.
This will lookup the name by the self ptr. If the name is not set, the name manager will allocate a new name.
sourcepub fn parent_region(&self, ctx: &Context) -> ArenaPtr<Region>
pub fn parent_region(&self, ctx: &Context) -> ArenaPtr<Region>
Get the parent region of the value.
pub fn ty(&self, _: &Context) -> ArenaPtr<TyObj>
Trait Implementations§
source§impl Print for Value
impl Print for Value
fn print(&self, ctx: &Context, state: &mut PrintState) -> PrintResult<()>
source§impl RunVerifiers for Value
impl RunVerifiers for Value
fn run_verifiers(&self, _ctx: &Context) -> VerifyResult<()>
Auto Trait Implementations§
impl Freeze for Value
impl !RefUnwindSafe for Value
impl !Send for Value
impl !Sync for Value
impl Unpin for Value
impl !UnwindSafe for Value
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
§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>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<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>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> 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)
Convert
&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)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.