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

The ll Plugin More...

Classes

struct  BB
class  Emitter
class  Emit
 Pipeline phase for ll.emit. More...

Enumerations

%ll.emit
enum class  emit : flags_t

Functions

void mim_ll_convert (Emitter &e, const Def *type, bool simd, std::string &res)
 The heavy, target-independent emitter methods are compiled once into libmim_ll (see ll.cpp).
void mim_ll_finalize (Emitter &e)
void mim_ll_emit_epilogue (Emitter &e, Lam *lam)
void mim_ll_emit_bb (Emitter &e, BB &bb, const Def *def, std::string &res)
static std::optional< std::pair< nat_t, const Def * > > is_simd (const Def *type)
static std::optional< std::pair< nat_t, const Def * > > is_simd_aggregate (Defs types)
static const Deffind_common_simd_src (const App *app)

Variables

static constexpr plugin_t Plugin_Id = 0x34d0000000000000

Detailed Description

Enumeration Type Documentation

◆ emit

enum class mim::plug::ll::emit : flags_t
strong

Definition at line 14 of file autogen.h.

Function Documentation

◆ find_common_simd_src()

const Def * mim::plug::ll::find_common_simd_src ( const App * app)
inlinestatic

Definition at line 274 of file ll.h.

References is_simd(), mim::Axm::isa(), mim::Lit::isa(), and mim::Def::type().

◆ is_simd()

std::optional< std::pair< nat_t, const Def * > > mim::plug::ll::is_simd ( const Def * type)
inlinestatic

Definition at line 255 of file ll.h.

References mim::Axm::isa(), mim::Idx::isa(), and mim::Lit::isa().

Referenced by find_common_simd_src(), and mim::plug::ll::Emitter::prepare().

◆ is_simd_aggregate()

std::optional< std::pair< nat_t, const Def * > > mim::plug::ll::is_simd_aggregate ( Defs types)
inlinestatic

Definition at line 265 of file ll.h.

References mim::Axm::isa(), and mim::Idx::isa().

◆ mim_ll_convert()

void mim::plug::ll::mim_ll_convert ( Emitter & e,
const Def * type,
bool simd,
std::string & res )

The heavy, target-independent emitter methods are compiled once into libmim_ll (see ll.cpp).

libmim_ll_nvptx reaches them through these extern "C" shims instead of recompiling the bodies; Emitter caches the pointers via GET_FUN_PTR in its constructor.

Definition at line 1093 of file ll.cpp.

◆ mim_ll_emit_bb()

void mim::plug::ll::mim_ll_emit_bb ( Emitter & e,
BB & bb,
const Def * def,
std::string & res )

Definition at line 1098 of file ll.cpp.

◆ mim_ll_emit_epilogue()

void mim::plug::ll::mim_ll_emit_epilogue ( Emitter & e,
Lam * lam )

Definition at line 1097 of file ll.cpp.

◆ mim_ll_finalize()

void mim::plug::ll::mim_ll_finalize ( Emitter & e)

Definition at line 1096 of file ll.cpp.

Variable Documentation

◆ Plugin_Id

plugin_t mim::plug::ll::Plugin_Id = 0x34d0000000000000
staticconstexpr

Definition at line 10 of file autogen.h.