mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-04 13:29:12 +00:00 
			
		
		
		
	Added opt -purge (frontend to opt_clean -purge)
This commit is contained in:
		
							parent
							
								
									922d1c9520
								
							
						
					
					
						commit
						82c98bbbe6
					
				
					 1 changed files with 8 additions and 3 deletions
				
			
		| 
						 | 
					@ -31,7 +31,7 @@ struct OptPass : public Pass {
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 
							//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 
				
			||||||
		log("\n");
 | 
							log("\n");
 | 
				
			||||||
		log("    opt [-mux_undef] [-mux_bool] [-undriven] [selection]\n");
 | 
							log("    opt [-purge] [-mux_undef] [-mux_bool] [-undriven] [selection]\n");
 | 
				
			||||||
		log("\n");
 | 
							log("\n");
 | 
				
			||||||
		log("This pass calls all the other opt_* passes in a useful order. This performs\n");
 | 
							log("This pass calls all the other opt_* passes in a useful order. This performs\n");
 | 
				
			||||||
		log("a series of trivial optimizations and cleanups. This pass executes the other\n");
 | 
							log("a series of trivial optimizations and cleanups. This pass executes the other\n");
 | 
				
			||||||
| 
						 | 
					@ -45,13 +45,14 @@ struct OptPass : public Pass {
 | 
				
			||||||
		log("        opt_reduce\n");
 | 
							log("        opt_reduce\n");
 | 
				
			||||||
		log("        opt_share\n");
 | 
							log("        opt_share\n");
 | 
				
			||||||
		log("        opt_rmdff\n");
 | 
							log("        opt_rmdff\n");
 | 
				
			||||||
		log("        opt_clean\n");
 | 
							log("        opt_clean [-purge]\n");
 | 
				
			||||||
		log("        opt_const [-mux_undef] [-mux_bool] [-undriven]\n");
 | 
							log("        opt_const [-mux_undef] [-mux_bool] [-undriven]\n");
 | 
				
			||||||
		log("    while [changed design]\n");
 | 
							log("    while [changed design]\n");
 | 
				
			||||||
		log("\n");
 | 
							log("\n");
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	virtual void execute(std::vector<std::string> args, RTLIL::Design *design)
 | 
						virtual void execute(std::vector<std::string> args, RTLIL::Design *design)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
 | 
							std::string opt_clean_args;
 | 
				
			||||||
		std::string opt_const_args;
 | 
							std::string opt_const_args;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		log_header("Executing OPT pass (performing simple optimizations).\n");
 | 
							log_header("Executing OPT pass (performing simple optimizations).\n");
 | 
				
			||||||
| 
						 | 
					@ -59,6 +60,10 @@ struct OptPass : public Pass {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		size_t argidx;
 | 
							size_t argidx;
 | 
				
			||||||
		for (argidx = 1; argidx < args.size(); argidx++) {
 | 
							for (argidx = 1; argidx < args.size(); argidx++) {
 | 
				
			||||||
 | 
								if (args[argidx] == "-purge") {
 | 
				
			||||||
 | 
									opt_clean_args += " -purge";
 | 
				
			||||||
 | 
									continue;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
			if (args[argidx] == "-mux_undef") {
 | 
								if (args[argidx] == "-mux_undef") {
 | 
				
			||||||
				opt_const_args += " -mux_undef";
 | 
									opt_const_args += " -mux_undef";
 | 
				
			||||||
				continue;
 | 
									continue;
 | 
				
			||||||
| 
						 | 
					@ -86,7 +91,7 @@ struct OptPass : public Pass {
 | 
				
			||||||
			Pass::call(design, "opt_reduce");
 | 
								Pass::call(design, "opt_reduce");
 | 
				
			||||||
			Pass::call(design, "opt_share");
 | 
								Pass::call(design, "opt_share");
 | 
				
			||||||
			Pass::call(design, "opt_rmdff");
 | 
								Pass::call(design, "opt_rmdff");
 | 
				
			||||||
			Pass::call(design, "opt_clean");
 | 
								Pass::call(design, "opt_clean" + opt_clean_args);
 | 
				
			||||||
			Pass::call(design, "opt_const" + opt_const_args);
 | 
								Pass::call(design, "opt_const" + opt_const_args);
 | 
				
			||||||
			if (OPT_DID_SOMETHING == false)
 | 
								if (OPT_DID_SOMETHING == false)
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue