Skip to main content

ScheduleItem

Struct ScheduleItem 

Source
pub struct ScheduleItem {
    pub kernel: Arc<UOp>,
    pub ast: Arc<UOp>,
    pub buffers: Vec<Buffer>,
    pub buffer_uop_ids: Vec<u64>,
    pub fixedvars: HashMap<String, i64>,
    pub loop_var_names: HashSet<String>,
    pub dependencies: Vec<u64>,
    pub instance_dependencies: Vec<usize>,
    pub alias_registered_ids: Vec<u64>,
}
Expand description

A single executable callable with its buffers and variable bindings.

Each ScheduleItem represents one callable that needs to be compiled and executed. The callable AST contains STORE operations that write results to buffers.

Schedule items are fully expanded during schedule instantiation.

Fields§

§kernel: Arc<UOp>

The callable wrapper UOp (CALL) used for dependency identity.

§ast: Arc<UOp>

The inner callable AST (typically SINK containing STORE ops) - for codegen

§buffers: Vec<Buffer>

Device buffers for this callable (in order expected by codegen)

§buffer_uop_ids: Vec<u64>

UOp IDs under which each buffer was registered in buffer index. Same length as buffers. Used for cleanup - to remove buffers from the global registry, we need to know what key they were registered under.

§fixedvars: HashMap<String, i64>

Fixed variable values for this specific kernel invocation. Maps variable name (e.g., “range_0”) to concrete i64 value. Always concrete in the strict scheduler path.

§loop_var_names: HashSet<String>

Names of variables in fixedvars whose values came from schedule-loop counters. User var_vals must not override these — see collect_non_overridable_fixedvars.

§dependencies: Vec<u64>

Callable UOp IDs that must complete before this item can execute. Empty for callables without dependencies (first in chain or independent). Dependencies are implicit in scheduling order after topological sort.

§instance_dependencies: Vec<usize>

Concrete schedule-item indices that must complete before this item. Used for ordering constraints that cannot be represented by callable ID after strict unrolling creates repeated callable IDs.

§alias_registered_ids: Vec<u64>

Additional UOp IDs registered as aliases in buffer index. These are IDs where the same buffer was registered under a different key for lookup convenience. They need to be cleaned up along with buffer_uop_ids.

Trait Implementations§

Source§

impl Clone for ScheduleItem

Source§

fn clone(&self) -> ScheduleItem

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more