cubecl_core/codegen/
compiler.rsuse crate::ir::{Elem, KernelDefinition, LocalAllocator};
use cubecl_runtime::ExecutionMode;
use std::fmt::Display;
pub trait CompilerRepresentation: Display {
fn shared_memory_size(&self) -> usize;
}
pub trait Compiler: Sync + Send + 'static + Clone + Default + core::fmt::Debug {
type Representation: CompilerRepresentation;
fn compile(kernel: KernelDefinition, mode: ExecutionMode) -> Self::Representation;
fn elem_size(elem: Elem) -> usize;
fn local_allocator() -> impl LocalAllocator;
fn max_shared_memory_size() -> usize;
}