OpenMP 4.0 "target" directives. This will need more work for generality, but we want to get it out and visible to the community. llvm-svn: 205909
64 lines
1.9 KiB
C
64 lines
1.9 KiB
C
//===----------------------------------------------------------------------===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is dual licensed under the MIT and the University of Illinois Open
|
|
// Source Licenses. See LICENSE.txt for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
|
|
#ifndef DV_UTIL_H_INCLUDED
|
|
#define DV_UTIL_H_INCLUDED
|
|
|
|
#include <stdint.h>
|
|
|
|
// Dope vector declarations
|
|
#define ArrDescMaxArrayRank 31
|
|
|
|
// Dope vector flags
|
|
#define ArrDescFlagsDefined 1
|
|
#define ArrDescFlagsNodealloc 2
|
|
#define ArrDescFlagsContiguous 4
|
|
|
|
typedef int64_t dv_size;
|
|
|
|
typedef struct DimDesc {
|
|
dv_size Extent; // Number of elements in this dimension
|
|
dv_size Mult; // Multiplier for this dimension.
|
|
// The number of bytes between successive
|
|
// elements in this dimension.
|
|
dv_size LowerBound; // LowerBound of this dimension
|
|
} DimDesc ;
|
|
|
|
typedef struct ArrDesc {
|
|
dv_size Base; // Base address
|
|
dv_size Len; // Length of data type, used only for
|
|
// character strings.
|
|
dv_size Offset;
|
|
dv_size Flags; // Flags
|
|
dv_size Rank; // Rank of pointer
|
|
dv_size Reserved; // reserved for openmp requests
|
|
DimDesc Dim[ArrDescMaxArrayRank];
|
|
} ArrDesc ;
|
|
|
|
typedef ArrDesc* pArrDesc;
|
|
|
|
bool __dv_is_contiguous(const ArrDesc *dvp);
|
|
|
|
bool __dv_is_allocated(const ArrDesc *dvp);
|
|
|
|
uint64_t __dv_data_length(const ArrDesc *dvp);
|
|
|
|
uint64_t __dv_data_length(const ArrDesc *dvp, int64_t nelems);
|
|
|
|
CeanReadRanges * init_read_ranges_dv(const ArrDesc *dvp);
|
|
|
|
#if OFFLOAD_DEBUG > 0
|
|
void __dv_desc_dump(const char *name, const ArrDesc *dvp);
|
|
#else // OFFLOAD_DEBUG
|
|
#define __dv_desc_dump(name, dvp)
|
|
#endif // OFFLOAD_DEBUG
|
|
|
|
#endif // DV_UTIL_H_INCLUDED
|