
This patch fuses the RUN lines for most libomptarget tests. The previous patch D101315 created separate test targets for each supported offloading triple. This patch updates the RUN lines in libomptarget tests to use a generic run line independent of the offloading target selected for the lit instance. In cases, where no RUN line was defined for a specific offloading target, the corresponding target is declared as XFAIL. If it turns out that a test actually supports the target, the XFAIL line can be removed. Differential Revision: https://reviews.llvm.org/D101326
48 lines
1.3 KiB
C++
48 lines
1.3 KiB
C++
// RUN: %libomptarget-compilexx-run-and-check-generic
|
|
|
|
#include <cstdio>
|
|
#include <cstdlib>
|
|
#include <vector>
|
|
#include <cinttypes>
|
|
|
|
// Data structure definitions copied from OpenMP RTL.
|
|
struct MapComponentInfoTy {
|
|
void *Base;
|
|
void *Begin;
|
|
int64_t Size;
|
|
int64_t Type;
|
|
void *Name;
|
|
MapComponentInfoTy() = default;
|
|
MapComponentInfoTy(void *Base, void *Begin, int64_t Size, int64_t Type, void *Name)
|
|
: Base(Base), Begin(Begin), Size(Size), Type(Type), Name(Name) {}
|
|
};
|
|
|
|
struct MapperComponentsTy {
|
|
std::vector<MapComponentInfoTy> Components;
|
|
};
|
|
|
|
// OpenMP RTL interfaces
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
int64_t __tgt_mapper_num_components(void *rt_mapper_handle);
|
|
void __tgt_push_mapper_component(void *rt_mapper_handle, void *base,
|
|
void *begin, int64_t size, int64_t type,
|
|
void *name);
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
int main(int argc, char *argv[]) {
|
|
MapperComponentsTy MC;
|
|
void *base, *begin;
|
|
int64_t size, type;
|
|
// Push 2 elements into MC.
|
|
__tgt_push_mapper_component((void *)&MC, base, begin, size, type, nullptr);
|
|
__tgt_push_mapper_component((void *)&MC, base, begin, size, type, nullptr);
|
|
int64_t num = __tgt_mapper_num_components((void *)&MC);
|
|
// CHECK: num=2
|
|
printf("num=%" PRId64 "\n", num);
|
|
return 0;
|
|
}
|