DPC++ Runtime
Runtime libraries for oneAPI DPC++
compiler.hpp File Reference
#include <cstddef>
#include <cstdint>
Include dependency graph for compiler.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _sycl_offload_entry_struct
 
struct  _sycl_device_binary_property_struct
 
struct  _sycl_device_binary_property_set_struct
 
struct  sycl_device_binary_struct
 This struct is a record of the device binary information. More...
 
struct  sycl_device_binaries_struct
 This struct is a record of all the device code that may be offloaded. More...
 

Macros

#define __SYCL_DEVICE_BINARY_TARGET_UNKNOWN   "<unknown>"
 Target identification strings. More...
 
#define __SYCL_DEVICE_BINARY_TARGET_SPIRV32   "spir"
 SPIR-V 32-bit image <-> "spir", 32-bit OpenCL device. More...
 
#define __SYCL_DEVICE_BINARY_TARGET_SPIRV64   "spir64"
 SPIR-V 64-bit image <-> "spir64", 64-bit OpenCL device. More...
 
#define __SYCL_DEVICE_BINARY_TARGET_SPIRV64_X86_64   "spir64_x86_64"
 Device-specific binary images produced from SPIR-V 64-bit <-> various "spir64_*" triples for specific 64-bit OpenCL devices. More...
 
#define __SYCL_DEVICE_BINARY_TARGET_SPIRV64_GEN   "spir64_gen"
 
#define __SYCL_DEVICE_BINARY_TARGET_SPIRV64_FPGA   "spir64_fpga"
 
#define __SYCL_DEVICE_BINARY_TARGET_NVPTX64   "nvptx64"
 PTX 64-bit image <-> "nvptx64", 64-bit NVIDIA PTX device. More...
 
#define __SYCL_DEVICE_BINARY_TARGET_AMDGCN   "amdgcn"
 
#define __SYCL_DEVICE_BINARY_TARGET_NATIVE_CPU   "native_cpu"
 
#define __SYCL_PROPERTY_SET_SPEC_CONST_MAP   "SYCL/specialization constants"
 Device binary image property set names recognized by the SYCL runtime. More...
 
#define __SYCL_PROPERTY_SET_SPEC_CONST_DEFAULT_VALUES_MAP    "SYCL/specialization constants default values"
 PropertySetRegistry::SYCL_SPEC_CONSTANTS_DEFAULT_VALUES defined in PropertySetIO.h. More...
 
#define __SYCL_PROPERTY_SET_DEVICELIB_REQ_MASK   "SYCL/devicelib req mask"
 PropertySetRegistry::SYCL_DEVICELIB_REQ_MASK defined in PropertySetIO.h. More...
 
#define __SYCL_PROPERTY_SET_KERNEL_PARAM_OPT_INFO   "SYCL/kernel param opt"
 PropertySetRegistry::SYCL_KERNEL_PARAM_OPT_INFO defined in PropertySetIO.h. More...
 
#define __SYCL_PROPERTY_SET_PROGRAM_METADATA   "SYCL/program metadata"
 PropertySetRegistry::SYCL_KERNEL_PROGRAM_METADATA defined in PropertySetIO.h. More...
 
#define __SYCL_PROPERTY_SET_SYCL_MISC_PROP   "SYCL/misc properties"
 PropertySetRegistry::SYCL_MISC_PROP defined in PropertySetIO.h. More...
 
#define __SYCL_PROPERTY_SET_SYCL_ASSERT_USED   "SYCL/assert used"
 PropertySetRegistry::SYCL_ASSERT_USED defined in PropertySetIO.h. More...
 
#define __SYCL_PROPERTY_SET_SYCL_EXPORTED_SYMBOLS   "SYCL/exported symbols"
 PropertySetRegistry::SYCL_EXPORTED_SYMBOLS defined in PropertySetIO.h. More...
 
#define __SYCL_PROPERTY_SET_SYCL_IMPORTED_SYMBOLS   "SYCL/imported symbols"
 PropertySetRegistry::SYCL_IMPORTED_SYMBOLS defined in PropertySetIO.h. More...
 
#define __SYCL_PROPERTY_SET_SYCL_DEVICE_GLOBALS   "SYCL/device globals"
 PropertySetRegistry::SYCL_DEVICE_GLOBALS defined in PropertySetIO.h. More...
 
