pub struct IrBuilder { /* private fields */ }Expand description
Builder for constructing IR modules.
Implementations§
Source§impl IrBuilder
impl IrBuilder
Sourcepub fn set_config(&mut self, config: KernelConfig)
pub fn set_config(&mut self, config: KernelConfig)
Set kernel configuration.
Sourcepub fn set_block_size(&mut self, x: u32, y: u32, z: u32)
pub fn set_block_size(&mut self, x: u32, y: u32, z: u32)
Set block size.
Sourcepub fn set_persistent(&mut self, persistent: bool)
pub fn set_persistent(&mut self, persistent: bool)
Mark as persistent kernel.
Sourcepub fn create_block(&mut self, label: impl Into<String>) -> BlockId
pub fn create_block(&mut self, label: impl Into<String>) -> BlockId
Create a new block.
Sourcepub fn switch_to_block(&mut self, block: BlockId)
pub fn switch_to_block(&mut self, block: BlockId)
Switch to a different block.
Sourcepub fn current_block(&self) -> BlockId
pub fn current_block(&self) -> BlockId
Get current block ID.
Sourcepub fn const_bool(&mut self, value: bool) -> ValueId
pub fn const_bool(&mut self, value: bool) -> ValueId
Create a boolean constant.
Allocate shared memory.
Sourcepub fn global_thread_id(&mut self, dim: Dimension) -> ValueId
pub fn global_thread_id(&mut self, dim: Dimension) -> ValueId
Get global thread ID.
Sourcepub fn fence(&mut self, scope: MemoryScope)
pub fn fence(&mut self, scope: MemoryScope)
Memory fence.
Sourcepub fn atomic_add(&mut self, ptr: ValueId, value: ValueId) -> ValueId
pub fn atomic_add(&mut self, ptr: ValueId, value: ValueId) -> ValueId
Atomic add.
Sourcepub fn atomic_exchange(&mut self, ptr: ValueId, value: ValueId) -> ValueId
pub fn atomic_exchange(&mut self, ptr: ValueId, value: ValueId) -> ValueId
Atomic exchange.
Sourcepub fn atomic_cas(
&mut self,
ptr: ValueId,
expected: ValueId,
desired: ValueId,
) -> ValueId
pub fn atomic_cas( &mut self, ptr: ValueId, expected: ValueId, desired: ValueId, ) -> ValueId
Atomic compare-and-swap.
Sourcepub fn select(
&mut self,
cond: ValueId,
then_val: ValueId,
else_val: ValueId,
) -> ValueId
pub fn select( &mut self, cond: ValueId, then_val: ValueId, else_val: ValueId, ) -> ValueId
Select (ternary).
Sourcepub fn cond_branch(
&mut self,
cond: ValueId,
then_block: BlockId,
else_block: BlockId,
)
pub fn cond_branch( &mut self, cond: ValueId, then_block: BlockId, else_block: BlockId, )
Conditional branch.
Sourcepub fn k2h_enqueue(&mut self, message: ValueId)
pub fn k2h_enqueue(&mut self, message: ValueId)
Enqueue to output (K2H).
Sourcepub fn h2k_dequeue(&mut self, msg_ty: IrType) -> ValueId
pub fn h2k_dequeue(&mut self, msg_ty: IrType) -> ValueId
Dequeue from input (H2K).
Sourcepub fn h2k_is_empty(&mut self) -> ValueId
pub fn h2k_is_empty(&mut self) -> ValueId
Check if input queue is empty.
Sourcepub fn k2k_try_recv(&mut self, msg_ty: IrType) -> ValueId
pub fn k2k_try_recv(&mut self, msg_ty: IrType) -> ValueId
Try receive K2K message.
Auto Trait Implementations§
impl Freeze for IrBuilder
impl RefUnwindSafe for IrBuilder
impl Send for IrBuilder
impl Sync for IrBuilder
impl Unpin for IrBuilder
impl UnwindSafe for IrBuilder
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