1 //===-------- LegacyAPI.cpp - Target independent OpenMP target RTL --------===//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 // Legacy interfaces for libomptarget used to maintain backwards-compatibility.
11 //===----------------------------------------------------------------------===//
13 #include "OpenMP/OMPT/Interface.h"
14 #include "omptarget.h"
17 #include "Shared/Profile.h"
20 using namespace llvm::omp::target::ompt
;
23 EXTERN
void __tgt_target_data_begin(int64_t DeviceId
, int32_t ArgNum
,
24 void **ArgsBase
, void **Args
,
25 int64_t *ArgSizes
, int64_t *ArgTypes
) {
27 OMPT_IF_BUILT(ReturnAddressSetterRAII
RA(__builtin_return_address(0)));
28 __tgt_target_data_begin_mapper(nullptr, DeviceId
, ArgNum
, ArgsBase
, Args
,
29 ArgSizes
, ArgTypes
, nullptr, nullptr);
32 EXTERN
void __tgt_target_data_begin_nowait(int64_t DeviceId
, int32_t ArgNum
,
33 void **ArgsBase
, void **Args
,
34 int64_t *ArgSizes
, int64_t *ArgTypes
,
35 int32_t DepNum
, void *DepList
,
36 int32_t NoAliasDepNum
,
37 void *NoAliasDepList
) {
39 OMPT_IF_BUILT(ReturnAddressSetterRAII
RA(__builtin_return_address(0)));
40 __tgt_target_data_begin_mapper(nullptr, DeviceId
, ArgNum
, ArgsBase
, Args
,
41 ArgSizes
, ArgTypes
, nullptr, nullptr);
44 EXTERN
void __tgt_target_data_end(int64_t DeviceId
, int32_t ArgNum
,
45 void **ArgsBase
, void **Args
,
46 int64_t *ArgSizes
, int64_t *ArgTypes
) {
48 OMPT_IF_BUILT(ReturnAddressSetterRAII
RA(__builtin_return_address(0)));
49 __tgt_target_data_end_mapper(nullptr, DeviceId
, ArgNum
, ArgsBase
, Args
,
50 ArgSizes
, ArgTypes
, nullptr, nullptr);
53 EXTERN
void __tgt_target_data_update(int64_t DeviceId
, int32_t ArgNum
,
54 void **ArgsBase
, void **Args
,
55 int64_t *ArgSizes
, int64_t *ArgTypes
) {
57 OMPT_IF_BUILT(ReturnAddressSetterRAII
RA(__builtin_return_address(0)));
58 __tgt_target_data_update_mapper(nullptr, DeviceId
, ArgNum
, ArgsBase
, Args
,
59 ArgSizes
, ArgTypes
, nullptr, nullptr);
62 EXTERN
void __tgt_target_data_update_nowait(
63 int64_t DeviceId
, int32_t ArgNum
, void **ArgsBase
, void **Args
,
64 int64_t *ArgSizes
, int64_t *ArgTypes
, int32_t DepNum
, void *DepList
,
65 int32_t NoAliasDepNum
, void *NoAliasDepList
) {
67 OMPT_IF_BUILT(ReturnAddressSetterRAII
RA(__builtin_return_address(0)));
68 __tgt_target_data_update_mapper(nullptr, DeviceId
, ArgNum
, ArgsBase
, Args
,
69 ArgSizes
, ArgTypes
, nullptr, nullptr);
72 EXTERN
void __tgt_target_data_end_nowait(int64_t DeviceId
, int32_t ArgNum
,
73 void **ArgsBase
, void **Args
,
74 int64_t *ArgSizes
, int64_t *ArgTypes
,
75 int32_t DepNum
, void *DepList
,
76 int32_t NoAliasDepNum
,
77 void *NoAliasDepList
) {
79 OMPT_IF_BUILT(ReturnAddressSetterRAII
RA(__builtin_return_address(0)));
80 __tgt_target_data_end_mapper(nullptr, DeviceId
, ArgNum
, ArgsBase
, Args
,
81 ArgSizes
, ArgTypes
, nullptr, nullptr);
84 EXTERN
int __tgt_target_mapper(ident_t
*Loc
, int64_t DeviceId
, void *HostPtr
,
85 uint32_t ArgNum
, void **ArgsBase
, void **Args
,
86 int64_t *ArgSizes
, int64_t *ArgTypes
,
87 map_var_info_t
*ArgNames
, void **ArgMappers
) {
88 TIMESCOPE_WITH_IDENT(Loc
);
89 OMPT_IF_BUILT(ReturnAddressSetterRAII
RA(__builtin_return_address(0)));
90 KernelArgsTy KernelArgs
{1, ArgNum
, ArgsBase
, Args
, ArgSizes
,
91 ArgTypes
, ArgNames
, ArgMappers
, 0, {},
93 return __tgt_target_kernel(Loc
, DeviceId
, -1, -1, HostPtr
, &KernelArgs
);
96 EXTERN
int __tgt_target(int64_t DeviceId
, void *HostPtr
, int32_t ArgNum
,
97 void **ArgsBase
, void **Args
, int64_t *ArgSizes
,
100 OMPT_IF_BUILT(ReturnAddressSetterRAII
RA(__builtin_return_address(0)));
101 return __tgt_target_mapper(nullptr, DeviceId
, HostPtr
, ArgNum
, ArgsBase
, Args
,
102 ArgSizes
, ArgTypes
, nullptr, nullptr);
105 EXTERN
int __tgt_target_nowait(int64_t DeviceId
, void *HostPtr
, int32_t ArgNum
,
106 void **ArgsBase
, void **Args
, int64_t *ArgSizes
,
107 int64_t *ArgTypes
, int32_t DepNum
, void *DepList
,
108 int32_t NoAliasDepNum
, void *NoAliasDepList
) {
110 OMPT_IF_BUILT(ReturnAddressSetterRAII
RA(__builtin_return_address(0)));
111 return __tgt_target_mapper(nullptr, DeviceId
, HostPtr
, ArgNum
, ArgsBase
, Args
,
112 ArgSizes
, ArgTypes
, nullptr, nullptr);
115 EXTERN
int __tgt_target_nowait_mapper(
116 ident_t
*Loc
, int64_t DeviceId
, void *HostPtr
, int32_t ArgNum
,
117 void **ArgsBase
, void **Args
, int64_t *ArgSizes
, int64_t *ArgTypes
,
118 map_var_info_t
*ArgNames
, void **ArgMappers
, int32_t DepNum
, void *DepList
,
119 int32_t NoAliasDepNum
, void *NoAliasDepList
) {
120 TIMESCOPE_WITH_IDENT(Loc
);
121 OMPT_IF_BUILT(ReturnAddressSetterRAII
RA(__builtin_return_address(0)));
122 return __tgt_target_mapper(Loc
, DeviceId
, HostPtr
, ArgNum
, ArgsBase
, Args
,
123 ArgSizes
, ArgTypes
, ArgNames
, ArgMappers
);
126 EXTERN
int __tgt_target_teams_mapper(ident_t
*Loc
, int64_t DeviceId
,
127 void *HostPtr
, uint32_t ArgNum
,
128 void **ArgsBase
, void **Args
,
129 int64_t *ArgSizes
, int64_t *ArgTypes
,
130 map_var_info_t
*ArgNames
,
131 void **ArgMappers
, int32_t NumTeams
,
132 int32_t ThreadLimit
) {
133 TIMESCOPE_WITH_IDENT(Loc
);
134 OMPT_IF_BUILT(ReturnAddressSetterRAII
RA(__builtin_return_address(0)));
135 KernelArgsTy KernelArgs
{1, ArgNum
, ArgsBase
, Args
, ArgSizes
,
136 ArgTypes
, ArgNames
, ArgMappers
, 0, {},
138 return __tgt_target_kernel(Loc
, DeviceId
, NumTeams
, ThreadLimit
, HostPtr
,
142 EXTERN
int __tgt_target_teams(int64_t DeviceId
, void *HostPtr
, int32_t ArgNum
,
143 void **ArgsBase
, void **Args
, int64_t *ArgSizes
,
144 int64_t *ArgTypes
, int32_t NumTeams
,
145 int32_t ThreadLimit
) {
147 OMPT_IF_BUILT(ReturnAddressSetterRAII
RA(__builtin_return_address(0)));
148 return __tgt_target_teams_mapper(nullptr, DeviceId
, HostPtr
, ArgNum
, ArgsBase
,
149 Args
, ArgSizes
, ArgTypes
, nullptr, nullptr,
150 NumTeams
, ThreadLimit
);
153 EXTERN
int __tgt_target_teams_nowait(int64_t DeviceId
, void *HostPtr
,
154 int32_t ArgNum
, void **ArgsBase
,
155 void **Args
, int64_t *ArgSizes
,
156 int64_t *ArgTypes
, int32_t NumTeams
,
157 int32_t ThreadLimit
, int32_t DepNum
,
158 void *DepList
, int32_t NoAliasDepNum
,
159 void *NoAliasDepList
) {
161 OMPT_IF_BUILT(ReturnAddressSetterRAII
RA(__builtin_return_address(0)));
162 return __tgt_target_teams_mapper(nullptr, DeviceId
, HostPtr
, ArgNum
, ArgsBase
,
163 Args
, ArgSizes
, ArgTypes
, nullptr, nullptr,
164 NumTeams
, ThreadLimit
);
167 EXTERN
int __tgt_target_teams_nowait_mapper(
168 ident_t
*Loc
, int64_t DeviceId
, void *HostPtr
, int32_t ArgNum
,
169 void **ArgsBase
, void **Args
, int64_t *ArgSizes
, int64_t *ArgTypes
,
170 map_var_info_t
*ArgNames
, void **ArgMappers
, int32_t NumTeams
,
171 int32_t ThreadLimit
, int32_t DepNum
, void *DepList
, int32_t NoAliasDepNum
,
172 void *NoAliasDepList
) {
173 TIMESCOPE_WITH_IDENT(Loc
);
174 OMPT_IF_BUILT(ReturnAddressSetterRAII
RA(__builtin_return_address(0)));
175 return __tgt_target_teams_mapper(Loc
, DeviceId
, HostPtr
, ArgNum
, ArgsBase
,
176 Args
, ArgSizes
, ArgTypes
, ArgNames
,
177 ArgMappers
, NumTeams
, ThreadLimit
);
180 EXTERN
void __kmpc_push_target_tripcount_mapper(ident_t
*Loc
, int64_t DeviceId
,
181 uint64_t LoopTripcount
) {
182 TIMESCOPE_WITH_IDENT(Loc
);
183 DP("WARNING: __kmpc_push_target_tripcount has been deprecated and is a noop");
186 EXTERN
void __kmpc_push_target_tripcount(int64_t DeviceId
,
187 uint64_t LoopTripcount
) {
188 __kmpc_push_target_tripcount_mapper(nullptr, DeviceId
, LoopTripcount
);
191 EXTERN
int __tgt_target_kernel_nowait(ident_t
*Loc
, int64_t DeviceId
,
192 int32_t NumTeams
, int32_t ThreadLimit
,
193 void *HostPtr
, KernelArgsTy
*KernelArgs
,
194 int32_t DepNum
, void *DepList
,
195 int32_t NoAliasDepNum
,
196 void *NoAliasDepList
) {
197 TIMESCOPE_WITH_IDENT(Loc
);
198 OMPT_IF_BUILT(ReturnAddressSetterRAII
RA(__builtin_return_address(0)));
199 return __tgt_target_kernel(Loc
, DeviceId
, NumTeams
, ThreadLimit
, HostPtr
,