- Pass::call(design, "opt_const" + opt_const_args);
- if (OPT_DID_SOMETHING == false)
- break;
- log_header("Rerunning OPT passes. (Maybe there is more to do..)\n");
+ }
+ else
+ {
+ Pass::call(design, "opt_expr" + opt_expr_args);
+ Pass::call(design, "opt_merge -nomux" + opt_merge_args);
+ while (1) {
+ design->scratchpad_unset("opt.did_something");
+ 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");
+ if (!noff_mode)
+ Pass::call(design, "opt_dff" + opt_dff_args);
+ Pass::call(design, "opt_clean" + opt_clean_args);
+ Pass::call(design, "opt_expr" + opt_expr_args);
+ if (design->scratchpad_get_bool("opt.did_something") == false)
+ break;
+ log_header(design, "Rerunning OPT passes. (Maybe there is more to do..)\n");
+ }