add timer to openfpga shell
This commit is contained in:
parent
1c634e4600
commit
f97e3bfba6
|
@ -5,6 +5,7 @@
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
#include <ctime>
|
||||||
|
|
||||||
#include "vtr_vector.h"
|
#include "vtr_vector.h"
|
||||||
#include "vtr_range.h"
|
#include "vtr_range.h"
|
||||||
|
@ -211,6 +212,9 @@ class Shell {
|
||||||
std::map<std::string, ShellCommandId> command_name2ids_;
|
std::map<std::string, ShellCommandId> command_name2ids_;
|
||||||
std::map<std::string, ShellCommandClassId> command_class2ids_;
|
std::map<std::string, ShellCommandClassId> command_class2ids_;
|
||||||
vtr::vector<ShellCommandClassId, std::vector<ShellCommandId>> commands_by_classes_;
|
vtr::vector<ShellCommandClassId, std::vector<ShellCommandId>> commands_by_classes_;
|
||||||
|
|
||||||
|
/* Timer */
|
||||||
|
std::clock_t time_start_;
|
||||||
};
|
};
|
||||||
|
|
||||||
} /* End namespace openfpga */
|
} /* End namespace openfpga */
|
||||||
|
|
|
@ -28,6 +28,7 @@ namespace openfpga {
|
||||||
template<class T>
|
template<class T>
|
||||||
Shell<T>::Shell(const char* name) {
|
Shell<T>::Shell(const char* name) {
|
||||||
name_ = std::string(name);
|
name_ = std::string(name);
|
||||||
|
time_start_ = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
|
@ -241,6 +242,9 @@ ShellCommandClassId Shell<T>::add_command_class(const char* name) {
|
||||||
template <class T>
|
template <class T>
|
||||||
void Shell<T>::run_interactive_mode(T& context, const bool& quiet_mode) {
|
void Shell<T>::run_interactive_mode(T& context, const bool& quiet_mode) {
|
||||||
if (false == quiet_mode) {
|
if (false == quiet_mode) {
|
||||||
|
/* Reset timer since it does not come from another mode */
|
||||||
|
time_start_ = std::clock();
|
||||||
|
|
||||||
VTR_LOG("Start interactive mode of %s...\n",
|
VTR_LOG("Start interactive mode of %s...\n",
|
||||||
name().c_str());
|
name().c_str());
|
||||||
|
|
||||||
|
@ -270,6 +274,8 @@ void Shell<T>::run_interactive_mode(T& context, const bool& quiet_mode) {
|
||||||
template <class T>
|
template <class T>
|
||||||
void Shell<T>::run_script_mode(const char* script_file_name, T& context) {
|
void Shell<T>::run_script_mode(const char* script_file_name, T& context) {
|
||||||
|
|
||||||
|
time_start_ = std::clock();
|
||||||
|
|
||||||
VTR_LOG("Reading script file %s...\n", script_file_name);
|
VTR_LOG("Reading script file %s...\n", script_file_name);
|
||||||
|
|
||||||
/* Print the title of the shell */
|
/* Print the title of the shell */
|
||||||
|
@ -419,6 +425,9 @@ void Shell<T>::exit() const {
|
||||||
VTR_LOG("\nFinish execution with %d errors\n",
|
VTR_LOG("\nFinish execution with %d errors\n",
|
||||||
num_err);
|
num_err);
|
||||||
|
|
||||||
|
VTR_LOG("\nThe entire OpenFPGA flow took %g seconds\n",
|
||||||
|
(double)(std::clock() - time_start_) / (double)CLOCKS_PER_SEC);
|
||||||
|
|
||||||
VTR_LOG("\nThank you for using %s!\n",
|
VTR_LOG("\nThank you for using %s!\n",
|
||||||
name().c_str());
|
name().c_str());
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
* Main function to start OpenFPGA shell interface
|
* Main function to start OpenFPGA shell interface
|
||||||
*******************************************************************/
|
*******************************************************************/
|
||||||
int main(int argc, char** argv) {
|
int main(int argc, char** argv) {
|
||||||
|
|
||||||
/* Create the command to launch shell in different modes */
|
/* Create the command to launch shell in different modes */
|
||||||
openfpga::Command start_cmd("OpenFPGA");
|
openfpga::Command start_cmd("OpenFPGA");
|
||||||
/* Add two options:
|
/* Add two options:
|
||||||
|
@ -89,13 +90,11 @@ int main(int argc, char** argv) {
|
||||||
/* Parse succeed. Start a shell */
|
/* Parse succeed. Start a shell */
|
||||||
if (true == start_cmd_context.option_enable(start_cmd, opt_interactive)) {
|
if (true == start_cmd_context.option_enable(start_cmd, opt_interactive)) {
|
||||||
|
|
||||||
vtr::ScopedStartFinishTimer timer("OpenFPGA operating");
|
|
||||||
shell.run_interactive_mode(openfpga_context);
|
shell.run_interactive_mode(openfpga_context);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (true == start_cmd_context.option_enable(start_cmd, opt_script_mode)) {
|
if (true == start_cmd_context.option_enable(start_cmd, opt_script_mode)) {
|
||||||
vtr::ScopedStartFinishTimer timer("OpenFPGA operating");
|
|
||||||
shell.run_script_mode(start_cmd_context.option_value(start_cmd, opt_script_mode).c_str(),
|
shell.run_script_mode(start_cmd_context.option_value(start_cmd, opt_script_mode).c_str(),
|
||||||
openfpga_context);
|
openfpga_context);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue