MimIR
MimIR is my Intermediate Representation
Loading...
Searching...
No Matches
autogen.h File Reference
#include <mim/axm.h>
#include <mim/plugin.h>
Include dependency graph for autogen.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  mim::plug::core
 The core Plugin
namespace  mim
namespace  mim::plug

Macros

#define MIM_core_NORMALIZER_IMPL

Enumerations

<tt>core.M</tt>
enum class  mim::plug::core::M : flags_t
<tt>core.Ptr</tt>
enum class  mim::plug::core::Ptr : flags_t
<tt>core.mode</tt>
enum class  mim::plug::core::mode : flags_t {
  mim::plug::core::us = 0x1104c60000000400 ,
  mim::plug::core::uS = 0x1104c60000000401 ,
  mim::plug::core::nsw = 0x1104c60000000401 ,
  mim::plug::core::Us = 0x1104c60000000402 ,
  mim::plug::core::nuw = 0x1104c60000000402 ,
  mim::plug::core::US = 0x1104c60000000403 ,
  mim::plug::core::nsuw = 0x1104c60000000403
}
<tt>core.minus</tt>
enum class  mim::plug::core::minus : flags_t
<tt>core.select</tt>
enum class  mim::plug::core::select : flags_t
enum class  mim::plug::core::Select : flags_t

Functions

void mim::plug::core::register_normalizers (Normalizers &normalizers)

Variables

static constexpr plugin_t mim::plug::core::Plugin_Id = 0x1104c60000000000

<tt>core.nat</tt>

enum class  mim::plug::core::nat : flags_t {
  mim::plug::core::add = 0x1104c60000000200 ,
  mim::plug::core::sub = 0x1104c60000000201 ,
  mim::plug::core::mul = 0x1104c60000000202 ,
  mim::plug::core::div = 0x1104c60000000203 ,
  mim::plug::core::rem = 0x1104c60000000204
}
template<nat id>
const Def * mim::plug::core::normalize_nat (const Def *type, const Def *callee, const Def *arg)

<tt>core.ncmp</tt>

enum class  mim::plug::core::ncmp : flags_t {
  mim::plug::core::gle = 0x1104c60000000300 ,
  mim::plug::core::f = 0x1104c60000000300 ,
  mim::plug::core::glE = 0x1104c60000000301 ,
  mim::plug::core::e = 0x1104c60000000301 ,
  mim::plug::core::gLe = 0x1104c60000000302 ,
  mim::plug::core::l = 0x1104c60000000302 ,
  mim::plug::core::gLE = 0x1104c60000000303 ,
  mim::plug::core::le = 0x1104c60000000303 ,
  mim::plug::core::Gle = 0x1104c60000000304 ,
  mim::plug::core::g = 0x1104c60000000304 ,
  mim::plug::core::GlE = 0x1104c60000000305 ,
  mim::plug::core::ge = 0x1104c60000000305 ,
  mim::plug::core::GLe = 0x1104c60000000306 ,
  mim::plug::core::ne = 0x1104c60000000306 ,
  mim::plug::core::GLE = 0x1104c60000000307 ,
  mim::plug::core::t = 0x1104c60000000307
}
template<ncmp id>
const Def * mim::plug::core::normalize_ncmp (const Def *type, const Def *callee, const Def *arg)

<tt>core.idx</tt>

enum class  mim::plug::core::idx : flags_t
const Def * mim::plug::core::normalize_idx (const Def *type, const Def *c, const Def *arg)

<tt>core.bit1</tt>

enum class  mim::plug::core::bit1 : flags_t {
  mim::plug::core::f = 0x1104c60000000600 ,
  mim::plug::core::neg = 0x1104c60000000601 ,
  mim::plug::core::id = 0x1104c60000000602 ,
  mim::plug::core::t = 0x1104c60000000603
}
template<bit1 id>
const Def * mim::plug::core::normalize_bit1 (const Def *type, const Def *c, const Def *a)

<tt>core.bit2</tt>

