brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.0 KiB · 033d7a3 Raw
202 lines · cpp
1//===-------- LegacyAPI.cpp - Target independent OpenMP target RTL --------===//2//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-exception6//7//===----------------------------------------------------------------------===//8//9// Legacy interfaces for libomptarget used to maintain backwards-compatibility.10//11//===----------------------------------------------------------------------===//12 13#include "OpenMP/OMPT/Interface.h"14#include "omptarget.h"15#include "private.h"16 17#include "Shared/Profile.h"18 19#ifdef OMPT_SUPPORT20using namespace llvm::omp::target::ompt;21#endif22 23EXTERN void __tgt_target_data_begin(int64_t DeviceId, int32_t ArgNum,24                                    void **ArgsBase, void **Args,25                                    int64_t *ArgSizes, int64_t *ArgTypes) {26  TIMESCOPE();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);30}31 32EXTERN 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) {38  TIMESCOPE();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);42}43 44EXTERN void __tgt_target_data_end(int64_t DeviceId, int32_t ArgNum,45                                  void **ArgsBase, void **Args,46                                  int64_t *ArgSizes, int64_t *ArgTypes) {47  TIMESCOPE();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);51}52 53EXTERN void __tgt_target_data_update(int64_t DeviceId, int32_t ArgNum,54                                     void **ArgsBase, void **Args,55                                     int64_t *ArgSizes, int64_t *ArgTypes) {56  TIMESCOPE();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);60}61 62EXTERN 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) {66  TIMESCOPE();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);70}71 72EXTERN 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) {78  TIMESCOPE();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);82}83 84EXTERN 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,    {},92                          {},       {},       0};93  return __tgt_target_kernel(Loc, DeviceId, -1, -1, HostPtr, &KernelArgs);94}95 96EXTERN int __tgt_target(int64_t DeviceId, void *HostPtr, int32_t ArgNum,97                        void **ArgsBase, void **Args, int64_t *ArgSizes,98                        int64_t *ArgTypes) {99  TIMESCOPE();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);103}104 105EXTERN 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) {109  TIMESCOPE();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);113}114 115EXTERN 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);124}125 126EXTERN 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,    {},137                          {},       {},       0};138  return __tgt_target_kernel(Loc, DeviceId, NumTeams, ThreadLimit, HostPtr,139                             &KernelArgs);140}141 142EXTERN 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) {146  TIMESCOPE();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);151}152 153EXTERN 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) {160  TIMESCOPE();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);165}166 167EXTERN 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);178}179 180EXTERN 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");184}185 186EXTERN void __kmpc_push_target_tripcount(int64_t DeviceId,187                                         uint64_t LoopTripcount) {188  __kmpc_push_target_tripcount_mapper(nullptr, DeviceId, LoopTripcount);189}190 191EXTERN 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,200                             KernelArgs);201}202