summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2013-11-10 23:24:21 +0100
committerClifford Wolf <clifford@clifford.at>2013-11-10 23:24:21 +0100
commit378cc509cd7dcb9db9f1e1b4023ab686955bc9f6 (patch)
treec2779ef932231c89e6467b6d221e8abc36c11a38
parent223892ac286b1dd0d09bf2449cd8953b1029ae68 (diff)
Call internal checker more often
-rw-r--r--frontends/ast/ast.cc1
-rw-r--r--kernel/driver.cc11
-rw-r--r--kernel/register.cc6
-rw-r--r--passes/techmap/techmap.cc2
4 files changed, 11 insertions, 9 deletions
diff --git a/frontends/ast/ast.cc b/frontends/ast/ast.cc
index bf7d0c38..115a3933 100644
--- a/frontends/ast/ast.cc
+++ b/frontends/ast/ast.cc
@@ -856,6 +856,7 @@ RTLIL::IdString AstModule::derive(RTLIL::Design *design, std::map<RTLIL::IdStrin
if (design->modules.count(modname) == 0) {
new_ast->str = modname;
design->modules[modname] = process_module(new_ast);
+ design->modules[modname]->check();
} else {
log("Found cached RTLIL representation for module `%s'.\n", modname.c_str());
}
diff --git a/kernel/driver.cc b/kernel/driver.cc
index 54f7a2e6..05a0c48a 100644
--- a/kernel/driver.cc
+++ b/kernel/driver.cc
@@ -67,14 +67,10 @@ static void run_frontend(std::string filename, std::string command, RTLIL::Desig
if (f == NULL)
log_error("Can't open script file `%s' for reading: %s\n", filename.c_str(), strerror(errno));
std::string command;
- while (fgetline(f, command)) {
+ while (fgetline(f, command))
Pass::call(design, command);
- design->check();
- }
- if (!command.empty()) {
+ if (!command.empty())
Pass::call(design, command);
- design->check();
- }
if (filename != "-")
fclose(f);
if (backend_command != NULL && *backend_command == "auto")
@@ -89,7 +85,6 @@ static void run_frontend(std::string filename, std::string command, RTLIL::Desig
}
Frontend::frontend_call(design, NULL, filename, command);
- design->check();
}
static void run_pass(std::string command, RTLIL::Design *design)
@@ -97,7 +92,6 @@ static void run_pass(std::string command, RTLIL::Design *design)
log("\n-- Running pass `%s' --\n", command.c_str());
Pass::call(design, command);
- design->check();
}
static void run_backend(std::string filename, std::string command, RTLIL::Design *design)
@@ -125,7 +119,6 @@ static void run_backend(std::string filename, std::string command, RTLIL::Design
}
Backend::backend_call(design, NULL, filename, command);
- design->check();
}
static char *readline_cmd_generator(const char *text, int state)
diff --git a/kernel/register.cc b/kernel/register.cc
index 4575e409..e02fc8fc 100644
--- a/kernel/register.cc
+++ b/kernel/register.cc
@@ -178,6 +178,8 @@ void Pass::call(RTLIL::Design *design, std::vector<std::string> args)
pass_register[args[0]]->execute(args, design);
while (design->selection_stack.size() > orig_sel_stack_pos)
design->selection_stack.pop_back();
+
+ design->check();
}
Frontend::Frontend(std::string name, std::string short_help) : Pass("read_"+name, short_help), frontend_name(name)
@@ -270,6 +272,8 @@ void Frontend::frontend_call(RTLIL::Design *design, FILE *f, std::string filenam
args.push_back(filename);
frontend_register[args[0]]->execute(args, design);
}
+
+ design->check();
}
Backend::Backend(std::string name, std::string short_help) : Pass("write_"+name, short_help), backend_name(name)
@@ -364,6 +368,8 @@ void Backend::backend_call(RTLIL::Design *design, FILE *f, std::string filename,
while (design->selection_stack.size() > orig_sel_stack_pos)
design->selection_stack.pop_back();
+
+ design->check();
}
struct HelpPass : public Pass {
diff --git a/passes/techmap/techmap.cc b/passes/techmap/techmap.cc
index 75ff4a6c..913c8a73 100644
--- a/passes/techmap/techmap.cc
+++ b/passes/techmap/techmap.cc
@@ -352,6 +352,8 @@ struct TechmapPass : public Pass {
for (auto &mod_it : design->modules)
if (techmap_module(design, mod_it.second, map, handled_cells, celltypeMap, false, opt_mode))
did_something = true;
+ if (did_something)
+ design->check();
}
log("No more expansions possible.\n");