Struct spirt::qptr::lower::LowerFromSpvPtrs
source · pub struct LowerFromSpvPtrs<'a> {
cx: Rc<Context>,
wk: &'static WellKnown,
layout_cache: LayoutCache<'a>,
cached_qptr_type: Cell<Option<Type>>,
}
Expand description
Context for lowering SPIR-V OpTypePointer
s to QPtr
s.
See also passes::qptr::lower_from_spv_ptrs
(which drives this).
Fields§
§cx: Rc<Context>
§wk: &'static WellKnown
§layout_cache: LayoutCache<'a>
§cached_qptr_type: Cell<Option<Type>>
Implementations§
source§impl<'a> LowerFromSpvPtrs<'a>
impl<'a> LowerFromSpvPtrs<'a>
pub fn new(cx: Rc<Context>, layout_config: &'a LayoutConfig) -> Self
pub fn lower_global_var(&self, global_var_decl: &mut GlobalVarDecl)
pub fn lower_func(&self, func_decl: &mut FuncDecl)
sourcefn as_spv_ptr_type(&self, ty: Type) -> Option<(AddrSpace, Type)>
fn as_spv_ptr_type(&self, ty: Type) -> Option<(AddrSpace, Type)>
Returns Some
iff ty
is a SPIR-V OpTypePointer
.
fn const_as_u32(&self, ct: Const) -> Option<u32>
sourcefn layout_of(&self, ty: Type) -> Result<TypeLayout, LowerError>
fn layout_of(&self, ty: Type) -> Result<TypeLayout, LowerError>
Attempt to compute a TypeLayout
for a given (SPIR-V) Type
.
Auto Trait Implementations§
impl<'a> !RefUnwindSafe for LowerFromSpvPtrs<'a>
impl<'a> !Send for LowerFromSpvPtrs<'a>
impl<'a> !Sync for LowerFromSpvPtrs<'a>
impl<'a> Unpin for LowerFromSpvPtrs<'a>
impl<'a> !UnwindSafe for LowerFromSpvPtrs<'a>
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