enum LazyInst<'a, 'b> {
Global(Global),
OpFunction {
func_id: Id,
func_decl: &'a FuncDecl,
},
OpFunctionParameter {
param_id: Id,
param: &'a FuncParam,
},
OpLabel {
label_id: Id,
},
OpPhi {
parent_func: &'b FuncLifting<'a>,
phi: &'b Phi,
},
DataInst {
parent_func: &'b FuncLifting<'a>,
result_id: Option<Id>,
data_inst_def: &'a DataInstDef,
},
Merge(Merge<Id>),
Terminator {
parent_func: &'b FuncLifting<'a>,
terminator: &'b Terminator<'a>,
},
OpFunctionEnd,
}
Expand description
“Maybe-decorated “lazy” SPIR-V instruction, allowing separately emitting decorations from attributes, and the instruction itself, without eagerly allocating all the instructions.
Variants§
Global(Global)
OpFunction
OpFunctionParameter
OpLabel
OpPhi
DataInst
Merge(Merge<Id>)
Terminator
OpFunctionEnd
Implementations§
source§impl LazyInst<'_, '_>
impl LazyInst<'_, '_>
fn result_id_attrs_and_import( self, module: &Module, ids: &AllocatedIds<'_> ) -> (Option<Id>, AttrSet, Option<Import>)
fn to_inst_and_attrs( self, module: &Module, ids: &AllocatedIds<'_> ) -> (InstWithIds, AttrSet)
Trait Implementations§
Auto Trait Implementations§
impl<'a, 'b> RefUnwindSafe for LazyInst<'a, 'b>
impl<'a, 'b> Send for LazyInst<'a, 'b>
impl<'a, 'b> Sync for LazyInst<'a, 'b>
impl<'a, 'b> Unpin for LazyInst<'a, 'b>
impl<'a, 'b> UnwindSafe for LazyInst<'a, 'b>
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