#define __SYCL_PROPERTY_SET_SYCL_DEVICE_REQUIREMENTS   "SYCL/device requirements"
 PropertySetRegistry::SYCL_DEVICE_REQUIREMENTS defined in PropertySetIO.h. More...
 
#define __SYCL_PROPERTY_SET_SYCL_HOST_PIPES   "SYCL/host pipes"
 PropertySetRegistry::SYCL_HOST_PIPES defined in PropertySetIO.h. More...
 
#define __SYCL_PROPERTY_SET_SYCL_VIRTUAL_FUNCTIONS   "SYCL/virtual functions"
 PropertySetRegistry::SYCL_VIRTUAL_FUNCTIONS defined in PropertySetIO.h. More...
 
#define __SYCL_PROGRAM_METADATA_TAG_REQD_WORK_GROUP_SIZE   "@reqd_work_group_size"
 Program metadata tags recognized by the PI backends. More...
 
#define __SYCL_PROGRAM_METADATA_GLOBAL_ID_MAPPING   "@global_id_mapping"
 
#define __SYCL_PROGRAM_METADATA_TAG_NEED_FINALIZATION   "Requires finalization"
 

Typedefs

using sycl_offload_entry = _sycl_offload_entry_struct *
 
using sycl_device_binary_property = _sycl_device_binary_property_struct *
 
using sycl_device_binary_property_set = _sycl_device_binary_property_set_struct *
 
using sycl_device_binary = sycl_device_binary_struct *
 
using sycl_device_binaries = sycl_device_binaries_struct *
 

Enumerations

enum  sycl_property_type { SYCL_PROPERTY_TYPE_UNKNOWN , SYCL_PROPERTY_TYPE_UINT32 , SYCL_PROPERTY_TYPE_BYTE_ARRAY , SYCL_PROPERTY_TYPE_STRING }
 
enum  sycl_device_binary_type : uint8_t { SYCL_DEVICE_BINARY_TYPE_NONE = 0 , SYCL_DEVICE_BINARY_TYPE_NATIVE = 1 , SYCL_DEVICE_BINARY_TYPE_SPIRV = 2 , SYCL_DEVICE_BINARY_TYPE_LLVMIR_BITCODE = 3 }
 Types of device binary. More...
 

Variables

static const uint16_t SYCL_DEVICE_BINARY_VERSION = 1
 
static const uint8_t SYCL_DEVICE_BINARY_OFFLOAD_KIND_SYCL = 4
 
static const uint16_t SYCL_DEVICE_BINARIES_VERSION = 1
 

Macro Definition Documentation

◆ __SYCL_DEVICE_BINARY_TARGET_AMDGCN

#define __SYCL_DEVICE_BINARY_TARGET_AMDGCN   "amdgcn"

Definition at line 32 of file compiler.hpp.

◆ __SYCL_DEVICE_BINARY_TARGET_NATIVE_CPU

#define __SYCL_DEVICE_BINARY_TARGET_NATIVE_CPU   "native_cpu"

Definition at line 33 of file compiler.hpp.

◆ __SYCL_DEVICE_BINARY_TARGET_NVPTX64

#define __SYCL_DEVICE_BINARY_TARGET_NVPTX64   "nvptx64"

PTX 64-bit image <-> "nvptx64", 64-bit NVIDIA PTX device.

Definition at line 31 of file compiler.hpp.

◆ __SYCL_DEVICE_BINARY_TARGET_SPIRV32

#define __SYCL_DEVICE_BINARY_TARGET_SPIRV32   "spir"

SPIR-V 32-bit image <-> "spir", 32-bit OpenCL device.

Definition at line 22 of file compiler.hpp.

◆ __SYCL_DEVICE_BINARY_TARGET_SPIRV64

#define __SYCL_DEVICE_BINARY_TARGET_SPIRV64   "spir64"

SPIR-V 64-bit image <-> "spir64", 64-bit OpenCL device.

Definition at line 24 of file compiler.hpp.

◆ __SYCL_DEVICE_BINARY_TARGET_SPIRV64_FPGA

#define __SYCL_DEVICE_BINARY_TARGET_SPIRV64_FPGA   "spir64_fpga"

