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 | |
Ref | mim::plug::math::type_f (Ref pe) |
Ref | 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 (Ref def) |
auto | mim::plug::math::match_f16 (Ref def) |
auto | mim::plug::math::match_f32 (Ref def) |
auto | mim::plug::math::match_f64 (Ref def) |
std::optional< nat_t > | mim::plug::math::isa_f (Ref 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 | |
Ref | mim::plug::math::op_rminus (VMode m, Ref 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, Ref> |
Give Mode as mim::plug::math::Mode, mim::nat_t or Ref. | |
Ref | mim::plug::math::mode (World &w, VMode m) |
mim::plug::math::VMode -> Ref. | |