llvm/openmp/runtime/src/kmp_gsupport.cpp

/*
 * kmp_gsupport.cpp
 */

//===----------------------------------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

#include "kmp.h"
#include "kmp_atomic.h"
#include "kmp_utils.h"

#if OMPT_SUPPORT
#include "ompt-specific.h"
#endif

enum {};

enum {};

// This class helps convert gomp dependency info into
// kmp_depend_info_t structures
class kmp_gomp_depends_info_t {};

#ifdef __cplusplus
extern // extern "C"
#endif

template <typename T>
void __GOMP_taskloop(void (*func)(void *), void *data,
                     void (*copy_func)(void *, void *), long arg_size,
                     long arg_align, unsigned gomp_flags,
                     unsigned long num_tasks, int priority, T start, T end,
                     T step) {}

// 4 byte version of GOMP_doacross_post
// This verison needs to create a temporary array which converts 4 byte
// integers into 8 byte integers
template <typename T, bool need_conversion = (sizeof(long) == 4)>
void __kmp_GOMP_doacross_post(T *count);

template <> void __kmp_GOMP_doacross_post<long, true>(long *count) {}

// 8 byte versions of GOMP_doacross_post
// This version can just pass in the count array directly instead of creating
// a temporary array
template <> void __kmp_GOMP_doacross_post<long, false>(long *count) {}

template <typename T> void __kmp_GOMP_doacross_wait(T first, va_list args) {}

#ifdef __cplusplus
extern // extern "C"
#endif // __cplusplus