MimIR
0.4-dev
MimIR is my Intermediate Representation
Toggle main menu visibility
Loading...
Searching...
No Matches
ll_nvptx.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <optional>
4
#include <string>
5
6
#include <
mim/plug/ll/ll.h
>
7
8
namespace
mim
{
9
10
class
World
;
11
12
namespace
plug::ll_nvptx
{
13
14
/// Prefix for this backend's fe::throwf messages; see MIM_LL_BE.
15
#define MIM_LL_NVPTX_BE "ll_nvptx backend: "
16
17
namespace
ll =
mim::plug::ll
;
18
19
struct
DeviceEmitFlags
{
20
bool
uses_libdevice
;
21
};
22
23
void
emit_host
(
World
&, std::ostream&, std::optional<std::string>,
ll::Emitter::Rt
rt =
ll::Emitter::Rt::embed
);
24
DeviceEmitFlags
emit_device
(
World
&, std::ostream&);
25
26
}
// namespace plug::ll_nvptx
27
28
}
// namespace mim
mim::World
The World represents the whole program and manages creation of MimIR nodes (Defs).
Definition
world.h:40
mim::plug::ll::Emitter::Rt
Rt
How the C runtime wrappers (compiled to a <name>.ll via add_mim_runtime) reach the output.
Definition
ll.h:165
mim::plug::ll::Emitter::Rt::embed
@ embed
Splice the wrapper IR into the emitted module so it is self-contained.
Definition
ll.h:166
ll.h
mim::plug::ll_nvptx
The ll_nvptx Plugin
Definition
ll_nvptx.h:12
mim::plug::ll_nvptx::DeviceEmitFlags::uses_libdevice
bool uses_libdevice
Definition
ll_nvptx.h:20
mim::plug::ll_nvptx::emit_device
DeviceEmitFlags emit_device(World &, std::ostream &)
Definition
ll_nvptx.cpp:664
mim::plug::ll_nvptx::emit_host
void emit_host(World &, std::ostream &, std::optional< std::string >, ll::Emitter::Rt rt=ll::Emitter::Rt::embed)
Definition
ll_nvptx.cpp:656
mim::plug::ll_nvptx::DeviceEmitFlags
Definition
ll_nvptx.h:19
mim::plug::ll
The ll Plugin
Definition
ll.h:39
mim
Definition
ast.h:16
include
mim
plug
ll_nvptx
phase
ll_nvptx.h
Generated by
1.18.0