[Frontend] Remove unused includes (NFC) (#116927)
[llvm-project.git] / offload / src / private.h
blob0b3d545990484051cb051ea706f49913dea4ec60
1 //===---------- private.h - 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-exception
6 //
7 //===----------------------------------------------------------------------===//
8 //
9 // Private function declarations and helper macros for debugging output.
11 //===----------------------------------------------------------------------===//
13 #ifndef _OMPTARGET_PRIVATE_H
14 #define _OMPTARGET_PRIVATE_H
16 #include "Shared/Debug.h"
17 #include "Shared/SourceInfo.h"
19 #include "OpenMP/InternalTypes.h"
21 #include "device.h"
22 #include "omptarget.h"
24 #include <cstdint>
26 extern int target(ident_t *Loc, DeviceTy &Device, void *HostPtr,
27 KernelArgsTy &KernelArgs, AsyncInfoTy &AsyncInfo);
29 extern int target_activate_rr(DeviceTy &Device, uint64_t MemorySize,
30 void *ReqAddr, bool isRecord, bool SaveOutput,
31 uint64_t &ReqPtrArgOffset);
33 extern int target_replay(ident_t *Loc, DeviceTy &Device, void *HostPtr,
34 void *DeviceMemory, int64_t DeviceMemorySize,
35 void **TgtArgs, ptrdiff_t *TgtOffsets, int32_t NumArgs,
36 int32_t NumTeams, int32_t ThreadLimit,
37 uint64_t LoopTripCount, AsyncInfoTy &AsyncInfo);
39 extern void handleTargetOutcome(bool Success, ident_t *Loc);
41 ////////////////////////////////////////////////////////////////////////////////
42 /// Print out the names and properties of the arguments to each kernel
43 static inline void
44 printKernelArguments(const ident_t *Loc, const int64_t DeviceId,
45 const int32_t ArgNum, const int64_t *ArgSizes,
46 const int64_t *ArgTypes, const map_var_info_t *ArgNames,
47 const char *RegionType) {
48 SourceInfo Info(Loc);
49 INFO(OMP_INFOTYPE_ALL, DeviceId, "%s at %s:%d:%d with %d arguments:\n",
50 RegionType, Info.getFilename(), Info.getLine(), Info.getColumn(),
51 ArgNum);
53 for (int32_t I = 0; I < ArgNum; ++I) {
54 const map_var_info_t VarName = (ArgNames) ? ArgNames[I] : nullptr;
55 const char *Type = nullptr;
56 const char *Implicit =
57 (ArgTypes[I] & OMP_TGT_MAPTYPE_IMPLICIT) ? "(implicit)" : "";
58 if (ArgTypes[I] & OMP_TGT_MAPTYPE_TO && ArgTypes[I] & OMP_TGT_MAPTYPE_FROM)
59 Type = "tofrom";
60 else if (ArgTypes[I] & OMP_TGT_MAPTYPE_TO)
61 Type = "to";
62 else if (ArgTypes[I] & OMP_TGT_MAPTYPE_FROM)
63 Type = "from";
64 else if (ArgTypes[I] & OMP_TGT_MAPTYPE_PRIVATE)
65 Type = "private";
66 else if (ArgTypes[I] & OMP_TGT_MAPTYPE_LITERAL)
67 Type = "firstprivate";
68 else if (ArgSizes[I] != 0)
69 Type = "alloc";
70 else
71 Type = "use_address";
73 INFO(OMP_INFOTYPE_ALL, DeviceId, "%s(%s)[%" PRId64 "] %s\n", Type,
74 getNameFromMapping(VarName).c_str(), ArgSizes[I], Implicit);
78 #endif