Mercurial > hg > CbC > CbC_llvm
view libc/benchmarks/LibcBenchmark.cpp @ 266:00f31e85ec16 default tip
Added tag current for changeset 31d058e83c98
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 14 Oct 2023 10:13:55 +0900 |
parents | 1f2b6ac9f198 |
children |
line wrap: on
line source
//===-- Benchmark function -----------------------------------------------===// // // 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 "LibcBenchmark.h" #include "llvm/ADT/StringRef.h" #include "llvm/TargetParser/Host.h" namespace llvm { namespace libc_benchmarks { void checkRequirements() { const auto &CpuInfo = benchmark::CPUInfo::Get(); if (CpuInfo.scaling == benchmark::CPUInfo::ENABLED) report_fatal_error( "CPU scaling is enabled, the benchmark real time measurements may be " "noisy and will incur extra overhead."); } HostState HostState::get() { const auto &CpuInfo = benchmark::CPUInfo::Get(); HostState H; H.CpuFrequency = CpuInfo.cycles_per_second; H.CpuName = llvm::sys::getHostCPUName().str(); for (const auto &BenchmarkCacheInfo : CpuInfo.caches) { CacheInfo CI; CI.Type = BenchmarkCacheInfo.type; CI.Level = BenchmarkCacheInfo.level; CI.Size = BenchmarkCacheInfo.size; CI.NumSharing = BenchmarkCacheInfo.num_sharing; H.Caches.push_back(std::move(CI)); } return H; } } // namespace libc_benchmarks } // namespace llvm