Definition at line 29 of file compiler.hpp.

◆ __SYCL_DEVICE_BINARY_TARGET_SPIRV64_GEN

#define __SYCL_DEVICE_BINARY_TARGET_SPIRV64_GEN   "spir64_gen"

Definition at line 28 of file compiler.hpp.

◆ __SYCL_DEVICE_BINARY_TARGET_SPIRV64_X86_64

#define __SYCL_DEVICE_BINARY_TARGET_SPIRV64_X86_64   "spir64_x86_64"

Device-specific binary images produced from SPIR-V 64-bit <-> various "spir64_*" triples for specific 64-bit OpenCL devices.

Definition at line 27 of file compiler.hpp.

◆ __SYCL_DEVICE_BINARY_TARGET_UNKNOWN

#define __SYCL_DEVICE_BINARY_TARGET_UNKNOWN   "<unknown>"

Target identification strings.

A device type represented by a particular target triple requires specific binary images. We need to map the image type onto the device target triple

Definition at line 20 of file compiler.hpp.

◆ __SYCL_PROGRAM_METADATA_GLOBAL_ID_MAPPING

#define __SYCL_PROGRAM_METADATA_GLOBAL_ID_MAPPING   "@global_id_mapping"

Definition at line 70 of file compiler.hpp.

◆ __SYCL_PROGRAM_METADATA_TAG_NEED_FINALIZATION

#define __SYCL_PROGRAM_METADATA_TAG_NEED_FINALIZATION   "Requires finalization"

Definition at line 72 of file compiler.hpp.

◆ __SYCL_PROGRAM_METADATA_TAG_REQD_WORK_GROUP_SIZE

#define __SYCL_PROGRAM_METADATA_TAG_REQD_WORK_GROUP_SIZE   "@reqd_work_group_size"

Program metadata tags recognized by the PI backends.

For kernels the tag must appear after the kernel name.

Definition at line 69 of file compiler.hpp.

◆ __SYCL_PROPERTY_SET_DEVICELIB_REQ_MASK

#define __SYCL_PROPERTY_SET_DEVICELIB_REQ_MASK   "SYCL/devicelib req mask"

PropertySetRegistry::SYCL_DEVICELIB_REQ_MASK defined in PropertySetIO.h.

Definition at line 45 of file compiler.hpp.

◆ __SYCL_PROPERTY_SET_KERNEL_PARAM_OPT_INFO

#define __SYCL_PROPERTY_SET_KERNEL_PARAM_OPT_INFO   "SYCL/kernel param opt"

PropertySetRegistry::SYCL_KERNEL_PARAM_OPT_INFO defined in PropertySetIO.h.

Definition at line 47 of file compiler.hpp.

◆ __SYCL_PROPERTY_SET_PROGRAM_METADATA

#define __SYCL_PROPERTY_SET_PROGRAM_METADATA   "SYCL/program metadata"

PropertySetRegistry::SYCL_KERNEL_PROGRAM_METADATA defined in PropertySetIO.h.

Definition at line 49 of file compiler.hpp.

◆ __SYCL_PROPERTY_SET_SPEC_CONST_DEFAULT_VALUES_MAP

#define __SYCL_PROPERTY_SET_SPEC_CONST_DEFAULT_VALUES_MAP    "SYCL/specialization constants default values"

PropertySetRegistry::SYCL_SPEC_CONSTANTS_DEFAULT_VALUES defined in PropertySetIO.h.

Definition at line 42 of file compiler.hpp.

◆ __SYCL_PROPERTY_SET_SPEC_CONST_MAP

#define __SYCL_PROPERTY_SET_SPEC_CONST_MAP   "SYCL/specialization constants"

Device binary image property set names recognized by the SYCL runtime.

Name must be consistent with PropertySetRegistry::SYCL_SPECIALIZATION_CONSTANTS defined in PropertySetIO.h

Definition at line 39 of file compiler.hpp.

◆ __SYCL_PROPERTY_SET_SYCL_ASSERT_USED

#define __SYCL_PROPERTY_SET_SYCL_ASSERT_USED   "SYCL/assert used"

PropertySetRegistry::SYCL_ASSERT_USED defined in PropertySetIO.h.

Definition at line 53 of file compiler.hpp.

