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::core
 The core Plugin
 

Macros

#define CODE(i)    case i: res = fold<Id, id, i>(*la, *lb, nsw, nuw); break;
 
#define CODE(i)    case i: res = fold<Id, i>(*la, nsw, nuw); break;
 
#define M(S, D)    else if (S == sw && D == dw) return world.lit(d_t, w2s<D>(thorin::bitcast<w2s<S>>(*l)));
 

Functions

%core.nat
template<nat id>
Ref thorin::plug::core::normalize_nat (Ref type, Ref callee, Ref arg)
 
%core.ncmp
template<ncmp id>
Ref thorin::plug::core::normalize_ncmp (Ref type, Ref callee, Ref arg)
 
%core.icmp
template<icmp id>
Ref thorin::plug::core::normalize_icmp (Ref type, Ref c, Ref arg)
 
%core.extrema
template<extrema id>
Ref thorin::plug::core::normalize_extrema (Ref type, Ref c, Ref arg)
 
%core.abs
Ref thorin::plug::core::normalize_abs (Ref type, Ref c, Ref arg)
 
%core.bit1
template<bit1 id>
Ref thorin::plug::core::normalize_bit1 (Ref type, Ref c, Ref a)
 
%core.bit2
template<bit2 id>
Ref thorin::plug::core::normalize_bit2 (Ref type, Ref c, Ref arg)
 
%core.idx
Ref thorin::plug::core::normalize_idx (Ref type, Ref c, Ref arg)
 
%core.shr
template<shr id>
Ref thorin::plug::core::normalize_shr (Ref type, Ref c, Ref arg)
 
%core.wrap
template<wrap id>
Ref thorin::plug::core::normalize_wrap (Ref type, Ref c, Ref arg)
 
%core.div
template<div id>
Ref thorin::plug::core::normalize_div (Ref full_type, Ref c, Ref arg)
 
%core.conv
template<conv id>
Ref thorin::plug::core::normalize_conv (Ref dst_t, Ref c, Ref x)
 
%core.bitcast
Ref thorin::plug::core::normalize_bitcast (Ref dst_t, Ref callee, Ref src)
 
%core.trait
template<trait id>
Ref thorin::plug::core::normalize_trait (Ref nat, Ref callee, Ref type)
 
%core.zip
Ref thorin::plug::core::normalize_zip (Ref type, Ref c, Ref arg)
 
%core.pe
template<pe id>
Ref thorin::plug::core::normalize_pe (Ref type, Ref callee, Ref arg)
 

Macro Definition Documentation

◆ CODE [1/2]

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

◆ CODE [2/2]

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

◆ M

#define M (   S,
 
)     else if (S == sw && D == dw) return world.lit(d_t, w2s<D>(thorin::bitcast<w2s<S>>(*l)));