summaryrefslogtreecommitdiff
path: root/kernel/register.h
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2014-08-01 18:42:10 +0200
committerClifford Wolf <clifford@clifford.at>2014-08-01 18:42:10 +0200
commit1e224506be6d824ea9ed1855fa46d039e5ffefd5 (patch)
tree0dcee1ea4fbb5b87f6492f8921d96aec137a51b9 /kernel/register.h
parentd13eb7e0999def2da03eb6ddef805145f7fd9c9a (diff)
Added per-pass cpu usage statistics
Diffstat (limited to 'kernel/register.h')
-rw-r--r--kernel/register.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/kernel/register.h b/kernel/register.h
index 17942ca9..93a3308a 100644
--- a/kernel/register.h
+++ b/kernel/register.h
@@ -31,14 +31,23 @@ YOSYS_NAMESPACE_BEGIN
struct Pass
{
std::string pass_name, short_help;
- int call_counter;
-
Pass(std::string name, std::string short_help = "** document me **");
virtual ~Pass();
virtual void help();
virtual void execute(std::vector<std::string> args, RTLIL::Design *design) = 0;
+ int call_counter;
+ int64_t runtime_ns;
+
+ struct pre_post_exec_state_t {
+ Pass *parent_pass;
+ int64_t begin_ns;
+ };
+
+ pre_post_exec_state_t pre_execute();
+ void post_execute(pre_post_exec_state_t state);
+
void cmd_log_args(const std::vector<std::string> &args);
void cmd_error(const std::vector<std::string> &args, size_t argidx, std::string msg);
void extra_args(std::vector<std::string> args, size_t argidx, RTLIL::Design *design, bool select = true);