Thorin 1.9.0
The Higher ORder INtermediate representation
Loading...
Searching...
No Matches
normalizers.cpp File Reference
Include dependency graph for normalizers.cpp:

Go to the source code of this file.

Namespaces

namespace  thorin
 
namespace  thorin::plug
 
namespace  thorin::plug::math
 The math Plugin
 

Macros

#define CODE(i)    case i: res = fold<Id, i>(la->get()); break;
 
#define CODE(i)    case i: res = fold<Id, id, i>(*la); break;
 
#define CODE(i)    case i: res = fold<Id, id, i>(*la, *lb); break;
 
#define M(S, D)
 

Functions

%math.arith
template<arith id>
Ref thorin::plug::math::normalize_arith (Ref type, Ref c, Ref arg)
 
%math.extrema
template<extrema id>
Ref thorin::plug::math::normalize_extrema (Ref type, Ref c, Ref arg)
 
%math.tri
template<tri id>
Ref thorin::plug::math::normalize_tri (Ref type, Ref c, Ref arg)
 
%math.pow
Ref thorin::plug::math::normalize_pow (Ref type, Ref c, Ref arg)
 
%math.rt
template<rt id>
Ref thorin::plug::math::normalize_rt (Ref type, Ref c, Ref arg)
 
%math.exp
template<exp id>
Ref thorin::plug::math::normalize_exp (Ref type, Ref c, Ref arg)
 
%math.er
template<er id>
Ref thorin::plug::math::normalize_er (Ref type, Ref c, Ref arg)
 
%math.gamma
template<gamma id>
Ref thorin::plug::math::normalize_gamma (Ref type, Ref c, Ref arg)
 
%math.cmp
template<cmp id>
Ref thorin::plug::math::normalize_cmp (Ref type, Ref c, Ref arg)
 
%math.conv
template<conv id>
Ref thorin::plug::math::normalize_conv (Ref dst_t, Ref c, Ref x)
 
%math.abs
Ref thorin::plug::math::normalize_abs (Ref type, Ref c, Ref arg)
 
%math.round
template<round id>
Ref thorin::plug::math::normalize_round (Ref type, Ref c, Ref arg)
 

Macro Definition Documentation

◆ CODE [1/3]

#define CODE (   i)     case i: res = fold<Id, i>(la->get()); break;

◆ CODE [2/3]

#define CODE (   i)     case i: res = fold<Id, id, i>(*la); break;

◆ CODE [3/3]

#define CODE (   i)     case i: res = fold<Id, id, i>(*la, *lb); break;

◆ M

#define M (   S,
 
)
Value:
else if (S == *sw && D == *dw) { \
if constexpr (S >= min_s && D >= min_d) \
res = fold<conv, id, S, D>(*l); \
else \
goto out; \
}