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---|
 | 
			
		||||
		log("\n");
 | 
			
		||||
		log("    opt [-mux_undef] [-mux_bool] [-undriven] [selection]\n");
 | 
			
		||||
		log("    opt [-purge] [-mux_undef] [-mux_bool] [-undriven] [selection]\n");
 | 
			
		||||
		log("\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");
 | 
			
		||||
| 
						 | 
				
			
			@ -45,13 +45,14 @@ struct OptPass : public Pass {
 | 
			
		|||
		log("        opt_reduce\n");
 | 
			
		||||
		log("        opt_share\n");
 | 
			
		||||
		log("        opt_rmdff\n");
 | 
			
		||||
		log("        opt_clean\n");
 | 
			
		||||
		log("        opt_clean [-purge]\n");
 | 
			
		||||
		log("        opt_const [-mux_undef] [-mux_bool] [-undriven]\n");
 | 
			
		||||
		log("    while [changed design]\n");
 | 
			
		||||
		log("\n");
 | 
			
		||||
	}
 | 
			
		||||
	virtual void execute(std::vector<std::string> args, RTLIL::Design *design)
 | 
			
		||||
	{
 | 
			
		||||
		std::string opt_clean_args;
 | 
			
		||||
		std::string opt_const_args;
 | 
			
		||||
 | 
			
		||||
		log_header("Executing OPT pass (performing simple optimizations).\n");
 | 
			
		||||
| 
						 | 
				
			
			@ -59,6 +60,10 @@ struct OptPass : public Pass {
 | 
			
		|||
 | 
			
		||||
		size_t argidx;
 | 
			
		||||
		for (argidx = 1; argidx < args.size(); argidx++) {
 | 
			
		||||
			if (args[argidx] == "-purge") {
 | 
			
		||||
				opt_clean_args += " -purge";
 | 
			
		||||
				continue;
 | 
			
		||||
			}
 | 
			
		||||
			if (args[argidx] == "-mux_undef") {
 | 
			
		||||
				opt_const_args += " -mux_undef";
 | 
			
		||||
				continue;
 | 
			
		||||
| 
						 | 
				
			
			@ -86,7 +91,7 @@ struct OptPass : public Pass {
 | 
			
		|||
			Pass::call(design, "opt_reduce");
 | 
			
		||||
			Pass::call(design, "opt_share");
 | 
			
		||||
			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);
 | 
			
		||||
			if (OPT_DID_SOMETHING == false)
 | 
			
		||||
				break;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue