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