blob: 8aa78d050d4eb42c11fc5bfb62a69c6f555c36df [file] [log] [blame]
Jonas Hahnfeld43322802017-12-06 21:59:07 +00001//===---------- private.h - Target independent OpenMP target RTL ----------===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is dual licensed under the MIT and the University of Illinois Open
6// Source Licenses. See LICENSE.txt for details.
7//
8//===----------------------------------------------------------------------===//
9//
10// Private function declarations and helper macros for debugging output.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef _OMPTARGET_PRIVATE_H
15#define _OMPTARGET_PRIVATE_H
16
17#include <omptarget.h>
18
19#include <cstdint>
20
Jonas Hahnfelda7c4f322017-12-06 21:59:15 +000021extern int target_data_begin(DeviceTy &Device, int32_t arg_num,
22 void **args_base, void **args, int64_t *arg_sizes, int64_t *arg_types);
23
24extern int target_data_end(DeviceTy &Device, int32_t arg_num, void **args_base,
25 void **args, int64_t *arg_sizes, int64_t *arg_types);
26
27extern void target_data_update(DeviceTy &Device, int32_t arg_num,
28 void **args_base, void **args, int64_t *arg_sizes, int64_t *arg_types);
29
Jonas Hahnfeld43322802017-12-06 21:59:07 +000030extern int target(int64_t device_id, void *host_ptr, int32_t arg_num,
31 void **args_base, void **args, int64_t *arg_sizes, int64_t *arg_types,
32 int32_t team_num, int32_t thread_limit, int IsTeamConstruct);
33
Jonas Hahnfelda7c4f322017-12-06 21:59:15 +000034extern int CheckDeviceAndCtors(int64_t device_id);
35
George Rokos2878c392018-03-16 20:40:09 +000036// Implemented in libomp, they are called from within __tgt_* functions.
37int omp_get_default_device(void) __attribute__((weak));
38int32_t __kmpc_omp_taskwait(void *loc_ref, int32_t gtid) __attribute__((weak));
39
Jonas Hahnfeld43322802017-12-06 21:59:07 +000040#ifdef OMPTARGET_DEBUG
41extern int DebugLevel;
42
43#define DP(...) \
44 do { \
45 if (DebugLevel > 0) { \
46 DEBUGP("Libomptarget", __VA_ARGS__); \
47 } \
48 } while (false)
49#else // OMPTARGET_DEBUG
50#define DP(...) {}
51#endif // OMPTARGET_DEBUG
52
53#endif