#ifndef LOGGER_H_ #define LOGGER_H_ #include #include #include using namespace std; #define MAX_INST_LEN 32 struct __pp_mask; struct Log { char instruction[MAX_INST_LEN]; unsigned long long mask; // support vector width up to 64 }; struct Statistics { unsigned long long utilized_lane; unsigned long long total_lane; unsigned long long total_instructions; }; class Logger { private: vector log; Statistics stats; public: void addLog(const char * instruction, __pp_mask mask, int N = 0); void printStats(); void printLog(); void refresh(); unsigned long long getTotalInstrs(); }; #endif