13#ifndef PROTEUS_JIT_INTERFACE_HPP
14#define PROTEUS_JIT_INTERFACE_HPP
35template <
typename T>
__attribute__((noinline))
void jit_arg(T V)
noexcept;
36#if defined(__CUDACC__) || defined(__HIP__)
38__attribute__((noinline)) __device__
void jit_arg(T V)
noexcept;
42static __attribute__((noinline)) T jit_variable(T v,
int pos = -1) {
44 std::memcpy(&RC, &v,
sizeof(T));
53 const char *Symbol =
"") {
54 assert(Symbol &&
"Expected non-null Symbol");
56 return std::forward<T>(t);
59#if defined(__CUDACC__) || defined(__HIP__)
62shared_array([[maybe_unused]]
size_t N,
63 [[maybe_unused]]
size_t ElemSize =
sizeof(T)) {
73inline void disable() {
80#if PROTEUS_ENABLE_HIP || PROTEUS_ENABLE_CUDA
85inline void finalize() {
87#if PROTEUS_ENABLE_HIP || PROTEUS_ENABLE_CUDA
void __jit_init_device()
Definition CompilerInterfaceDevice.cpp:65
void __jit_enable_device()
Definition CompilerInterfaceDevice.cpp:72
void __jit_disable_device()
Definition CompilerInterfaceDevice.cpp:77
void __jit_finalize_device()
Definition CompilerInterfaceDevice.cpp:67
void __jit_init_host()
Definition CompilerInterfaceHost.cpp:40
void __jit_disable_host()
Definition CompilerInterfaceHost.cpp:49
void __jit_enable_host()
Definition CompilerInterfaceHost.cpp:44
void __jit_finalize_host()
Definition CompilerInterfaceHost.cpp:42
void __jit_init_host()
Definition CompilerInterfaceHost.cpp:40
void __jit_init_device()
Definition CompilerInterfaceDevice.cpp:65
void __jit_enable_device()
Definition CompilerInterfaceDevice.cpp:72
void __jit_disable_host()
Definition CompilerInterfaceHost.cpp:49
void __jit_enable_host()
Definition CompilerInterfaceHost.cpp:44
void __jit_disable_device()
Definition CompilerInterfaceDevice.cpp:77
void __jit_finalize_host()
Definition CompilerInterfaceHost.cpp:42
void __jit_push_variable(proteus::RuntimeConstant RC)
void __jit_register_lambda(const char *Symbol)
void __jit_finalize_device()
Definition CompilerInterfaceDevice.cpp:67
Definition Dispatcher.cpp:14
__attribute__((noinline)) void jit_arg(T V) noexcept
Definition CompilerInterfaceTypes.h:38
int32_t Slot
Definition CompilerInterfaceTypes.h:54