1*5f757f3fSDimitry Andric //===-- Wrapper for C standard time.h declarations on the GPU -------------===// 2*5f757f3fSDimitry Andric // 3*5f757f3fSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*5f757f3fSDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 5*5f757f3fSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*5f757f3fSDimitry Andric // 7*5f757f3fSDimitry Andric //===----------------------------------------------------------------------===// 8*5f757f3fSDimitry Andric 9*5f757f3fSDimitry Andric #ifndef __CLANG_LLVM_LIBC_WRAPPERS_TIME_H__ 10*5f757f3fSDimitry Andric #define __CLANG_LLVM_LIBC_WRAPPERS_TIME_H__ 11*5f757f3fSDimitry Andric 12*5f757f3fSDimitry Andric #if !defined(_OPENMP) && !defined(__HIP__) && !defined(__CUDA__) 13*5f757f3fSDimitry Andric #error "This file is for GPU offloading compilation only" 14*5f757f3fSDimitry Andric #endif 15*5f757f3fSDimitry Andric 16*5f757f3fSDimitry Andric #include_next <time.h> 17*5f757f3fSDimitry Andric 18*5f757f3fSDimitry Andric #if __has_include(<llvm-libc-decls/time.h>) 19*5f757f3fSDimitry Andric 20*5f757f3fSDimitry Andric #if defined(__HIP__) || defined(__CUDA__) 21*5f757f3fSDimitry Andric #define __LIBC_ATTRS __attribute__((device)) 22*5f757f3fSDimitry Andric #endif 23*5f757f3fSDimitry Andric 24*5f757f3fSDimitry Andric #pragma omp begin declare target 25*5f757f3fSDimitry Andric 26*5f757f3fSDimitry Andric _Static_assert(sizeof(clock_t) == sizeof(long), "ABI mismatch!"); 27*5f757f3fSDimitry Andric 28*5f757f3fSDimitry Andric #include <llvm-libc-decls/time.h> 29*5f757f3fSDimitry Andric 30*5f757f3fSDimitry Andric #pragma omp end declare target 31*5f757f3fSDimitry Andric 32*5f757f3fSDimitry Andric #endif 33*5f757f3fSDimitry Andric 34*5f757f3fSDimitry Andric #endif // __CLANG_LLVM_LIBC_WRAPPERS_TIME_H__ 35