]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - utils/benchmark/src/benchmark_api_internal.h
Vendor import of llvm trunk r351319 (just before the release_80 branch
[FreeBSD/FreeBSD.git] / utils / benchmark / src / benchmark_api_internal.h
1 #ifndef BENCHMARK_API_INTERNAL_H
2 #define BENCHMARK_API_INTERNAL_H
3
4 #include "benchmark/benchmark.h"
5
6 #include <cmath>
7 #include <iosfwd>
8 #include <limits>
9 #include <string>
10 #include <vector>
11
12 namespace benchmark {
13 namespace internal {
14
15 // Information kept per benchmark we may want to run
16 struct Benchmark::Instance {
17   std::string name;
18   Benchmark* benchmark;
19   ReportMode report_mode;
20   std::vector<int64_t> arg;
21   TimeUnit time_unit;
22   int range_multiplier;
23   bool use_real_time;
24   bool use_manual_time;
25   BigO complexity;
26   BigOFunc* complexity_lambda;
27   UserCounters counters;
28   const std::vector<Statistics>* statistics;
29   bool last_benchmark_instance;
30   int repetitions;
31   double min_time;
32   size_t iterations;
33   int threads;  // Number of concurrent threads to us
34 };
35
36 bool FindBenchmarksInternal(const std::string& re,
37                             std::vector<Benchmark::Instance>* benchmarks,
38                             std::ostream* Err);
39
40 bool IsZero(double n);
41
42 ConsoleReporter::OutputOptions GetOutputOptions(bool force_no_color = false);
43
44 }  // end namespace internal
45 }  // end namespace benchmark
46
47 #endif  // BENCHMARK_API_INTERNAL_H