Mercurial > hg > CbC > CbC_llvm
view libc/benchmarks/MemorySizeDistributions.h @ 209:dd44ba33042e
merged...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 08 Jun 2021 06:36:09 +0900 |
parents | 2e18cbf3894f |
children | c4bab56944e8 |
line wrap: on
line source
//===-- MemorySizeDistributions ---------------------------------*- C++ -*-===// // // 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 // //===----------------------------------------------------------------------===// // // Memory functions operate on buffers of certain sizes. This file provides // probability distributions observed at runtime for a set of applications. // These distributions are used to benchmark and compare memory functions // implementations. // //===----------------------------------------------------------------------===// #ifndef LLVM_LIBC_BENCHMARKS_MEMORYSIZEDISTRIBUTIONS_H #define LLVM_LIBC_BENCHMARKS_MEMORYSIZEDISTRIBUTIONS_H #include <llvm/ADT/ArrayRef.h> #include <llvm/ADT/StringRef.h> namespace llvm { namespace libc_benchmarks { /// A simple POD exposing caracteristics of a memory function size /// distributions. The underlying data is immutable. struct MemorySizeDistribution { StringRef Name; // The name of the distribution. ArrayRef<double> Probabilities; // Size indexed array of probabilities. }; /// Returns a list of memcpy size distributions. ArrayRef<MemorySizeDistribution> getMemcpySizeDistributions(); /// Returns a list of memset size distributions. ArrayRef<MemorySizeDistribution> getMemsetSizeDistributions(); /// Returns a list of memcmp size distributions. ArrayRef<MemorySizeDistribution> getMemcmpSizeDistributions(); } // namespace libc_benchmarks } // namespace llvm #endif // LLVM_LIBC_BENCHMARKS_MEMORYSIZEDISTRIBUTIONS_H