Added -nodetect option to fsm pass
authorClifford Wolf <clifford@clifford.at>
Fri, 24 May 2013 13:34:25 +0000 (15:34 +0200)
committerClifford Wolf <clifford@clifford.at>
Fri, 24 May 2013 13:34:25 +0000 (15:34 +0200)
passes/fsm/fsm.cc

index b4d7bc46fadfe56f92c7d2323175c7ec315bb215..1feeaf8b3eb82acb755de2d5fbd5bf110c86f056 100644 (file)
@@ -33,7 +33,7 @@ struct FsmPass : public Pass {
                log("This pass calls all the other fsm_* passes in a useful order. This performs\n");
                log("FSM extraction and optimiziation. It also calls opt_rmunused as needed:\n");
                log("\n");
-               log("    fsm_detect\n");
+               log("    fsm_detect          unless got option -nodetect\n");
                log("    fsm_extract\n");
                log("\n");
                log("    fsm_opt\n");
@@ -65,6 +65,7 @@ struct FsmPass : public Pass {
        {
                bool flag_nomap = false;
                bool flag_norecode = false;
+               bool flag_nodetect = false;
                bool flag_expand = false;
                bool flag_export = false;
                std::string fm_set_fsm_file_opt;
@@ -84,6 +85,10 @@ struct FsmPass : public Pass {
                                encoding_opt = " -encoding " + args[++argidx];
                                continue;
                        }
+                       if (arg == "-nodetect") {
+                               flag_nodetect = true;
+                               continue;
+                       }
                        if (arg == "-norecode") {
                                flag_norecode = true;
                                continue;
@@ -104,7 +109,8 @@ struct FsmPass : public Pass {
                }
                extra_args(args, argidx, design);
 
-               Pass::call(design, "fsm_detect");
+               if (!flag_nodetect)
+                       Pass::call(design, "fsm_detect");
                Pass::call(design, "fsm_extract");
 
                Pass::call(design, "fsm_opt");