aboutsummaryrefslogtreecommitdiffstats
path: root/passes
diff options
context:
space:
mode:
authorEddie Hung <eddie@fpgeh.com>2020-04-24 13:26:04 -0700
committerEddie Hung <eddie@fpgeh.com>2020-04-24 13:26:04 -0700
commite6021848565f3f5e58b8a33927c53ce761f5b927 (patch)
tree28e04282b59114673eeff05b7008a25109ebffa8 /passes
parent4bfe6ebea929fb221853f775570ec5c7ccc5fac4 (diff)
downloadyosys-e6021848565f3f5e58b8a33927c53ce761f5b927.tar.gz
yosys-e6021848565f3f5e58b8a33927c53ce761f5b927.tar.bz2
yosys-e6021848565f3f5e58b8a33927c53ce761f5b927.zip
bugpoint: (* keep *) to (* bugpoint_keep *); also apply to modules/cells
Diffstat (limited to 'passes')
-rw-r--r--passes/cmds/bugpoint.cc19
1 files changed, 14 insertions, 5 deletions
diff --git a/passes/cmds/bugpoint.cc b/passes/cmds/bugpoint.cc
index 2bdd551af..0e9bd9dc3 100644
--- a/passes/cmds/bugpoint.cc
+++ b/passes/cmds/bugpoint.cc
@@ -63,14 +63,16 @@ struct BugpointPass : public Pass {
log("will be considered.\n");
log("\n");
log(" -modules\n");
- log(" try to remove modules.\n");
+ log(" try to remove modules. modules with a (* bugpoint_keep *) attribute\n");
+ log(" will be skipped.\n");
log("\n");
log(" -ports\n");
- log(" try to remove module ports. ports with a (* keep *) attribute will be\n");
- log(" skipped (useful for clocks, resets, etc.)\n");
+ log(" try to remove module ports. ports with a (* bugpoint_keep *) attribute\n");
+ log(" will be skipped (useful for clocks, resets, etc.)\n");
log("\n");
log(" -cells\n");
- log(" try to remove cells.\n");
+ log(" try to remove cells. cells with a (* bugpoint_keep *) attribute will\n");
+ log(" be skipped.\n");
log("\n");
log(" -connections\n");
log(" try to reconnect ports to 'x.\n");
@@ -142,6 +144,9 @@ struct BugpointPass : public Pass {
if (module->get_blackbox_attribute())
continue;
+ if (module->get_bool_attribute(ID::bugpoint_keep))
+ continue;
+
if (index++ == seed)
{
log("Trying to remove module %s.\n", module->name.c_str());
@@ -169,7 +174,7 @@ struct BugpointPass : public Pass {
if (!stage2 && wire->get_bool_attribute(ID($bugpoint)))
continue;
- if (wire->get_bool_attribute(ID::keep))
+ if (wire->get_bool_attribute(ID::bugpoint_keep))
continue;
if (index++ == seed)
@@ -189,9 +194,13 @@ struct BugpointPass : public Pass {
if (mod->get_blackbox_attribute())
continue;
+
Cell *removed_cell = nullptr;
for (auto cell : mod->cells())
{
+ if (cell->get_bool_attribute(ID::bugpoint_keep))
+ continue;
+
if (index++ == seed)
{
log("Trying to remove cell %s.%s.\n", mod->name.c_str(), cell->name.c_str());