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

Classes

struct  BB
 
class  Emitter
 

Functions

void emit (World &, std::ostream &)
 
int compile (World &, std::string name)
 
int compile (World &, std::string ll, std::string out)
 
int compile_and_run (World &, std::string name, std::string args={})
 
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 (const std::vector< const Def * > types)
 
static const Deffind_common_simd_src (const App *app)
 

Function Documentation

◆ compile() [1/2]

int mim::ll::compile ( World & world,
std::string ll,
std::string out )

Definition at line 1262 of file ll.cpp.

References emit(), mim::fmt(), and mim::sys::system().

◆ compile() [2/2]

int mim::ll::compile ( World & world,
std::string name )

Definition at line 1253 of file ll.cpp.

References compile().

Referenced by compile(), and compile_and_run().

◆ compile_and_run()

int mim::ll::compile_and_run ( World & world,
std::string name,
std::string args = {} )

Definition at line 1270 of file ll.cpp.

References compile(), mim::error(), and mim::sys::run().

◆ emit()

void mim::ll::emit ( World & world,
std::ostream & ostream )

Definition at line 1248 of file ll.cpp.

References mim::Phase::run().

Referenced by compile(), and mim_get_plugin().

◆ find_common_simd_src()

static const Def * mim::ll::find_common_simd_src ( const App * app)
static

Definition at line 166 of file ll.cpp.

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

Referenced by mim::ll::Emitter::emit_epilogue().

◆ is_simd()

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

◆ is_simd_aggregate()

static std::optional< std::pair< nat_t, const Def * > > mim::ll::is_simd_aggregate ( const std::vector< const Def * > types)
static

Definition at line 157 of file ll.cpp.

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

Referenced by mim::ll::Emitter::emit_epilogue().