MimIR
MimIR is my Intermediate Representation
Loading...
Searching...
No Matches
mim::plug::tensor::phase Namespace Reference

Classes

class  Fuse
class  Lower
 Lowers the high-level tensor axioms into the low-level tensor axioms (map_reduce, …). More...
class  LowerGetSet
 Lowers the tensor axioms (get, set) to their underlying primitives (extract, insert). More...
class  LowerMapReduce
 Lowers the low-level tensor axioms (map_reduce, pad, concat, broadcast) directly to their underlying primitives (loops, extract, insert, pack, …). More...
class  LowerToMem
 Bufferizes the low-level tensor axioms onto the shared buffer layer. More...

Functions

static const Defcompose_map (World &w, const Def *inner, const Def *outer)
 inner ∘ outer: feeds the outer op's read coordinates for one input into the inner op's access map.
static std::pair< Lam *, const Def * > counting_for (const Def *bound, const Def *acc, const Def *exit, Sym name)
static const Defget_element_type (const Def *type, u64 r)
static const Defnested_extract (World &w, const Def *matrix, const Def *coords, const Def *shape, u64 r)
static const Defnested_insert (World &w, const Def *matrix, const Def *coords, const Def *shape, u64 r, const Def *elem)

Function Documentation

◆ compose_map()

const Def * mim::plug::tensor::phase::compose_map ( World & w,
const Def * inner,
const Def * outer )
static

inner ∘ outer: feeds the outer op's read coordinates for one input into the inner op's access map.

Definition at line 15 of file fuse.cpp.

References mim::Def::type(), and mim::Def::var().

◆ counting_for()

std::pair< Lam *, const Def * > mim::plug::tensor::phase::counting_for ( const Def * bound,
const Def * acc,
const Def * exit,
Sym name )
static

Definition at line 86 of file lower_map_reduce.cpp.

References mim::Def::type(), and mim::Def::world().

◆ get_element_type()

const Def * mim::plug::tensor::phase::get_element_type ( const Def * type,
u64 r )
static

Definition at line 94 of file lower_map_reduce.cpp.

Referenced by nested_extract(), and nested_insert().

◆ nested_extract()

const Def * mim::plug::tensor::phase::nested_extract ( World & w,
const Def * matrix,
const Def * coords,
const Def * shape,
u64 r )
static

Definition at line 104 of file lower_map_reduce.cpp.

References get_element_type(), and mim::plug::tensor::op_get().

◆ nested_insert()

const Def * mim::plug::tensor::phase::nested_insert ( World & w,
const Def * matrix,
const Def * coords,
const Def * shape,
u64 r,
const Def * elem )
static

Definition at line 110 of file lower_map_reduce.cpp.

References get_element_type(), and mim::plug::tensor::op_set().