◆ __SYCL_PROPERTY_SET_SYCL_DEVICE_GLOBALS

#define __SYCL_PROPERTY_SET_SYCL_DEVICE_GLOBALS   "SYCL/device globals"

PropertySetRegistry::SYCL_DEVICE_GLOBALS defined in PropertySetIO.h.

Definition at line 59 of file compiler.hpp.

◆ __SYCL_PROPERTY_SET_SYCL_DEVICE_REQUIREMENTS

#define __SYCL_PROPERTY_SET_SYCL_DEVICE_REQUIREMENTS   "SYCL/device requirements"

PropertySetRegistry::SYCL_DEVICE_REQUIREMENTS defined in PropertySetIO.h.

Definition at line 61 of file compiler.hpp.

◆ __SYCL_PROPERTY_SET_SYCL_EXPORTED_SYMBOLS

#define __SYCL_PROPERTY_SET_SYCL_EXPORTED_SYMBOLS   "SYCL/exported symbols"

PropertySetRegistry::SYCL_EXPORTED_SYMBOLS defined in PropertySetIO.h.

Definition at line 55 of file compiler.hpp.

◆ __SYCL_PROPERTY_SET_SYCL_HOST_PIPES

#define __SYCL_PROPERTY_SET_SYCL_HOST_PIPES   "SYCL/host pipes"

PropertySetRegistry::SYCL_HOST_PIPES defined in PropertySetIO.h.

Definition at line 63 of file compiler.hpp.

◆ __SYCL_PROPERTY_SET_SYCL_IMPORTED_SYMBOLS

#define __SYCL_PROPERTY_SET_SYCL_IMPORTED_SYMBOLS   "SYCL/imported symbols"

PropertySetRegistry::SYCL_IMPORTED_SYMBOLS defined in PropertySetIO.h.

Definition at line 57 of file compiler.hpp.

◆ __SYCL_PROPERTY_SET_SYCL_MISC_PROP

#define __SYCL_PROPERTY_SET_SYCL_MISC_PROP   "SYCL/misc properties"

PropertySetRegistry::SYCL_MISC_PROP defined in PropertySetIO.h.

Definition at line 51 of file compiler.hpp.

◆ __SYCL_PROPERTY_SET_SYCL_VIRTUAL_FUNCTIONS

#define __SYCL_PROPERTY_SET_SYCL_VIRTUAL_FUNCTIONS   "SYCL/virtual functions"

PropertySetRegistry::SYCL_VIRTUAL_FUNCTIONS defined in PropertySetIO.h.

Definition at line 65 of file compiler.hpp.

Typedef Documentation

◆ sycl_device_binaries

Definition at line 199 of file compiler.hpp.

◆ sycl_device_binary

Definition at line 178 of file compiler.hpp.

◆ sycl_device_binary_property

◆ sycl_device_binary_property_set

◆ sycl_offload_entry

Definition at line 82 of file compiler.hpp.

Enumeration Type Documentation

◆ sycl_device_binary_type

enum sycl_device_binary_type : uint8_t

Types of device binary.

Enumerator
SYCL_DEVICE_BINARY_TYPE_NONE 
SYCL_DEVICE_BINARY_TYPE_NATIVE 
SYCL_DEVICE_BINARY_TYPE_SPIRV 
SYCL_DEVICE_BINARY_TYPE_LLVMIR_BITCODE 

Definition at line 114 of file compiler.hpp.

◆ sycl_property_type

Enumerator
SYCL_PROPERTY_TYPE_UNKNOWN 
SYCL_PROPERTY_TYPE_UINT32 
SYCL_PROPERTY_TYPE_BYTE_ARRAY 
SYCL_PROPERTY_TYPE_STRING 

Definition at line 85 of file compiler.hpp.

Variable Documentation

◆ SYCL_DEVICE_BINARIES_VERSION

const uint16_t SYCL_DEVICE_BINARIES_VERSION = 1
static

◆ SYCL_DEVICE_BINARY_OFFLOAD_KIND_SYCL

const uint8_t SYCL_DEVICE_BINARY_OFFLOAD_KIND_SYCL = 4
static

◆ SYCL_DEVICE_BINARY_VERSION

const uint16_t SYCL_DEVICE_BINARY_VERSION = 1
static