summaryrefslogtreecommitdiffstats
path: root/lldb/tools/lldb-perf/lib/Measurement.h
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/tools/lldb-perf/lib/Measurement.h')
-rw-r--r--lldb/tools/lldb-perf/lib/Measurement.h157
1 files changed, 0 insertions, 157 deletions
diff --git a/lldb/tools/lldb-perf/lib/Measurement.h b/lldb/tools/lldb-perf/lib/Measurement.h
deleted file mode 100644
index 42e6a448907..00000000000
--- a/lldb/tools/lldb-perf/lib/Measurement.h
+++ /dev/null
@@ -1,157 +0,0 @@
-//===-- Measurement.h -------------------------------------------*- 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
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef __PerfTestDriver__Measurement__
-#define __PerfTestDriver__Measurement__
-
-#include "Gauge.h"
-#include "MemoryGauge.h"
-#include "Metric.h"
-#include "Timer.h"
-
-namespace lldb_perf {
-template <typename GaugeType, typename Callable> class Measurement {
-public:
- Measurement() : m_gauge(), m_callable(), m_metric() {}
-
- Measurement(Callable callable, const char *name, const char *desc)
- : m_gauge(), m_callable(callable),
- m_metric(Metric<typename GaugeType::ValueType>(name, desc)) {}
-
- Measurement(const char *name, const char *desc)
- : m_gauge(), m_callable(),
- m_metric(Metric<typename GaugeType::ValueType>(name, desc)) {}
-
- template <typename GaugeType_Rhs, typename Callable_Rhs>
- Measurement(const Measurement<GaugeType_Rhs, Callable_Rhs> &rhs)
- : m_gauge(rhs.GetGauge()), m_callable(rhs.GetCallable()),
- m_metric(rhs.GetMetric()) {}
-
- template <typename... Args> void operator()(Args... args) {
- m_gauge.Start();
- m_callable(args...);
- m_metric.Append(m_gauge.Stop());
- }
-
- virtual const Callable &GetCallable() const { return m_callable; }
-
- virtual const GaugeType &GetGauge() const { return m_gauge; }
-
- virtual const Metric<typename GaugeType::ValueType> &GetMetric() const {
- return m_metric;
- }
-
- void Start() { m_gauge.Start(); }
-
- typename GaugeType::ValueType Stop() {
- auto value = m_gauge.Stop();
- m_metric.Append(value);
- return value;
- }
-
- void WriteStartValue(Results &results) {
- auto metric = GetMetric();
- results.GetDictionary().Add(
- metric.GetName(), metric.GetDescription(),
- lldb_perf::GetResult<typename GaugeType::ValueType>(
- NULL, metric.GetStartValue()));
- }
-
- void WriteStopValue(Results &results) {
- auto metric = GetMetric();
- results.GetDictionary().Add(
- metric.GetName(), metric.GetDescription(),
- lldb_perf::GetResult<typename GaugeType::ValueType>(
- NULL, metric.GetStopValue()));
- }
-
- void WriteAverageValue(Results &results) {
- auto metric = GetMetric();
- results.GetDictionary().Add(
- metric.GetName(), metric.GetDescription(),
- lldb_perf::GetResult<typename GaugeType::ValueType>(
- NULL, metric.GetAverage()));
- }
-
- void WriteAverageAndStandardDeviation(Results &results) {
- auto metric = GetMetric();
- auto dictionary =
- (Results::Dictionary *)results.GetDictionary()
- .Add(metric.GetName(), metric.GetDescription(),
- lldb_perf::GetResult<typename GaugeType::ValueType>(
- NULL, metric.GetAverage()))
- .get();
- if (dictionary) {
- dictionary->Add("stddev", NULL,
- lldb_perf::GetResult<typename GaugeType::ValueType>(
- NULL, metric.GetStandardDeviation()));
- }
- }
-
- void WriteStandardDeviation(Results &results) {
- auto metric = GetMetric();
- results.GetDictionary().Add(
- metric.GetName(), metric.GetDescription(),
- lldb_perf::GetResult<typename GaugeType::ValueType>(
- NULL, metric.GetStandardDeviation()));
- }
-
-protected:
- GaugeType m_gauge;
- Callable m_callable;
- Metric<typename GaugeType::ValueType> m_metric;
-};
-
-template <typename Callable>
-class TimeMeasurement : public Measurement<TimeGauge, Callable> {
-public:
- TimeMeasurement() : Measurement<TimeGauge, Callable>() {}
-
- TimeMeasurement(Callable callable, const char *name = NULL,
- const char *descr = NULL)
- : Measurement<TimeGauge, Callable>(callable, name, descr) {}
-
- template <typename Callable_Rhs>
- TimeMeasurement(const TimeMeasurement<Callable_Rhs> &rhs)
- : Measurement<TimeGauge, Callable>(rhs) {}
-
- template <typename GaugeType_Rhs, typename Callable_Rhs>
- TimeMeasurement(const Measurement<GaugeType_Rhs, Callable_Rhs> &rhs)
- : Measurement<GaugeType_Rhs, Callable_Rhs>(rhs) {}
-
- template <typename... Args> void operator()(Args... args) {
- Measurement<TimeGauge, Callable>::operator()(args...);
- }
-};
-
-template <typename Callable>
-class MemoryMeasurement : public Measurement<MemoryGauge, Callable> {
-public:
- MemoryMeasurement() : Measurement<MemoryGauge, Callable>() {}
-
- MemoryMeasurement(Callable callable, const char *name, const char *descr)
- : Measurement<MemoryGauge, Callable>(callable, name, descr) {}
-
- MemoryMeasurement(const char *name, const char *descr)
- : Measurement<MemoryGauge, Callable>(name, descr) {}
-
- template <typename Callable_Rhs>
- MemoryMeasurement(const MemoryMeasurement<Callable_Rhs> &rhs)
- : Measurement<MemoryGauge, Callable>(rhs) {}
-
- template <typename GaugeType_Rhs, typename Callable_Rhs>
- MemoryMeasurement(const Measurement<GaugeType_Rhs, Callable_Rhs> &rhs)
- : Measurement<GaugeType_Rhs, Callable_Rhs>(rhs) {}
-
- template <typename... Args> void operator()(Args... args) {
- Measurement<MemoryGauge, Callable>::operator()(args...);
- }
-};
-}
-
-#endif /* defined(__PerfTestDriver__Measurement__) */
OpenPOWER on IntegriCloud