From 515bd1c9b88189f4f48406e81448ccf4d263b268 Mon Sep 17 00:00:00 2001 From: Joseph Huber Date: Wed, 5 Jul 2023 16:07:21 -0500 Subject: [PATCH] [libc][Obvious] Fix timing on AMDGPU not being initialized Summary: Reviewer requested that this routine not be a macro, however that means that it was not being intitialized as the static initializer was done before the memcpy from the device. Fix this so we can get timing information. --- libc/test/UnitTest/LibcTest.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libc/test/UnitTest/LibcTest.cpp b/libc/test/UnitTest/LibcTest.cpp index d5e6fdf..3ffd0c3 100644 --- a/libc/test/UnitTest/LibcTest.cpp +++ b/libc/test/UnitTest/LibcTest.cpp @@ -19,11 +19,12 @@ #include "src/__support/GPU/utils.h" static long clock() { return __llvm_libc::gpu::fixed_frequency_clock(); } #if defined(LIBC_TARGET_ARCH_IS_NVPTX) -uint64_t CLOCKS_PER_SEC = 1000000000UL; +#define CLOCKS_PER_SEC 1000000000UL #else // The AMDGPU loader needs to initialize this at runtime by querying the driver. -extern "C" [[gnu::visibility("protected")]] uint64_t __llvm_libc_clock_freq; -uint64_t CLOCKS_PER_SEC = __llvm_libc_clock_freq; +extern "C" [[gnu::visibility("protected")]] uint64_t + [[clang::address_space(4)]] __llvm_libc_clock_freq; +#define CLOCKS_PER_SEC __llvm_libc_clock_freq #endif #else static long clock() { return 0; } -- 2.7.4