MimIR
0.4-dev
MimIR is my Intermediate Representation
Toggle main menu visibility
Loading...
Searching...
No Matches
autogen.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <
mim/axm.h
>
4
#include <
mim/plugin.h
>
5
6
/// @namespace mim::plug::btensor @ref btensor
7
namespace
mim
{
8
namespace
plug::btensor
{
9
10
static
constexpr
plugin_t
Plugin_Id
= 0xd518f5104c00000;
11
12
/// @name %%btensor.Ring
13
///@{
14
enum class
Ring
:
flags_t
{
15
};
16
17
///@}
18
19
/// @name %%btensor.id
20
///@{
21
enum class
id
:
flags_t
{
22
};
23
24
///@}
25
26
/// @name %%btensor.map_reduce
27
///@{
28
enum class
map_reduce
:
flags_t
{
29
};
30
31
const
Def
*
normalize_map_reduce
(
const
Def
*,
const
Def
*,
const
Def
*);
32
///@}
33
34
/// @name %%btensor.map_reduce_post
35
///@{
36
enum class
map_reduce_post
:
flags_t
{
37
};
38
39
///@}
40
41
/// @name %%btensor.mk_sched
42
///@{
43
enum class
mk_sched
:
flags_t
{
44
};
45
46
///@}
47
48
/// @name %%btensor.proj_map
49
///@{
50
enum class
proj_map
:
flags_t
{
51
};
52
53
///@}
54
55
/// @name %%btensor.broadcast
56
///@{
57
enum class
broadcast
:
flags_t
{
58
};
59
60
///@}
61
62
/// @name %%btensor.concat
63
///@{
64
enum class
concat
:
flags_t
{
65
};
66
67
///@}
68
69
/// @name %%btensor.pad
70
///@{
71
enum class
pad
:
flags_t
{
72
};
73
74
///@}
75
76
/// @name %%btensor.transpose_2d
77
///@{
78
enum class
transpose_2d
:
flags_t
{
79
};
80
81
///@}
82
83
/// @name %%btensor.product_2d
84
///@{
85
enum class
product_2d
:
flags_t
{
86
};
87
88
///@}
89
90
/// @name %%btensor.gather
91
///@{
92
enum class
gather
:
flags_t
{
93
};
94
95
///@}
96
97
/// @name %%btensor.scatter
98
///@{
99
enum class
scatter
:
flags_t
{
100
};
101
102
///@}
103
104
/// @name %%btensor.NestT
105
///@{
106
enum class
NestT
:
flags_t
{
107
};
108
109
///@}
110
111
/// @name %%btensor.mr_nest
112
///@{
113
enum class
mr_nest
:
flags_t
{
114
};
115
116
///@}
117
118
/// @name %%btensor.lower_map_reduce
119
///@{
120
enum class
lower_map_reduce
:
flags_t
{
121
};
122
123
///@}
124
125
void
register_normalizers
(
Normalizers
& normalizers);
126
127
#define MIM_btensor_NORMALIZER_IMPL \
128
void register_normalizers(Normalizers& normalizers) {\
129
normalizers[flags_t(Annex::Base<map_reduce>)] = &normalize_map_reduce; \
130
}
131
}
// namespace plug::btensor
132
133
#ifndef DOXYGEN
// don't include in Doxygen documentation
134
135
template
<>
constexpr
flags_t
Annex::Base<plug::btensor::Ring>
= 0xd518f5104c00000;
136
template
<>
constexpr
size_t
Annex::Num<plug::btensor::Ring>
= 0;
137
template
<>
constexpr
flags_t
Annex::Base<plug::btensor::id>
= 0xd518f5104c00100;
138
template
<>
constexpr
size_t
Annex::Num<plug::btensor::id>
= 0;
139
template
<>
constexpr
flags_t
Annex::Base<plug::btensor::map_reduce>
= 0xd518f5104c00200;
140
template
<>
constexpr
size_t
Annex::Num<plug::btensor::map_reduce>
= 0;
141
template
<>
constexpr
flags_t
Annex::Base<plug::btensor::map_reduce_post>
= 0xd518f5104c00300;
142
template
<>
constexpr
size_t
Annex::Num<plug::btensor::map_reduce_post>
= 0;
143
template
<>
constexpr
flags_t
Annex::Base<plug::btensor::mk_sched>
= 0xd518f5104c00400;
144
template
<>
constexpr
size_t
Annex::Num<plug::btensor::mk_sched>
= 0;
145
template
<>
constexpr
flags_t
Annex::Base<plug::btensor::proj_map>
= 0xd518f5104c00500;
146
template
<>
constexpr
size_t
Annex::Num<plug::btensor::proj_map>
= 0;
147
template
<>
constexpr
flags_t
Annex::Base<plug::btensor::broadcast>
= 0xd518f5104c00600;
148
template
<>
constexpr
size_t
Annex::Num<plug::btensor::broadcast>
= 0;
149
template
<>
constexpr
flags_t
Annex::Base<plug::btensor::concat>
= 0xd518f5104c00700;
150
template
<>
constexpr
size_t
Annex::Num<plug::btensor::concat>
= 0;
151
template
<>
constexpr
flags_t
Annex::Base<plug::btensor::pad>
= 0xd518f5104c00800;
152
template
<>
constexpr
size_t
Annex::Num<plug::btensor::pad>
= 0;
153
template
<>
constexpr
flags_t
Annex::Base<plug::btensor::transpose_2d>
= 0xd518f5104c00900;
154
template
<>
constexpr
size_t
Annex::Num<plug::btensor::transpose_2d>
= 0;
155
template
<>
constexpr
flags_t
Annex::Base<plug::btensor::product_2d>
= 0xd518f5104c00a00;
156
template
<>
constexpr
size_t
Annex::Num<plug::btensor::product_2d>
= 0;
157
template
<>
constexpr
flags_t
Annex::Base<plug::btensor::gather>
= 0xd518f5104c00b00;
158
template
<>
constexpr
size_t
Annex::Num<plug::btensor::gather>
= 0;
159
template
<>
constexpr
flags_t
Annex::Base<plug::btensor::scatter>
= 0xd518f5104c00c00;
160
template
<>
constexpr
size_t
Annex::Num<plug::btensor::scatter>
= 0;
161
template
<>
constexpr
flags_t
Annex::Base<plug::btensor::NestT>
= 0xd518f5104c00d00;
162
template
<>
constexpr
size_t
Annex::Num<plug::btensor::NestT>
= 0;
163
template
<>
constexpr
flags_t
Annex::Base<plug::btensor::mr_nest>
= 0xd518f5104c00e00;
164
template
<>
constexpr
size_t
Annex::Num<plug::btensor::mr_nest>
= 0;
165
template
<>
constexpr
flags_t
Annex::Base<plug::btensor::lower_map_reduce>
= 0xd518f5104c00f00;
166
template
<>
constexpr
size_t
Annex::Num<plug::btensor::lower_map_reduce>
= 0;
167
168
template
<>
struct
Axm::IsANode
<
plug
::btensor::Ring> {
using
type
=
Axm
; };
169
template
<>
struct
Axm::IsANode
<
plug
::btensor::id> {
using
type
=
Axm
; };
170
template
<>
struct
Axm::IsANode
<
plug
::btensor::mk_sched> {
using
type
=
Axm
; };
171
template
<>
struct
Axm::IsANode
<
plug
::btensor::proj_map> {
using
type
=
Axm
; };
172
template
<>
struct
Axm::IsANode
<
plug
::btensor::transpose_2d> {
using
type
=
Axm
; };
173
template
<>
struct
Axm::IsANode
<
plug
::btensor::product_2d> {
using
type
=
Axm
; };
174
template
<>
struct
Axm::IsANode
<
plug
::btensor::NestT> {
using
type
=
Axm
; };
175
template
<>
struct
Axm::IsANode
<
plug
::btensor::mr_nest> {
using
type
=
Axm
; };
176
template
<>
struct
Axm::IsANode
<
plug
::btensor::lower_map_reduce> {
using
type
=
Axm
; };
177
178
#endif
179
}
// namespace mim
180
181
#ifndef DOXYGEN
// don't include in Doxygen documentation
182
183
184
#endif
axm.h
mim::Axm::IsANode::type
App type
Definition
axm.h:70
mim::Axm::IsANode
Definition
axm.h:69
mim::Def
Base class for all Defs.
Definition
def.h:273
mim::plug::btensor
The btensor Plugin
Definition
lower_map_reduce.h:6
mim::plug::btensor::map_reduce
map_reduce
Definition
autogen.h:28
mim::plug::btensor::mr_nest
mr_nest
Definition
autogen.h:113
mim::plug::btensor::pad
pad
Definition
autogen.h:71
mim::plug::btensor::id
id
Definition
autogen.h:21
mim::plug::btensor::Ring
Ring
Definition
autogen.h:14
mim::plug::btensor::broadcast
broadcast
Definition
autogen.h:57
mim::plug::btensor::gather
gather
Definition
autogen.h:92
mim::plug::btensor::map_reduce_post
map_reduce_post
Definition
autogen.h:36
mim::plug::btensor::mk_sched
mk_sched
Definition
autogen.h:43
mim::plug::btensor::normalize_map_reduce
const Def * normalize_map_reduce(const Def *, const Def *c, const Def *arg)
btensor.map_reduce is btensor.map_reduce_post without the epilogue and with the neutral schedule: del...
Definition
normalizers.cpp:14
mim::plug::btensor::scatter
scatter
Definition
autogen.h:99
mim::plug::btensor::Plugin_Id
static constexpr plugin_t Plugin_Id
Definition
autogen.h:10
mim::plug::btensor::product_2d
product_2d
Definition
autogen.h:85
mim::plug::btensor::lower_map_reduce
lower_map_reduce
Definition
autogen.h:120
mim::plug::btensor::transpose_2d
transpose_2d
Definition
autogen.h:78
mim::plug::btensor::NestT
NestT
Definition
autogen.h:106
mim::plug::btensor::proj_map
proj_map
Definition
autogen.h:50
mim::plug::btensor::concat
concat
Definition
autogen.h:64
mim::plug::btensor::register_normalizers
void register_normalizers(Normalizers &normalizers)
mim::plug
Definition
lower_for.h:5
mim
Definition
ast.h:16
mim::flags_t
u64 flags_t
Definition
types.h:39
mim::Normalizers
absl::flat_hash_map< flags_t, NormalizeFn > Normalizers
Definition
plugin.h:27
mim::plugin_t
u64 plugin_t
Definition
types.h:40
mim::Node::Axm
@ Axm
Definition
def.h:122
plugin.h
mim::Annex::Num
static constexpr size_t Num
Number of Axm::subtags.
Definition
plugin.h:247
mim::Annex::Base
static constexpr flags_t Base
Definition
plugin.h:248
build
include
mim
plug
btensor
autogen.h
Generated by
1.18.0