enum class  mim::plug::core::bit2 : flags_t {
  mim::plug::core::f = 0x1104c60000000700 ,
  mim::plug::core::nor = 0x1104c60000000701 ,
  mim::plug::core::nciff = 0x1104c60000000702 ,
  mim::plug::core::nfst = 0x1104c60000000703 ,
  mim::plug::core::niff = 0x1104c60000000704 ,
  mim::plug::core::nsnd = 0x1104c60000000705 ,
  mim::plug::core::xor_ = 0x1104c60000000706 ,
  mim::plug::core::nand = 0x1104c60000000707 ,
  mim::plug::core::and_ = 0x1104c60000000708 ,
  mim::plug::core::nxor = 0x1104c60000000709 ,
  mim::plug::core::snd = 0x1104c6000000070a ,
  mim::plug::core::iff = 0x1104c6000000070b ,
  mim::plug::core::fst = 0x1104c6000000070c ,
  mim::plug::core::ciff = 0x1104c6000000070d ,
  mim::plug::core::or_ = 0x1104c6000000070e ,
  mim::plug::core::t = 0x1104c6000000070f
}
template<bit2 id>
const Def * mim::plug::core::normalize_bit2 (const Def *type, const Def *c, const Def *arg)

<tt>core.shr</tt>

enum class  mim::plug::core::shr : flags_t {
  mim::plug::core::a = 0x1104c60000000800 ,
  mim::plug::core::l = 0x1104c60000000801
}
template<shr id>
const Def * mim::plug::core::normalize_shr (const Def *type, const Def *c, const Def *arg)

<tt>core.wrap</tt>

enum class  mim::plug::core::wrap : flags_t {
  mim::plug::core::add = 0x1104c60000000900 ,
  mim::plug::core::sub = 0x1104c60000000901 ,
  mim::plug::core::mul = 0x1104c60000000902 ,
  mim::plug::core::shl = 0x1104c60000000903
}
template<wrap id>
const Def * mim::plug::core::normalize_wrap (const Def *type, const Def *c, const Def *arg)

<tt>core.div</tt>

enum class  mim::plug::core::div : flags_t {
  mim::plug::core::sdiv = 0x1104c60000000b00 ,
  mim::plug::core::udiv = 0x1104c60000000b01 ,
  mim::plug::core::srem = 0x1104c60000000b02 ,
  mim::plug::core::urem = 0x1104c60000000b03
}
template<div id>
const Def * mim::plug::core::normalize_div (const Def *full_type, const Def *, const Def *arg)

<tt>core.icmp</tt>

enum class  mim::plug::core::icmp : flags_t {
  mim::plug::core::xygle = 0x1104c60000000c00 ,
  mim::plug::core::f = 0x1104c60000000c00 ,
  mim::plug::core::xyglE = 0x1104c60000000c01 ,
  mim::plug::core::e = 0x1104c60000000c01 ,
  mim::plug::core::xygLe = 0x1104c60000000c02 ,
  mim::plug::core::xygLE = 0x1104c60000000c03 ,
  mim::plug::core::xyGle = 0x1104c60000000c04 ,
  mim::plug::core::xyGlE = 0x1104c60000000c05 ,
  mim::plug::core::xyGLe = 0x1104c60000000c06 ,
  mim::plug::core::xyGLE = 0x1104c60000000c07 ,
  mim::plug::core::xYgle = 0x1104c60000000c08 ,
  mim::plug::core::xYglE = 0x1104c60000000c09 ,
  mim::plug::core::xYgLe = 0x1104c60000000c0a ,
  mim::plug::core::sl = 0x1104c60000000c0a ,
  mim::plug::core::xYgLE = 0x1104c60000000c0b ,
  mim::plug::core::sle = 0x1104c60000000c0b ,
  mim::plug::core::xYGle = 0x1104c60000000c0c ,
  mim::plug::core::ug = 0x1104c60000000c0c ,
  mim::plug::core::xYGlE = 0x1104c60000000c0d ,
  mim::plug::core::uge = 0x1104c60000000c0d ,
  mim::plug::core::xYGLe = 0x1104c60000000c0e ,
  mim::plug::core::xYGLE = 0x1104c60000000c0f ,
  mim::plug::core::Xygle = 0x1104c60000000c10 ,
  mim::plug::core::XyglE = 0x1104c60000000c11 ,
  mim::plug::core::XygLe = 0x1104c60000000c12 ,
  mim::plug::core::ul = 0x1104c60000000c12 ,
  mim::plug::core::XygLE = 0x1104c60000000c13 ,
  mim::plug::core::ule = 0x1104c60000000c13 ,
  mim::plug::core::XyGle = 0x1104c60000000c14 ,
  mim::plug::core::sg = 0x1104c60000000c14 ,
  mim::plug::core::XyGlE = 0x1104c60000000c15 ,
  mim::plug::core::sge = 0x1104c60000000c15 ,
  mim::plug::core::XyGLe = 0x1104c60000000c16 ,
  mim::plug::core::XyGLE = 0x1104c60000000c17 ,
  mim::plug::core::XYgle = 0x1104c60000000c18 ,
  mim::plug::core::XYglE = 0x1104c60000000c19 ,
  mim::plug::core::XYgLe = 0x1104c60000000c1a ,
  mim::plug::core::XYgLE = 0x1104c60000000c1b ,
  mim::plug::core::XYGle = 0x1104c60000000c1c ,
  mim::plug::core::XYGlE = 0x1104c60000000c1d ,
  mim::plug::core::XYGLe = 0x1104c60000000c1e ,
  mim::plug::core::ne = 0x1104c60000000c1e ,
  mim::plug::core::XYGLE = 0x1104c60000000c1f ,
  mim::plug::core::t = 0x1104c60000000c1f
}
template<icmp id>
const Def * mim::plug::core::normalize_icmp (const Def *type, const Def *c, const Def *arg)

