aboutsummaryrefslogtreecommitdiffstats
path: root/passes/opt/opt.cc
diff options
context:
space:
mode:
authorEddie Hung <eddie@fpgeh.com>2019-08-20 20:18:17 -0700
committerEddie Hung <eddie@fpgeh.com>2019-08-20 20:18:17 -0700
commitb7a48e3e0f49f09e12a2b394b62256a87c398dbc (patch)
tree9667249b7e1ab86c264f44d0a2f03b326e2763fa /passes/opt/opt.cc
parentc320abc3f490b09b21804581c2b386c30d186a1e (diff)
parent33960dd3d84b628f6e5de45c112368dc80626457 (diff)
downloadyosys-b7a48e3e0f49f09e12a2b394b62256a87c398dbc.tar.gz
yosys-b7a48e3e0f49f09e12a2b394b62256a87c398dbc.tar.bz2
yosys-b7a48e3e0f49f09e12a2b394b62256a87c398dbc.zip
Merge remote-tracking branch 'origin/master' into xc7dsp
Diffstat (limited to 'passes/opt/opt.cc')
-rw-r--r--passes/opt/opt.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/passes/opt/opt.cc b/passes/opt/opt.cc
index e9a43e0f3..396819883 100644
--- a/passes/opt/opt.cc
+++ b/passes/opt/opt.cc
@@ -44,6 +44,7 @@ struct OptPass : public Pass {
log(" opt_muxtree\n");
log(" opt_reduce [-fine] [-full]\n");
log(" opt_merge [-share_all]\n");
+ log(" opt_share (-full only)\n");
log(" opt_rmdff [-keepdc] [-sat]\n");
log(" opt_clean [-purge]\n");
log(" opt_expr [-mux_undef] [-mux_bool] [-undriven] [-clkinv] [-fine] [-full] [-keepdc]\n");
@@ -70,6 +71,7 @@ struct OptPass : public Pass {
std::string opt_reduce_args;
std::string opt_merge_args;
std::string opt_rmdff_args;
+ bool opt_share = false;
bool fast_mode = false;
log_header(design, "Executing OPT pass (performing simple optimizations).\n");
@@ -105,6 +107,7 @@ struct OptPass : public Pass {
if (args[argidx] == "-full") {
opt_expr_args += " -full";
opt_reduce_args += " -full";
+ opt_share = true;
continue;
}
if (args[argidx] == "-keepdc") {
@@ -151,6 +154,8 @@ struct OptPass : public Pass {
Pass::call(design, "opt_muxtree");
Pass::call(design, "opt_reduce" + opt_reduce_args);
Pass::call(design, "opt_merge" + opt_merge_args);
+ if (opt_share)
+ Pass::call(design, "opt_share");
Pass::call(design, "opt_rmdff" + opt_rmdff_args);
Pass::call(design, "opt_clean" + opt_clean_args);
Pass::call(design, "opt_expr" + opt_expr_args);