MimIR
MimIR is my Intermediate Representation
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::gpu @ref gpu
7namespace mim {
8namespace plug::gpu {
9
10static constexpr plugin_t Plugin_Id = 0x2115800000000000;
11
12/// @name %%gpu.addr_space_global
13///@{
15};
16
17///@}
18
19/// @name %%gpu.addr_space_shared
20///@{
22};
23
24///@}
25
26/// @name %%gpu.addr_space_const
27///@{
29};
30
31///@}
32
33/// @name %%gpu.addr_space_local
34///@{
36};
37
38///@}
39
40/// @name %%gpu.GlobalM
41///@{
42enum class GlobalM : flags_t {
43};
44
45///@}
46
47/// @name %%gpu.SharedM
48///@{
49enum class SharedM : flags_t {
50};
51
52///@}
53
54/// @name %%gpu.ConstM
55///@{
56enum class ConstM : flags_t {
57};
58
59///@}
60
61/// @name %%gpu.LocalM
62///@{
63enum class LocalM : flags_t {
64};
65
66///@}
67
68/// @name %%gpu.GlobalPtr
69///@{
70enum class GlobalPtr : flags_t {
71};
72
73///@}
74
75/// @name %%gpu.SharedPtr
76///@{
77enum class SharedPtr : flags_t {
78};
79
80///@}
81
82/// @name %%gpu.ConstPtr
83///@{
84enum class ConstPtr : flags_t {
85};
86
87///@}
88
89/// @name %%gpu.LocalPtr
90///@{
91enum class LocalPtr : flags_t {
92};
93
94///@}
95
96/// @name %%gpu.Stream
97///@{
98enum class Stream : flags_t {
99};
100
101///@}
102
103/// @name %%gpu.default_stream
104///@{
106};
107
108///@}
109
110/// @name %%gpu.init
111///@{
112enum class init : flags_t {
113};
114
115///@}
116
117/// @name %%gpu.deinit
118///@{
119enum class deinit : flags_t {
120};
121
122///@}
123
124/// @name %%gpu.auto_init
125///@{
126enum class auto_init : flags_t {
127};
128
129///@}
130
131/// @name %%gpu.auto_deinit
132///@{
133enum class auto_deinit : flags_t {
134};
135
136///@}
137
138/// @name %%gpu.stream_init
139///@{
140enum class stream_init : flags_t {
141};
142
143///@}
144
145/// @name %%gpu.stream_deinit
146///@{
147enum class stream_deinit : flags_t {
148};
149
150///@}
151
152/// @name %%gpu.stream_sync
153///@{
154enum class stream_sync : flags_t {
155};
156
157///@}
158
159/// @name %%gpu.with_streams
160///@{
161enum class with_streams : flags_t {
162};
163
164///@}
165
166/// @name %%gpu.alloc
167///@{
168enum class alloc : flags_t {
169 block = 0x2115800000001600,
170 asyn = 0x2115800000001601,
171};
172
173///@}
174
175/// @name %%gpu.free
176///@{
177enum class free : flags_t {
178 block = 0x2115800000001700,
179 asyn = 0x2115800000001701,
180};
181
182///@}
183
184/// @name %%gpu.copy_to_device
185///@{
187 block = 0x2115800000001800,
188 asyn = 0x2115800000001801,
189};
190
191///@}
192
193/// @name %%gpu.copy_to_host
194///@{
195enum class copy_to_host : flags_t {
196 block = 0x2115800000001900,
197 asyn = 0x2115800000001901,
198};
199
200///@}
201
202/// @name %%gpu.alloc_copy
203///@{
204enum class alloc_copy : flags_t {
205 block = 0x2115800000001a00,
206 asyn = 0x2115800000001a01,
207};
208
209///@}
210
211/// @name %%gpu.buf_alloc_copy
212///@{
214};
215
216///@}
217
218/// @name %%gpu.buf_copy_to_host
219///@{
221};
222
223///@}
224
225/// @name %%gpu.launch
226///@{
227enum class launch : flags_t {
228};
229
230///@}
231
232/// @name %%gpu.sync_work_items
233///@{
235};
236
237///@}
238
239/// @name %%gpu.synced_scope
240///@{
241enum class synced_scope : flags_t {
242};
243
244///@}
245
246/// @name %%gpu.check_addr_spaces_repl
247///@{
249};
250
251///@}
252
253/// @name %%gpu.host_malloc2gpualloc_repl
254///@{
257
258///@}
259
260/// @name %%gpu.mem_checks
261///@{
262enum class mem_checks : flags_t {
263};
264
265///@}
266
267/// @name %%gpu.remove_double_syncs
268///@{
270};
271
272///@}
273
274/// @name %%gpu.split_apply
275///@{
276enum class split_apply : flags_t {
277};
278
279///@}
280
281/// @name %%gpu.lower_btensor_map_reduce
282///@{
285
286///@}
287
288/// @name %%gpu.host_specific_phases
289///@{
291};
292
293///@}
294
295/// @name %%gpu.device_specific_phases
296///@{
298};
299
300///@}
301
302} // namespace plug::gpu
303
304#ifndef DOXYGEN // don't include in Doxygen documentation
305
306template<> constexpr flags_t Annex::Base<plug::gpu::addr_space_global> = 0x2115800000000000;
307template<> constexpr size_t Annex::Num<plug::gpu::addr_space_global> = 0;
308template<> constexpr flags_t Annex::Base<plug::gpu::addr_space_shared> = 0x2115800000000100;
309template<> constexpr size_t Annex::Num<plug::gpu::addr_space_shared> = 0;
310template<> constexpr flags_t Annex::Base<plug::gpu::addr_space_const> = 0x2115800000000200;
311template<> constexpr size_t Annex::Num<plug::gpu::addr_space_const> = 0;
312template<> constexpr flags_t Annex::Base<plug::gpu::addr_space_local> = 0x2115800000000300;
313template<> constexpr size_t Annex::Num<plug::gpu::addr_space_local> = 0;
314template<> constexpr flags_t Annex::Base<plug::gpu::GlobalM> = 0x2115800000000400;
315template<> constexpr size_t Annex::Num<plug::gpu::GlobalM> = 0;
316template<> constexpr flags_t Annex::Base<plug::gpu::SharedM> = 0x2115800000000500;
317template<> constexpr size_t Annex::Num<plug::gpu::SharedM> = 0;
318template<> constexpr flags_t Annex::Base<plug::gpu::ConstM> = 0x2115800000000600;
319template<> constexpr size_t Annex::Num<plug::gpu::ConstM> = 0;
320template<> constexpr flags_t Annex::Base<plug::gpu::LocalM> = 0x2115800000000700;
321template<> constexpr size_t Annex::Num<plug::gpu::LocalM> = 0;
322template<> constexpr flags_t Annex::Base<plug::gpu::GlobalPtr> = 0x2115800000000800;
323template<> constexpr size_t Annex::Num<plug::gpu::GlobalPtr> = 0;
324template<> constexpr flags_t Annex::Base<plug::gpu::SharedPtr> = 0x2115800000000900;
325template<> constexpr size_t Annex::Num<plug::gpu::SharedPtr> = 0;
326template<> constexpr flags_t Annex::Base<plug::gpu::ConstPtr> = 0x2115800000000a00;
327template<> constexpr size_t Annex::Num<plug::gpu::ConstPtr> = 0;
328template<> constexpr flags_t Annex::Base<plug::gpu::LocalPtr> = 0x2115800000000b00;
329template<> constexpr size_t Annex::Num<plug::gpu::LocalPtr> = 0;
330template<> constexpr flags_t Annex::Base<plug::gpu::Stream> = 0x2115800000000c00;
331template<> constexpr size_t Annex::Num<plug::gpu::Stream> = 0;
332template<> constexpr flags_t Annex::Base<plug::gpu::default_stream> = 0x2115800000000d00;
333template<> constexpr size_t Annex::Num<plug::gpu::default_stream> = 0;
334template<> constexpr flags_t Annex::Base<plug::gpu::init> = 0x2115800000000e00;
335template<> constexpr size_t Annex::Num<plug::gpu::init> = 0;
336template<> constexpr flags_t Annex::Base<plug::gpu::deinit> = 0x2115800000000f00;
337template<> constexpr size_t Annex::Num<plug::gpu::deinit> = 0;
338template<> constexpr flags_t Annex::Base<plug::gpu::auto_init> = 0x2115800000001000;
339template<> constexpr size_t Annex::Num<plug::gpu::auto_init> = 0;
340template<> constexpr flags_t Annex::Base<plug::gpu::auto_deinit> = 0x2115800000001100;
341template<> constexpr size_t Annex::Num<plug::gpu::auto_deinit> = 0;
342template<> constexpr flags_t Annex::Base<plug::gpu::stream_init> = 0x2115800000001200;
343template<> constexpr size_t Annex::Num<plug::gpu::stream_init> = 0;
344template<> constexpr flags_t Annex::Base<plug::gpu::stream_deinit> = 0x2115800000001300;
345template<> constexpr size_t Annex::Num<plug::gpu::stream_deinit> = 0;
346template<> constexpr flags_t Annex::Base<plug::gpu::stream_sync> = 0x2115800000001400;
347template<> constexpr size_t Annex::Num<plug::gpu::stream_sync> = 0;
348template<> constexpr flags_t Annex::Base<plug::gpu::with_streams> = 0x2115800000001500;
349template<> constexpr size_t Annex::Num<plug::gpu::with_streams> = 0;
350template<> constexpr flags_t Annex::Base<plug::gpu::alloc> = 0x2115800000001600;
351template<> constexpr size_t Annex::Num<plug::gpu::alloc> = 2;
352template<> constexpr flags_t Annex::Base<plug::gpu::free> = 0x2115800000001700;
353template<> constexpr size_t Annex::Num<plug::gpu::free> = 2;
354template<> constexpr flags_t Annex::Base<plug::gpu::copy_to_device> = 0x2115800000001800;
355template<> constexpr size_t Annex::Num<plug::gpu::copy_to_device> = 2;
356template<> constexpr flags_t Annex::Base<plug::gpu::copy_to_host> = 0x2115800000001900;
357template<> constexpr size_t Annex::Num<plug::gpu::copy_to_host> = 2;
358template<> constexpr flags_t Annex::Base<plug::gpu::alloc_copy> = 0x2115800000001a00;
359template<> constexpr size_t Annex::Num<plug::gpu::alloc_copy> = 2;
360template<> constexpr flags_t Annex::Base<plug::gpu::buf_alloc_copy> = 0x2115800000001b00;
361template<> constexpr size_t Annex::Num<plug::gpu::buf_alloc_copy> = 0;
362template<> constexpr flags_t Annex::Base<plug::gpu::buf_copy_to_host> = 0x2115800000001c00;
363template<> constexpr size_t Annex::Num<plug::gpu::buf_copy_to_host> = 0;
364template<> constexpr flags_t Annex::Base<plug::gpu::launch> = 0x2115800000001d00;
365template<> constexpr size_t Annex::Num<plug::gpu::launch> = 0;
366template<> constexpr flags_t Annex::Base<plug::gpu::sync_work_items> = 0x2115800000001e00;
367template<> constexpr size_t Annex::Num<plug::gpu::sync_work_items> = 0;
368template<> constexpr flags_t Annex::Base<plug::gpu::synced_scope> = 0x2115800000001f00;
369template<> constexpr size_t Annex::Num<plug::gpu::synced_scope> = 0;
370template<> constexpr flags_t Annex::Base<plug::gpu::check_addr_spaces_repl> = 0x2115800000002000;
371template<> constexpr size_t Annex::Num<plug::gpu::check_addr_spaces_repl> = 0;
372template<> constexpr flags_t Annex::Base<plug::gpu::host_malloc2gpualloc_repl> = 0x2115800000002100;
373template<> constexpr size_t Annex::Num<plug::gpu::host_malloc2gpualloc_repl> = 0;
374template<> constexpr flags_t Annex::Base<plug::gpu::mem_checks> = 0x2115800000002200;
375template<> constexpr size_t Annex::Num<plug::gpu::mem_checks> = 0;
376template<> constexpr flags_t Annex::Base<plug::gpu::remove_double_syncs> = 0x2115800000002300;
377template<> constexpr size_t Annex::Num<plug::gpu::remove_double_syncs> = 0;
378template<> constexpr flags_t Annex::Base<plug::gpu::split_apply> = 0x2115800000002400;
379template<> constexpr size_t Annex::Num<plug::gpu::split_apply> = 0;
380template<> constexpr flags_t Annex::Base<plug::gpu::lower_btensor_map_reduce> = 0x2115800000002500;
381template<> constexpr size_t Annex::Num<plug::gpu::lower_btensor_map_reduce> = 0;
382template<> constexpr flags_t Annex::Base<plug::gpu::host_specific_phases> = 0x2115800000002600;
383template<> constexpr size_t Annex::Num<plug::gpu::host_specific_phases> = 0;
384template<> constexpr flags_t Annex::Base<plug::gpu::device_specific_phases> = 0x2115800000002700;
385template<> constexpr size_t Annex::Num<plug::gpu::device_specific_phases> = 0;
386
387template<> struct Axm::IsANode<plug::gpu::addr_space_global> { using type = Axm; };
388template<> struct Axm::IsANode<plug::gpu::addr_space_shared> { using type = Axm; };
389template<> struct Axm::IsANode<plug::gpu::addr_space_const> { using type = Axm; };
390template<> struct Axm::IsANode<plug::gpu::addr_space_local> { using type = Axm; };
391template<> struct Axm::IsANode<plug::gpu::GlobalM> { using type = Axm; };
392template<> struct Axm::IsANode<plug::gpu::SharedM> { using type = Axm; };
393template<> struct Axm::IsANode<plug::gpu::ConstM> { using type = Axm; };
394template<> struct Axm::IsANode<plug::gpu::LocalM> { using type = Axm; };
395template<> struct Axm::IsANode<plug::gpu::GlobalPtr> { using type = Axm; };
396template<> struct Axm::IsANode<plug::gpu::SharedPtr> { using type = Axm; };
397template<> struct Axm::IsANode<plug::gpu::ConstPtr> { using type = Axm; };
398template<> struct Axm::IsANode<plug::gpu::LocalPtr> { using type = Axm; };
399template<> struct Axm::IsANode<plug::gpu::Stream> { using type = Axm; };
400template<> struct Axm::IsANode<plug::gpu::default_stream> { using type = Axm; };
401template<> struct Axm::IsANode<plug::gpu::with_streams> { using type = Axm; };
402template<> struct Axm::IsANode<plug::gpu::alloc_copy> { using type = Axm; };
403template<> struct Axm::IsANode<plug::gpu::synced_scope> { using type = Axm; };
404template<> struct Axm::IsANode<plug::gpu::check_addr_spaces_repl> { using type = Axm; };
405template<> struct Axm::IsANode<plug::gpu::host_malloc2gpualloc_repl> { using type = Axm; };
406template<> struct Axm::IsANode<plug::gpu::mem_checks> { using type = Axm; };
407template<> struct Axm::IsANode<plug::gpu::remove_double_syncs> { using type = Axm; };
408template<> struct Axm::IsANode<plug::gpu::split_apply> { using type = Axm; };
409template<> struct Axm::IsANode<plug::gpu::lower_btensor_map_reduce> { using type = Axm; };
410template<> struct Axm::IsANode<plug::gpu::host_specific_phases> { using type = Axm; };
411template<> struct Axm::IsANode<plug::gpu::device_specific_phases> { using type = Axm; };
412
413#endif
414} // namespace mim
415
416#ifndef DOXYGEN // don't include in Doxygen documentation
417
418template<> struct fe::is_bit_enum<mim::plug::gpu::alloc> : std::true_type {};
419template<> struct fe::is_bit_enum<mim::plug::gpu::free> : std::true_type {};
420template<> struct fe::is_bit_enum<mim::plug::gpu::copy_to_device> : std::true_type {};
421template<> struct fe::is_bit_enum<mim::plug::gpu::copy_to_host> : std::true_type {};
422template<> struct fe::is_bit_enum<mim::plug::gpu::alloc_copy> : std::true_type {};
423
424#endif
Definition axm.h:9
The gpu Plugin
static constexpr plugin_t Plugin_Id
Definition autogen.h:10
host_malloc2gpualloc_repl
Definition autogen.h:255
Definition ast.h:16
u64 flags_t
Definition types.h:39
u64 plugin_t
Definition types.h:40
@ Axm
Definition def.h:122
static constexpr size_t Num
Number of Axm::subtags.
Definition plugin.h:247
static constexpr flags_t Base
Definition plugin.h:248