| //===-- LanguageAliases.inc - Language runtime symbol aliases -------------===// |
| // |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| // |
| //===----------------------------------------------------------------------===// |
| // |
| // The LLVM offload kernel runtime implements the shared __llvm* entry points |
| // once. These wrappers expose the CUDA/HIP ABI names, such as |
| // __cudaRegisterFunction and __hipPopCallConfiguration, as forwarding entry |
| // points to the shared implementations. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| // This file intentionally has no include guard. It is included once for each |
| // LANGUAGE value to emit each language's alias definitions. |
| |
| #ifndef LANGUAGE |
| #error This file should be included, or used, with a LANGUAGE macro set. |
| #endif |
| |
| #define LA_IMPL2(PREFIX, L, NAME) PREFIX##L##NAME |
| #define LA_IMPL1(PREFIX, L, NAME) LA_IMPL2(PREFIX, L, NAME) |
| #define LANGUAGE_NAME(PREFIX, NAME) LA_IMPL1(PREFIX, LANGUAGE, NAME) |
| |
| extern "C" void |
| LANGUAGE_NAME(__, RegisterFunction)(const char *Binary, const char *KernelID, |
| char *KernelName, const char *KernelName1, |
| int ThreadLimit, uint3 *Tid, uint3 *Bid, |
| dim3 *BlockDim, dim3 *GridDim, int *WSize) { |
| __llvmRegisterFunction(Binary, KernelID, KernelName, KernelName1, ThreadLimit, |
| Tid, Bid, BlockDim, GridDim, WSize); |
| } |
| |
| extern "C" void LANGUAGE_NAME(__, RegisterVar)(void **Data, char *HostVar, |
| char *DeviceAddress, |
| const char *DeviceName, int Ext, |
| int Size, int Constant, |
| int Global) { |
| __llvmRegisterVar(Data, HostVar, DeviceAddress, DeviceName, Ext, Size, |
| Constant, Global); |
| } |
| |
| extern "C" void LANGUAGE_NAME(__, |
| RegisterManagedVar)(void **Data, char *HostVar, |
| char *DeviceAddress, |
| const char *DeviceName, |
| size_t Size, unsigned Align) { |
| __llvmRegisterManagedVar(Data, HostVar, DeviceAddress, DeviceName, Size, |
| Align); |
| } |
| |
| extern "C" void LANGUAGE_NAME(__, RegisterSurface)( |
| void **Data, const struct surfaceReference *SurfRef, const void **DevPtr, |
| const char *Name, int Dim, int Ext) { |
| __llvmRegisterSurface(Data, SurfRef, DevPtr, Name, Dim, Ext); |
| } |
| |
| extern "C" void LANGUAGE_NAME(__, RegisterTexture)( |
| void **Data, const struct textureReference *TexRef, const void **DevPtr, |
| const char *Name, int Dim, int Norm, int Ext) { |
| __llvmRegisterTexture(Data, TexRef, DevPtr, Name, Dim, Norm, Ext); |
| } |
| |
| #undef LANGUAGE_NAME |
| #undef LA_IMPL1 |
| #undef LA_IMPL2 |