[llvm-exegesis][NFC] Improve parsing of the YAML files
[llvm-core.git] / utils / benchmark / src / benchmark_api_internal.h
blobdd7a3ffe8cbb2c85a62a4e3e035ab7a2b488667f
1 #ifndef BENCHMARK_API_INTERNAL_H
2 #define BENCHMARK_API_INTERNAL_H
4 #include "benchmark/benchmark.h"
6 #include <cmath>
7 #include <iosfwd>
8 #include <limits>
9 #include <string>
10 #include <vector>
12 namespace benchmark {
13 namespace internal {
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
36 bool FindBenchmarksInternal(const std::string& re,
37 std::vector<Benchmark::Instance>* benchmarks,
38 std::ostream* Err);
40 bool IsZero(double n);
42 ConsoleReporter::OutputOptions GetOutputOptions(bool force_no_color = false);
44 } // end namespace internal
45 } // end namespace benchmark
47 #endif // BENCHMARK_API_INTERNAL_H