Classes | |
| struct | BB |
| class | Emit |
| Pipeline phase for ll.emit. More... | |
| class | Emitter |
Enumerations | |
<tt>ll.emit</tt> | |
| enum class | emit : flags_t |
<tt>ll.vec</tt> | |
| enum class | vec : flags_t |
<tt>ll.novec</tt> | |
| enum class | novec : 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) |
| Emitter::Rt | arg_rt (fe::View< std::string > args) |
| Parses -X <backend>:rt=extern|embed; Emitter::Rt::embed is the default. | |
| static std::optional< std::pair< nat_t, const Def * > > | is_simd (const Def *type) |
| static nat_t | idx_bitwidth (const Def *type) |
| An Idx n whose n is only known at runtime is bounded by a Nat, hence an i64. | |
| static std::string | fmath_flags (math::Mode mode) |
| static const char * | ncmp_pred (core::ncmp id) |
| static const char * | icmp_pred (core::icmp id) |
| static const char * | fcmp_pred (math::cmp id) |
Variables | |
| static constexpr plugin_t | Plugin_Id = 0x34d0000000000000 |
|
strong |
|
strong |
|
strong |
|
inline |
Parses -X <backend>:rt=extern|embed; Emitter::Rt::embed is the default.
Definition at line 325 of file ll.h.
References arg_rt(), mim::arg_value(), mim::plug::ll::Emitter::embed, and mim::plug::ll::Emitter::ext.
Referenced by arg_rt(), mim::plug::ll::Emit::start(), and mim::plug::nvptx::Emit::start().
|
static |
Definition at line 102 of file ll.cpp.
References fcmp_pred(), mim::plug::math::ge, mim::plug::math::le, mim::plug::math::ne, mim::plug::math::ue, mim::plug::math::ug, mim::plug::math::uge, mim::plug::math::ul, mim::plug::math::ule, and mim::plug::math::une.
Referenced by fcmp_pred().
|
static |
Definition at line 55 of file ll.cpp.
References mim::plug::math::afn, mim::plug::math::arcp, mim::plug::math::contract, mim::plug::math::fast, fmath_flags(), mim::plug::math::ninf, mim::plug::math::nnan, mim::plug::math::nsz, and mim::plug::math::reassoc.
Referenced by fmath_flags().
|
static |
Definition at line 84 of file ll.cpp.
References mim::plug::core::e, icmp_pred(), mim::plug::core::ne, mim::plug::core::sg, mim::plug::core::sge, mim::plug::core::sl, mim::plug::core::sle, mim::plug::core::ug, mim::plug::core::uge, mim::plug::core::ul, and mim::plug::core::ule.
Referenced by icmp_pred().
An Idx n whose n is only known at runtime is bounded by a Nat, hence an i64.
Definition at line 53 of file ll.cpp.
References idx_bitwidth(), mim::Idx::isa(), and mim::Idx::size2bitwidth().
Referenced by idx_bitwidth().
|
inlinestatic |
Definition at line 333 of file ll.h.
References mim::Shape::is_fused(), is_simd(), mim::Axm::isa(), mim::Idx::isa(), mim::Lit::isa(), and mim::Seq::shape().
Referenced by mim::plug::ll::Emitter::has_vec(), is_simd(), and mim::plug::ll::Emitter::vectorize().
The heavy, target-independent emitter methods are compiled once into libmim_ll (see ll.cpp).
libmim_nvptx reaches them through these extern "C" shims instead of recompiling the bodies; Emitter caches the pointers via GET_FUN_PTR in its constructor.
|
static |
Definition at line 70 of file ll.cpp.
References mim::plug::core::e, mim::plug::core::g, mim::plug::core::ge, mim::plug::core::l, mim::plug::core::le, ncmp_pred(), and mim::plug::core::ne.
Referenced by ncmp_pred().