aboutsummaryrefslogtreecommitdiffstats
path: root/passes/opt/opt.cc
diff options
context:
space:
mode:
authorEddie Hung <eddie@fpgeh.com>2019-08-23 10:00:50 -0700
committerEddie Hung <eddie@fpgeh.com>2019-08-23 10:00:50 -0700
commit6872805a3eb738a0a5921b232022abfd507cebb8 (patch)
treeb871344e8f96cd30c5a6bc3f275476e30f792de0 /passes/opt/opt.cc
parent6b51c154c6812f58676402ebbbdbb18d053ca4be (diff)
parentbb2d5bc4f85ac95104fbd2591ad92ebf0c22e11d (diff)
downloadyosys-6872805a3eb738a0a5921b232022abfd507cebb8.tar.gz
yosys-6872805a3eb738a0a5921b232022abfd507cebb8.tar.bz2
yosys-6872805a3eb738a0a5921b232022abfd507cebb8.zip
Merge remote-tracking branch 'origin/master' into mwk/xilinx_bufgmap
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);