<tt>core.extrema</tt>

enum class  mim::plug::core::extrema : flags_t {
  mim::plug::core::sm = 0x1104c60000000d00 ,
  mim::plug::core::umin = 0x1104c60000000d00 ,
  mim::plug::core::sM = 0x1104c60000000d01 ,
  mim::plug::core::umax = 0x1104c60000000d01 ,
  mim::plug::core::Sm = 0x1104c60000000d02 ,
  mim::plug::core::smin = 0x1104c60000000d02 ,
  mim::plug::core::SM = 0x1104c60000000d03 ,
  mim::plug::core::smax = 0x1104c60000000d03
}
template<extrema id>
const Def * mim::plug::core::normalize_extrema (const Def *type, const Def *c, const Def *arg)

<tt>core.abs</tt>

enum class  mim::plug::core::abs : flags_t
const Def * mim::plug::core::normalize_abs (const Def *type, const Def *, const Def *arg)

<tt>core.conv</tt>

enum class  mim::plug::core::conv : flags_t {
  mim::plug::core::s = 0x1104c60000000f00 ,
  mim::plug::core::u = 0x1104c60000000f01
}
template<conv id>
const Def * mim::plug::core::normalize_conv (const Def *dst_t, const Def *, const Def *x)

<tt>core.idx2nat</tt>

enum class  mim::plug::core::idx2nat : flags_t
const Def * mim::plug::core::normalize_idx2nat (const Def *type, const Def *, const Def *x)

<tt>core.bitcast</tt>

enum class  mim::plug::core::bitcast : flags_t
const Def * mim::plug::core::normalize_bitcast (const Def *dst_t, const Def *, const Def *src)

<tt>core.trait</tt>

enum class  mim::plug::core::trait : flags_t {
  mim::plug::core::size = 0x1104c60000001200 ,
  mim::plug::core::align = 0x1104c60000001201
}
template<trait id>
const Def * mim::plug::core::normalize_trait (const Def *, const Def *, const Def *type)

<tt>core.pe</tt>

enum class  mim::plug::core::pe : flags_t {
  mim::plug::core::hlt = 0x1104c60000001300 ,
  mim::plug::core::run = 0x1104c60000001301 ,
  mim::plug::core::is_closed = 0x1104c60000001302
}
template<pe id>
const Def * mim::plug::core::normalize_pe (const Def *type, const Def *, const Def *arg)

Macro Definition Documentation

◆ MIM_core_NORMALIZER_IMPL

#define MIM_core_NORMALIZER_IMPL

Definition at line 325 of file autogen.h.