diff options
author | Eddie Hung <eddie@fpgeh.com> | 2020-04-24 13:26:04 -0700 |
---|---|---|
committer | Eddie Hung <eddie@fpgeh.com> | 2020-04-24 13:26:04 -0700 |
commit | e6021848565f3f5e58b8a33927c53ce761f5b927 (patch) | |
tree | 28e04282b59114673eeff05b7008a25109ebffa8 /passes/cmds | |
parent | 4bfe6ebea929fb221853f775570ec5c7ccc5fac4 (diff) | |
download | yosys-e6021848565f3f5e58b8a33927c53ce761f5b927.tar.gz yosys-e6021848565f3f5e58b8a33927c53ce761f5b927.tar.bz2 yosys-e6021848565f3f5e58b8a33927c53ce761f5b927.zip |
bugpoint: (* keep *) to (* bugpoint_keep *); also apply to modules/cells
Diffstat (limited to 'passes/cmds')
-rw-r--r-- | passes/cmds/bugpoint.cc | 19 |
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()); |