diff options
author | Abseil Team <absl-team@google.com> | 2022-09-26 18:43:11 -0700 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2022-09-26 18:44:06 -0700 |
commit | df19c209961b44299aa047d7db0d3972d94a2d0b (patch) | |
tree | 5289010d9a0f1afd914c7e0a22657acb573e1772 /absl/base/internal/unscaledcycleclock.h | |
parent | 1cd889767e518d1bbb1bf8b226ee2c4dd3e85390 (diff) | |
download | abseil-df19c209961b44299aa047d7db0d3972d94a2d0b.tar.gz abseil-df19c209961b44299aa047d7db0d3972d94a2d0b.tar.bz2 abseil-df19c209961b44299aa047d7db0d3972d94a2d0b.zip |
Split configuration related to cycle clock into separate headers
PiperOrigin-RevId: 477043101
Change-Id: I009ea39ad61e7e78cdac51afc57a8ad5b4d8aa2d
Diffstat (limited to 'absl/base/internal/unscaledcycleclock.h')
-rw-r--r-- | absl/base/internal/unscaledcycleclock.h | 41 |
1 files changed, 2 insertions, 39 deletions
diff --git a/absl/base/internal/unscaledcycleclock.h b/absl/base/internal/unscaledcycleclock.h index 74bac8a0..cc1276ba 100644 --- a/absl/base/internal/unscaledcycleclock.h +++ b/absl/base/internal/unscaledcycleclock.h @@ -42,48 +42,11 @@ #include <TargetConditionals.h> #endif -#include "absl/base/port.h" - -// The following platforms have an implementation of a hardware counter. -#if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__) || \ - defined(__powerpc__) || defined(__ppc__) || defined(__riscv) || \ - defined(_M_IX86) || (defined(_M_X64) && !defined(_M_ARM64EC)) -#define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 1 -#else -#define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 0 -#endif - -// The following platforms often disable access to the hardware -// counter (through a sandbox) even if the underlying hardware has a -// usable counter. The CycleTimer interface also requires a *scaled* -// CycleClock that runs at atleast 1 MHz. We've found some Android -// ARM64 devices where this is not the case, so we disable it by -// default on Android ARM64. -#if defined(__native_client__) || (defined(__APPLE__)) || \ - (defined(__ANDROID__) && defined(__aarch64__)) -#define ABSL_USE_UNSCALED_CYCLECLOCK_DEFAULT 0 -#else -#define ABSL_USE_UNSCALED_CYCLECLOCK_DEFAULT 1 -#endif - -// UnscaledCycleClock is an optional internal feature. -// Use "#if ABSL_USE_UNSCALED_CYCLECLOCK" to test for its presence. -// Can be overridden at compile-time via -DABSL_USE_UNSCALED_CYCLECLOCK=0|1 -#if !defined(ABSL_USE_UNSCALED_CYCLECLOCK) -#define ABSL_USE_UNSCALED_CYCLECLOCK \ - (ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION && \ - ABSL_USE_UNSCALED_CYCLECLOCK_DEFAULT) -#endif +#include "absl/base/config.h" +#include "absl/base/internal/unscaledcycleclock_config.h" #if ABSL_USE_UNSCALED_CYCLECLOCK -// This macro can be used to test if UnscaledCycleClock::Frequency() -// is NominalCPUFrequency() on a particular platform. -#if (defined(__i386__) || defined(__x86_64__) || defined(__riscv) || \ - defined(_M_IX86) || defined(_M_X64)) -#define ABSL_INTERNAL_UNSCALED_CYCLECLOCK_FREQUENCY_IS_CPU_FREQUENCY -#endif - namespace absl { ABSL_NAMESPACE_BEGIN namespace time_internal { |