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, broadcast, …). More...
class  LowerMapReduce
 Lowers the low-level tensor axioms (map_reduce, get, set, broadcast) directly to their underlying primitives (loops, extract, insert, pack, …). More...

Functions

static std::pair< Lam *, const Def * > counting_for (const Def *bound, const Def *acc, const Def *exit, Sym name)
static std::tuple< Vector< u64 >, Vector< u64 >, absl::flat_hash_map< u64, const Def * >, Vector< u64 > > extract_indices (const u64 n_nat, const u64 nis_nat, const Def *S, const Def *Ris, const Def *Sis, const Def *subs)
static std::tuple< const Def *, const Def *, absl::flat_hash_map< u64, const Def * >, Lam * > create_outer_loop (Lam *fun, const Vector< u64 > &out_indices, const absl::flat_hash_map< u64, const Def * > &dims)

Function Documentation

◆ 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 170 of file lower_map_reduce.cpp.

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

Referenced by create_outer_loop().

◆ create_outer_loop()

std::tuple< const Def *, const Def *, absl::flat_hash_map< u64, const Def * >, Lam * > mim::plug::tensor::phase::create_outer_loop ( Lam * fun,
const Vector< u64 > & out_indices,
const absl::flat_hash_map< u64, const Def * > & dims )
static

◆ extract_indices()

std::tuple< Vector< u64 >, Vector< u64 >, absl::flat_hash_map< u64, const Def * >, Vector< u64 > > mim::plug::tensor::phase::extract_indices ( const u64 n_nat,
const u64 nis_nat,
const Def * S,
const Def * Ris,
const Def * Sis,
const Def * subs )
static

Definition at line 179 of file lower_map_reduce.cpp.

References mim::error(), mim::Lit::isa(), and mim::Def::proj().