|
MimIR 0.1
MimIR is my Intermediate Representation
|
Go to the source code of this file.
Namespaces | |
| namespace | mim |
| namespace | mim::plug |
| namespace | mim::plug::math |
| The math Plugin | |
Functions | |
%math.F | |
| const Def * | mim::plug::math::type_f (const Def *pe) |
| const Def * | mim::plug::math::type_f (World &w, nat_t p, nat_t e) |
| template<nat_t P, nat_t E> | |
| auto | mim::plug::math::match_f (const Def *def) |
| auto | mim::plug::math::match_f16 (const Def *def) |
| auto | mim::plug::math::match_f32 (const Def *def) |
| auto | mim::plug::math::match_f64 (const Def *def) |
| std::optional< nat_t > | mim::plug::math::isa_f (const Def *def) |
| template<class R> | |
| const Lit * | mim::plug::math::lit_f (World &w, R val) |
| const Lit * | mim::plug::math::lit_f (World &w, nat_t width, mim::f64 val) |
%math.arith | |
| const Def * | mim::plug::math::op_rminus (VMode m, const Def *a) |
is_commutative/is_associative | |
| constexpr bool | mim::is_commutative (plug::math::extrema) |
| constexpr bool | mim::is_commutative (plug::math::arith id) |
| constexpr bool | mim::is_commutative (plug::math::cmp id) |
| constexpr bool | mim::is_associative (plug::math::arith id) |
Mode | |
| enum class | mim::plug::math::Mode : nat_t { mim::plug::math::top = 0 , mim::plug::math::none = top , mim::plug::math::nnan = 1 << 0 , mim::plug::math::ninf = 1 << 1 , mim::plug::math::nsz = 1 << 2 , mim::plug::math::arcp = 1 << 3 , mim::plug::math::contract = 1 << 4 , mim::plug::math::afn = 1 << 5 , mim::plug::math::reassoc = 1 << 6 , mim::plug::math::finite = nnan | ninf , mim::plug::math::unsafe = nsz | arcp | reassoc , mim::plug::math::fast , mim::plug::math::bot = fast } |
| Allowed optimizations for a specific operation. More... | |
| using | mim::plug::math::VMode = std::variant<Mode, nat_t, const Def*> |
| Give Mode as mim::plug::math::Mode, mim::nat_t or const Def*. | |
| const Def * | mim::plug::math::mode (World &w, VMode m) |
| mim::plug::math::VMode -> const Def*. | |