aboutsummaryrefslogtreecommitdiff
path: root/utils/gen_adldata/measurer.h
diff options
context:
space:
mode:
Diffstat (limited to 'utils/gen_adldata/measurer.h')
-rw-r--r--utils/gen_adldata/measurer.h23
1 files changed, 18 insertions, 5 deletions
diff --git a/utils/gen_adldata/measurer.h b/utils/gen_adldata/measurer.h
index 63475ca..f49b9bf 100644
--- a/utils/gen_adldata/measurer.h
+++ b/utils/gen_adldata/measurer.h
@@ -6,6 +6,7 @@
#include <mutex>
#include <condition_variable>
#include <thread>
+#include <array>
#include "progs_cache.h"
@@ -54,24 +55,28 @@ private:
struct MeasureThreaded
{
+ typedef std::array<int_fast32_t, 10> OperatorsKey;
typedef std::map<ins, DurationInfo> DurationInfoCache;
+ typedef std::map<OperatorsKey, DurationInfo> DurationInfoCacheX;
- MeasureThreaded() :
- m_semaphore(int(std::thread::hardware_concurrency()) * 2),
- m_done(0),
- m_cache_matches(0)
- {}
+ MeasureThreaded();
Semaphore m_semaphore;
std::mutex m_durationInfo_mx;
DurationInfoCache m_durationInfo;
+ DurationInfoCacheX m_durationInfoX;
std::atomic_bool m_delete_tail;
size_t m_total = 0;
std::atomic<size_t> m_done;
std::atomic<size_t> m_cache_matches;
+#if 0
void LoadCache(const char *fileName);
void SaveCache(const char *fileName);
+#endif
+
+ void LoadCacheX(const char *fileName);
+ void SaveCacheX(const char *fileName);
struct destData
{
@@ -85,6 +90,8 @@ struct MeasureThreaded
}
MeasureThreaded *myself;
std::map<ins, std::pair<size_t, std::set<std::string> > >::const_iterator i;
+ BanksDump *bd;
+ BanksDump::InstrumentEntry *bd_ins;
std::thread m_work;
std::atomic_bool m_works;
@@ -96,11 +103,17 @@ struct MeasureThreaded
void printProgress();
void printFinal();
+#if 0
void run(InstrumentsData::const_iterator i);
+#endif
+ void run(BanksDump &bd, BanksDump::InstrumentEntry &e);
void waitAll();
};
class OPLChipBase;
+#if 0
extern DurationInfo MeasureDurations(const ins &in, OPLChipBase *chip);
+#endif
+extern DurationInfo MeasureDurations(const BanksDump &db, const BanksDump::InstrumentEntry &ins, OPLChipBase *chip);
#endif // MEASURER_H