mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-27 01:39:23 +00:00 
			
		
		
		
	Consistent use of 'override' for virtual methods in derived classes.
o Not all derived methods were marked 'override', but it is a great feature of C++11 that we should make use of. o While at it: touched header files got a -*- c++ -*- for emacs to provide support for that language. o use YS_OVERRIDE for all override keywords (though we should probably use the plain keyword going forward now that C++11 is established)
This commit is contained in:
		
							parent
							
								
									323f6f6f60
								
							
						
					
					
						commit
						3aa4484a3c
					
				
					 170 changed files with 414 additions and 416 deletions
				
			
		|  | @ -21,7 +21,7 @@ Here is a the C++ code for a "hello_world" Yosys command (hello.cc): | ||||||
| 
 | 
 | ||||||
| 	struct HelloWorldPass : public Pass { | 	struct HelloWorldPass : public Pass { | ||||||
| 		HelloWorldPass() : Pass("hello_world") { } | 		HelloWorldPass() : Pass("hello_world") { } | ||||||
| 		virtual void execute(vector<string>, Design*) { | 		void execute(vector<string>, Design*) override { | ||||||
| 			log("Hello World!\n"); | 			log("Hello World!\n"); | ||||||
| 		} | 		} | ||||||
| 	} HelloWorldPass; | 	} HelloWorldPass; | ||||||
|  |  | ||||||
|  | @ -657,7 +657,7 @@ struct AigerWriter | ||||||
| 
 | 
 | ||||||
| struct AigerBackend : public Backend { | struct AigerBackend : public Backend { | ||||||
| 	AigerBackend() : Backend("aiger", "write design to AIGER file") { } | 	AigerBackend() : Backend("aiger", "write design to AIGER file") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -690,7 +690,7 @@ struct AigerBackend : public Backend { | ||||||
| 		log("        like -map, but more verbose\n"); | 		log("        like -map, but more verbose\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		bool ascii_mode = false; | 		bool ascii_mode = false; | ||||||
| 		bool zinit_mode = false; | 		bool zinit_mode = false; | ||||||
|  |  | ||||||
|  | @ -464,7 +464,7 @@ struct BlifDumper | ||||||
| 
 | 
 | ||||||
| struct BlifBackend : public Backend { | struct BlifBackend : public Backend { | ||||||
| 	BlifBackend() : Backend("blif", "write design to BLIF file") { } | 	BlifBackend() : Backend("blif", "write design to BLIF file") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -534,7 +534,7 @@ struct BlifBackend : public Backend { | ||||||
| 		log("        do not write definitions for the $true, $false and $undef wires.\n"); | 		log("        do not write definitions for the $true, $false and $undef wires.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		std::string top_module_name; | 		std::string top_module_name; | ||||||
| 		std::string buf_type, buf_in, buf_out; | 		std::string buf_type, buf_in, buf_out; | ||||||
|  |  | ||||||
|  | @ -1076,7 +1076,7 @@ struct BtorWorker | ||||||
| 
 | 
 | ||||||
| struct BtorBackend : public Backend { | struct BtorBackend : public Backend { | ||||||
| 	BtorBackend() : Backend("btor", "write design to BTOR file") { } | 	BtorBackend() : Backend("btor", "write design to BTOR file") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -1091,7 +1091,7 @@ struct BtorBackend : public Backend { | ||||||
| 		log("    Output only a single bad property for all asserts\n"); | 		log("    Output only a single bad property for all asserts\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		bool verbose = false, single_bad = false; | 		bool verbose = false, single_bad = false; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -90,7 +90,7 @@ struct EdifNames | ||||||
| 
 | 
 | ||||||
| struct EdifBackend : public Backend { | struct EdifBackend : public Backend { | ||||||
| 	EdifBackend() : Backend("edif", "write design to EDIF netlist file") { } | 	EdifBackend() : Backend("edif", "write design to EDIF netlist file") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -116,7 +116,7 @@ struct EdifBackend : public Backend { | ||||||
| 		log("is targeted.\n"); | 		log("is targeted.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log_header(design, "Executing EDIF backend.\n"); | 		log_header(design, "Executing EDIF backend.\n"); | ||||||
| 		std::string top_module_name; | 		std::string top_module_name; | ||||||
|  |  | ||||||
|  | @ -527,7 +527,7 @@ struct FirrtlWorker | ||||||
| 
 | 
 | ||||||
| struct FirrtlBackend : public Backend { | struct FirrtlBackend : public Backend { | ||||||
| 	FirrtlBackend() : Backend("firrtl", "write design to a FIRRTL file") { } | 	FirrtlBackend() : Backend("firrtl", "write design to a FIRRTL file") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -536,7 +536,7 @@ struct FirrtlBackend : public Backend { | ||||||
| 		log("Write a FIRRTL netlist of the current design.\n"); | 		log("Write a FIRRTL netlist of the current design.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		size_t argidx; | 		size_t argidx; | ||||||
| 		for (argidx = 1; argidx < args.size(); argidx++) | 		for (argidx = 1; argidx < args.size(); argidx++) | ||||||
|  |  | ||||||
|  | @ -382,7 +382,7 @@ PRIVATE_NAMESPACE_BEGIN | ||||||
| 
 | 
 | ||||||
| struct IlangBackend : public Backend { | struct IlangBackend : public Backend { | ||||||
| 	IlangBackend() : Backend("ilang", "write design to ilang file") { } | 	IlangBackend() : Backend("ilang", "write design to ilang file") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -395,7 +395,7 @@ struct IlangBackend : public Backend { | ||||||
| 		log("        only write selected parts of the design.\n"); | 		log("        only write selected parts of the design.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		bool selected = false; | 		bool selected = false; | ||||||
| 
 | 
 | ||||||
|  | @ -422,7 +422,7 @@ struct IlangBackend : public Backend { | ||||||
| 
 | 
 | ||||||
| struct DumpPass : public Pass { | struct DumpPass : public Pass { | ||||||
| 	DumpPass() : Pass("dump", "print parts of the design in ilang format") { } | 	DumpPass() : Pass("dump", "print parts of the design in ilang format") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -445,7 +445,7 @@ struct DumpPass : public Pass { | ||||||
| 		log("        like -outfile but append instead of overwrite\n"); | 		log("        like -outfile but append instead of overwrite\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		std::string filename; | 		std::string filename; | ||||||
| 		bool flag_m = false, flag_n = false, append = false; | 		bool flag_m = false, flag_n = false, append = false; | ||||||
|  |  | ||||||
|  | @ -46,7 +46,7 @@ static std::string netname(std::set<std::string> &conntypes_code, std::set<std:: | ||||||
| 
 | 
 | ||||||
| struct IntersynthBackend : public Backend { | struct IntersynthBackend : public Backend { | ||||||
| 	IntersynthBackend() : Backend("intersynth", "write design to InterSynth netlist file") { } | 	IntersynthBackend() : Backend("intersynth", "write design to InterSynth netlist file") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -71,7 +71,7 @@ struct IntersynthBackend : public Backend { | ||||||
| 		log("http://www.clifford.at/intersynth/\n"); | 		log("http://www.clifford.at/intersynth/\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log_header(design, "Executing INTERSYNTH backend.\n"); | 		log_header(design, "Executing INTERSYNTH backend.\n"); | ||||||
| 		log_push(); | 		log_push(); | ||||||
|  |  | ||||||
|  | @ -250,7 +250,7 @@ struct JsonWriter | ||||||
| 
 | 
 | ||||||
| struct JsonBackend : public Backend { | struct JsonBackend : public Backend { | ||||||
| 	JsonBackend() : Backend("json", "write design to a JSON file") { } | 	JsonBackend() : Backend("json", "write design to a JSON file") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -458,7 +458,7 @@ struct JsonBackend : public Backend { | ||||||
| 		log("format. A program processing this format must ignore all unknown fields.\n"); | 		log("format. A program processing this format must ignore all unknown fields.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		bool aig_mode = false; | 		bool aig_mode = false; | ||||||
| 
 | 
 | ||||||
|  | @ -482,7 +482,7 @@ struct JsonBackend : public Backend { | ||||||
| 
 | 
 | ||||||
| struct JsonPass : public Pass { | struct JsonPass : public Pass { | ||||||
| 	JsonPass() : Pass("json", "write design in JSON format") { } | 	JsonPass() : Pass("json", "write design in JSON format") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -499,7 +499,7 @@ struct JsonPass : public Pass { | ||||||
| 		log("See 'help write_json' for a description of the JSON format used.\n"); | 		log("See 'help write_json' for a description of the JSON format used.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		std::string filename; | 		std::string filename; | ||||||
| 		bool aig_mode = false; | 		bool aig_mode = false; | ||||||
|  |  | ||||||
|  | @ -231,7 +231,7 @@ struct ProtobufDesignSerializer | ||||||
| 
 | 
 | ||||||
| struct ProtobufBackend : public Backend { | struct ProtobufBackend : public Backend { | ||||||
| 	ProtobufBackend(): Backend("protobuf", "write design to a Protocol Buffer file") { } | 	ProtobufBackend(): Backend("protobuf", "write design to a Protocol Buffer file") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -249,7 +249,7 @@ struct ProtobufBackend : public Backend { | ||||||
| 		log("Yosys source code distribution.\n"); | 		log("Yosys source code distribution.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		bool aig_mode = false; | 		bool aig_mode = false; | ||||||
| 		bool text_mode = false; | 		bool text_mode = false; | ||||||
|  | @ -286,7 +286,7 @@ struct ProtobufBackend : public Backend { | ||||||
| 
 | 
 | ||||||
| struct ProtobufPass : public Pass { | struct ProtobufPass : public Pass { | ||||||
| 	ProtobufPass() : Pass("protobuf", "write design in Protobuf format") { } | 	ProtobufPass() : Pass("protobuf", "write design in Protobuf format") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -307,7 +307,7 @@ struct ProtobufPass : public Pass { | ||||||
| 		log("Yosys source code distribution.\n"); | 		log("Yosys source code distribution.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		std::string filename; | 		std::string filename; | ||||||
| 		bool aig_mode = false; | 		bool aig_mode = false; | ||||||
|  |  | ||||||
|  | @ -742,7 +742,7 @@ struct SimplecWorker | ||||||
| 
 | 
 | ||||||
| struct SimplecBackend : public Backend { | struct SimplecBackend : public Backend { | ||||||
| 	SimplecBackend() : Backend("simplec", "convert design to simple C code") { } | 	SimplecBackend() : Backend("simplec", "convert design to simple C code") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -761,7 +761,7 @@ struct SimplecBackend : public Backend { | ||||||
| 		log("THIS COMMAND IS UNDER CONSTRUCTION\n"); | 		log("THIS COMMAND IS UNDER CONSTRUCTION\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		reserved_cids.clear(); | 		reserved_cids.clear(); | ||||||
| 		id2cid.clear(); | 		id2cid.clear(); | ||||||
|  |  | ||||||
|  | @ -1251,7 +1251,7 @@ struct Smt2Worker | ||||||
| 
 | 
 | ||||||
| struct Smt2Backend : public Backend { | struct Smt2Backend : public Backend { | ||||||
| 	Smt2Backend() : Backend("smt2", "write design to SMT-LIBv2 file") { } | 	Smt2Backend() : Backend("smt2", "write design to SMT-LIBv2 file") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -1407,7 +1407,7 @@ struct Smt2Backend : public Backend { | ||||||
| 		log("from non-zero to zero in the test design.\n"); | 		log("from non-zero to zero in the test design.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		std::ifstream template_f; | 		std::ifstream template_f; | ||||||
| 		bool bvmode = true, memmode = true, wiresmode = false, verbose = false, statebv = false, statedt = false; | 		bool bvmode = true, memmode = true, wiresmode = false, verbose = false, statebv = false, statedt = false; | ||||||
|  |  | ||||||
|  | @ -675,7 +675,7 @@ struct SmvWorker | ||||||
| 
 | 
 | ||||||
| struct SmvBackend : public Backend { | struct SmvBackend : public Backend { | ||||||
| 	SmvBackend() : Backend("smv", "write design to SMV file") { } | 	SmvBackend() : Backend("smv", "write design to SMV file") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -693,7 +693,7 @@ struct SmvBackend : public Backend { | ||||||
| 		log("THIS COMMAND IS UNDER CONSTRUCTION\n"); | 		log("THIS COMMAND IS UNDER CONSTRUCTION\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		std::ifstream template_f; | 		std::ifstream template_f; | ||||||
| 		bool verbose = false; | 		bool verbose = false; | ||||||
|  |  | ||||||
|  | @ -132,7 +132,7 @@ static void print_spice_module(std::ostream &f, RTLIL::Module *module, RTLIL::De | ||||||
| 
 | 
 | ||||||
| struct SpiceBackend : public Backend { | struct SpiceBackend : public Backend { | ||||||
| 	SpiceBackend() : Backend("spice", "write design to SPICE netlist file") { } | 	SpiceBackend() : Backend("spice", "write design to SPICE netlist file") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -161,7 +161,7 @@ struct SpiceBackend : public Backend { | ||||||
| 		log("        set the specified module as design top module\n"); | 		log("        set the specified module as design top module\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		std::string top_module_name; | 		std::string top_module_name; | ||||||
| 		RTLIL::Module *top_module = NULL; | 		RTLIL::Module *top_module = NULL; | ||||||
|  |  | ||||||
|  | @ -29,7 +29,7 @@ PRIVATE_NAMESPACE_BEGIN | ||||||
| 
 | 
 | ||||||
| struct TableBackend : public Backend { | struct TableBackend : public Backend { | ||||||
| 	TableBackend() : Backend("table", "write design as connectivity table") { } | 	TableBackend() : Backend("table", "write design as connectivity table") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -48,7 +48,7 @@ struct TableBackend : public Backend { | ||||||
| 		log("module inputs and outputs are output using cell type and port '-' and with\n"); | 		log("module inputs and outputs are output using cell type and port '-' and with\n"); | ||||||
| 		log("'pi' (primary input) or 'po' (primary output) or 'pio' as direction.\n"); | 		log("'pi' (primary input) or 'po' (primary output) or 'pio' as direction.\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log_header(design, "Executing TABLE backend.\n"); | 		log_header(design, "Executing TABLE backend.\n"); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1482,7 +1482,7 @@ void dump_module(std::ostream &f, std::string indent, RTLIL::Module *module) | ||||||
| 
 | 
 | ||||||
| struct VerilogBackend : public Backend { | struct VerilogBackend : public Backend { | ||||||
| 	VerilogBackend() : Backend("verilog", "write design to Verilog file") { } | 	VerilogBackend() : Backend("verilog", "write design to Verilog file") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -1550,7 +1550,7 @@ struct VerilogBackend : public Backend { | ||||||
| 		log("this command is called on a design with RTLIL processes.\n"); | 		log("this command is called on a design with RTLIL processes.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::ostream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log_header(design, "Executing Verilog backend.\n"); | 		log_header(design, "Executing Verilog backend.\n"); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -22,7 +22,7 @@ struct EvalDemoPass : public Pass | ||||||
| { | { | ||||||
| 	EvalDemoPass() : Pass("evaldemo") { } | 	EvalDemoPass() : Pass("evaldemo") { } | ||||||
| 
 | 
 | ||||||
| 	virtual void execute(vector<string>, Design *design) | 	void execute(vector<string>, Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		Module *module = design->top_module(); | 		Module *module = design->top_module(); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| /*
 | /* -*- c++ -*-
 | ||||||
|  *  yosys -- Yosys Open SYnthesis Suite |  *  yosys -- Yosys Open SYnthesis Suite | ||||||
|  * |  * | ||||||
|  *  Copyright (C) 2012  Clifford Wolf <clifford@clifford.at> |  *  Copyright (C) 2012  Clifford Wolf <clifford@clifford.at> | ||||||
|  | @ -282,9 +282,9 @@ namespace AST | ||||||
| 	struct AstModule : RTLIL::Module { | 	struct AstModule : RTLIL::Module { | ||||||
| 		AstNode *ast; | 		AstNode *ast; | ||||||
| 		bool nolatches, nomeminit, nomem2reg, mem2reg, lib, noopt, icells, autowire; | 		bool nolatches, nomeminit, nomem2reg, mem2reg, lib, noopt, icells, autowire; | ||||||
| 		virtual ~AstModule(); | 		~AstModule() YS_OVERRIDE; | ||||||
| 		virtual RTLIL::IdString derive(RTLIL::Design *design, dict<RTLIL::IdString, RTLIL::Const> parameters, bool mayfail); | 		RTLIL::IdString derive(RTLIL::Design *design, dict<RTLIL::IdString, RTLIL::Const> parameters, bool mayfail) YS_OVERRIDE; | ||||||
| 		virtual RTLIL::Module *clone() const; | 		RTLIL::Module *clone() const YS_OVERRIDE; | ||||||
| 	}; | 	}; | ||||||
| 
 | 
 | ||||||
| 	// this must be set by the language frontend before parsing the sources
 | 	// this must be set by the language frontend before parsing the sources
 | ||||||
|  |  | ||||||
|  | @ -550,7 +550,7 @@ error: | ||||||
| 
 | 
 | ||||||
| struct BlifFrontend : public Frontend { | struct BlifFrontend : public Frontend { | ||||||
| 	BlifFrontend() : Frontend("blif", "read BLIF file") { } | 	BlifFrontend() : Frontend("blif", "read BLIF file") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -566,7 +566,7 @@ struct BlifFrontend : public Frontend { | ||||||
| 		log("        multi-bit port 'name'.\n"); | 		log("        multi-bit port 'name'.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::istream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::istream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		bool sop_mode = false; | 		bool sop_mode = false; | ||||||
| 		bool wideports = false; | 		bool wideports = false; | ||||||
|  |  | ||||||
|  | @ -35,7 +35,7 @@ YOSYS_NAMESPACE_BEGIN | ||||||
| 
 | 
 | ||||||
| struct IlangFrontend : public Frontend { | struct IlangFrontend : public Frontend { | ||||||
| 	IlangFrontend() : Frontend("ilang", "read modules from ilang file") { } | 	IlangFrontend() : Frontend("ilang", "read modules from ilang file") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -45,7 +45,7 @@ struct IlangFrontend : public Frontend { | ||||||
| 		log("representation of a design in yosys's internal format.)\n"); | 		log("representation of a design in yosys's internal format.)\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::istream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::istream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log_header(design, "Executing ILANG frontend.\n"); | 		log_header(design, "Executing ILANG frontend.\n"); | ||||||
| 		extra_args(f, filename, args, 1); | 		extra_args(f, filename, args, 1); | ||||||
|  |  | ||||||
|  | @ -494,7 +494,7 @@ void json_import(Design *design, string &modname, JsonNode *node) | ||||||
| 
 | 
 | ||||||
| struct JsonFrontend : public Frontend { | struct JsonFrontend : public Frontend { | ||||||
| 	JsonFrontend() : Frontend("json", "read JSON file") { } | 	JsonFrontend() : Frontend("json", "read JSON file") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -504,7 +504,7 @@ struct JsonFrontend : public Frontend { | ||||||
| 		log("for a description of the file format.\n"); | 		log("for a description of the file format.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::istream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::istream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log_header(design, "Executing JSON frontend.\n"); | 		log_header(design, "Executing JSON frontend.\n"); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -452,7 +452,7 @@ void parse_type_map(std::map<std::string, std::tuple<int, int, bool>> &type_map, | ||||||
| 
 | 
 | ||||||
| struct LibertyFrontend : public Frontend { | struct LibertyFrontend : public Frontend { | ||||||
| 	LibertyFrontend() : Frontend("liberty", "read cells from liberty file") { } | 	LibertyFrontend() : Frontend("liberty", "read cells from liberty file") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -485,7 +485,7 @@ struct LibertyFrontend : public Frontend { | ||||||
| 		log("        set the specified attribute (to the value 1) on all loaded modules\n"); | 		log("        set the specified attribute (to the value 1) on all loaded modules\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::istream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::istream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		bool flag_lib = false; | 		bool flag_lib = false; | ||||||
| 		bool flag_nooverwrite = false; | 		bool flag_nooverwrite = false; | ||||||
|  |  | ||||||
|  | @ -1685,7 +1685,7 @@ bool check_noverific_env() | ||||||
| 
 | 
 | ||||||
| struct VerificPass : public Pass { | struct VerificPass : public Pass { | ||||||
| 	VerificPass() : Pass("verific", "load Verilog and VHDL designs using Verific") { } | 	VerificPass() : Pass("verific", "load Verilog and VHDL designs using Verific") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -1784,7 +1784,7 @@ struct VerificPass : public Pass { | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| #ifdef YOSYS_ENABLE_VERIFIC | #ifdef YOSYS_ENABLE_VERIFIC | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		if (check_noverific_env()) | 		if (check_noverific_env()) | ||||||
| 			log_cmd_error("This version of Yosys is built without Verific support.\n"); | 			log_cmd_error("This version of Yosys is built without Verific support.\n"); | ||||||
|  | @ -2162,7 +2162,7 @@ struct VerificPass : public Pass { | ||||||
| 
 | 
 | ||||||
| 	} | 	} | ||||||
| #else /* YOSYS_ENABLE_VERIFIC */ | #else /* YOSYS_ENABLE_VERIFIC */ | ||||||
| 	virtual void execute(std::vector<std::string>, RTLIL::Design *) { | 	void execute(std::vector<std::string>, RTLIL::Design *) YS_OVERRIDE { | ||||||
| 		log_cmd_error("This version of Yosys is built without Verific support.\n"); | 		log_cmd_error("This version of Yosys is built without Verific support.\n"); | ||||||
| 	} | 	} | ||||||
| #endif | #endif | ||||||
|  | @ -2170,7 +2170,7 @@ struct VerificPass : public Pass { | ||||||
| 
 | 
 | ||||||
| struct ReadPass : public Pass { | struct ReadPass : public Pass { | ||||||
| 	ReadPass() : Pass("read", "load HDL designs") { } | 	ReadPass() : Pass("read", "load HDL designs") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -2203,7 +2203,7 @@ struct ReadPass : public Pass { | ||||||
| 		log("Add directory to global Verilog/SystemVerilog include directories.\n"); | 		log("Add directory to global Verilog/SystemVerilog include directories.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		if (args.size() < 2) | 		if (args.size() < 2) | ||||||
| 			log_cmd_error("Missing mode parameter.\n"); | 			log_cmd_error("Missing mode parameter.\n"); | ||||||
|  |  | ||||||
|  | @ -49,7 +49,7 @@ static void error_on_dpi_function(AST::AstNode *node) | ||||||
| 
 | 
 | ||||||
| struct VerilogFrontend : public Frontend { | struct VerilogFrontend : public Frontend { | ||||||
| 	VerilogFrontend() : Frontend("verilog", "read modules from Verilog file") { } | 	VerilogFrontend() : Frontend("verilog", "read modules from Verilog file") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -180,7 +180,7 @@ struct VerilogFrontend : public Frontend { | ||||||
| 		log("supported by the Yosys Verilog front-end.\n"); | 		log("supported by the Yosys Verilog front-end.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::istream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::istream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		bool flag_dump_ast1 = false; | 		bool flag_dump_ast1 = false; | ||||||
| 		bool flag_dump_ast2 = false; | 		bool flag_dump_ast2 = false; | ||||||
|  | @ -395,7 +395,7 @@ struct VerilogFrontend : public Frontend { | ||||||
| 
 | 
 | ||||||
| struct VerilogDefaults : public Pass { | struct VerilogDefaults : public Pass { | ||||||
| 	VerilogDefaults() : Pass("verilog_defaults", "set default options for read_verilog") { } | 	VerilogDefaults() : Pass("verilog_defaults", "set default options for read_verilog") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -416,7 +416,7 @@ struct VerilogDefaults : public Pass { | ||||||
| 		log("not imply -clear.\n"); | 		log("not imply -clear.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design*) | 	void execute(std::vector<std::string> args, RTLIL::Design*) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		if (args.size() < 2) | 		if (args.size() < 2) | ||||||
| 			cmd_error(args, 1, "Missing argument."); | 			cmd_error(args, 1, "Missing argument."); | ||||||
|  | @ -453,7 +453,7 @@ struct VerilogDefaults : public Pass { | ||||||
| 
 | 
 | ||||||
| struct VerilogDefines : public Pass { | struct VerilogDefines : public Pass { | ||||||
| 	VerilogDefines() : Pass("verilog_defines", "define and undefine verilog defines") { } | 	VerilogDefines() : Pass("verilog_defines", "define and undefine verilog defines") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -469,7 +469,7 @@ struct VerilogDefines : public Pass { | ||||||
| 		log("        undefine the preprocessor symbol 'name'\n"); | 		log("        undefine the preprocessor symbol 'name'\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		size_t argidx; | 		size_t argidx; | ||||||
| 		for (argidx = 1; argidx < args.size(); argidx++) { | 		for (argidx = 1; argidx < args.size(); argidx++) { | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| /*
 | /* -*- c++ -*-
 | ||||||
|  *  yosys -- Yosys Open SYnthesis Suite |  *  yosys -- Yosys Open SYnthesis Suite | ||||||
|  * |  * | ||||||
|  *  Copyright (C) 2012  Clifford Wolf <clifford@clifford.at> |  *  Copyright (C) 2012  Clifford Wolf <clifford@clifford.at> | ||||||
|  | @ -38,7 +38,7 @@ struct FwdCellEdgesDatabase : AbstractCellEdgesDatabase | ||||||
| 	dict<SigBit, pool<SigBit>> db; | 	dict<SigBit, pool<SigBit>> db; | ||||||
| 	FwdCellEdgesDatabase(SigMap &sigmap) : sigmap(sigmap) { } | 	FwdCellEdgesDatabase(SigMap &sigmap) : sigmap(sigmap) { } | ||||||
| 
 | 
 | ||||||
| 	virtual void add_edge(RTLIL::Cell *cell, RTLIL::IdString from_port, int from_bit, RTLIL::IdString to_port, int to_bit, int) override { | 	void add_edge(RTLIL::Cell *cell, RTLIL::IdString from_port, int from_bit, RTLIL::IdString to_port, int to_bit, int) YS_OVERRIDE { | ||||||
| 		SigBit from_sigbit = sigmap(cell->getPort(from_port)[from_bit]); | 		SigBit from_sigbit = sigmap(cell->getPort(from_port)[from_bit]); | ||||||
| 		SigBit to_sigbit = sigmap(cell->getPort(to_port)[to_bit]); | 		SigBit to_sigbit = sigmap(cell->getPort(to_port)[to_bit]); | ||||||
| 		db[from_sigbit].insert(to_sigbit); | 		db[from_sigbit].insert(to_sigbit); | ||||||
|  | @ -51,7 +51,7 @@ struct RevCellEdgesDatabase : AbstractCellEdgesDatabase | ||||||
| 	dict<SigBit, pool<SigBit>> db; | 	dict<SigBit, pool<SigBit>> db; | ||||||
| 	RevCellEdgesDatabase(SigMap &sigmap) : sigmap(sigmap) { } | 	RevCellEdgesDatabase(SigMap &sigmap) : sigmap(sigmap) { } | ||||||
| 
 | 
 | ||||||
| 	virtual void add_edge(RTLIL::Cell *cell, RTLIL::IdString from_port, int from_bit, RTLIL::IdString to_port, int to_bit, int) override { | 	void add_edge(RTLIL::Cell *cell, RTLIL::IdString from_port, int from_bit, RTLIL::IdString to_port, int to_bit, int) YS_OVERRIDE { | ||||||
| 		SigBit from_sigbit = sigmap(cell->getPort(from_port)[from_bit]); | 		SigBit from_sigbit = sigmap(cell->getPort(from_port)[from_bit]); | ||||||
| 		SigBit to_sigbit = sigmap(cell->getPort(to_port)[to_bit]); | 		SigBit to_sigbit = sigmap(cell->getPort(to_port)[to_bit]); | ||||||
| 		db[to_sigbit].insert(from_sigbit); | 		db[to_sigbit].insert(from_sigbit); | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| /*
 | /* -*- c++ -*-
 | ||||||
|  *  yosys -- Yosys Open SYnthesis Suite |  *  yosys -- Yosys Open SYnthesis Suite | ||||||
|  * |  * | ||||||
|  *  Copyright (C) 2012  Clifford Wolf <clifford@clifford.at> |  *  Copyright (C) 2012  Clifford Wolf <clifford@clifford.at> | ||||||
|  | @ -158,7 +158,7 @@ struct ModIndex : public RTLIL::Monitor | ||||||
| #endif | #endif | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	virtual void notify_connect(RTLIL::Cell *cell, const RTLIL::IdString &port, const RTLIL::SigSpec &old_sig, RTLIL::SigSpec &sig) YS_OVERRIDE | 	void notify_connect(RTLIL::Cell *cell, const RTLIL::IdString &port, const RTLIL::SigSpec &old_sig, RTLIL::SigSpec &sig) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log_assert(module == cell->module); | 		log_assert(module == cell->module); | ||||||
| 
 | 
 | ||||||
|  | @ -169,7 +169,7 @@ struct ModIndex : public RTLIL::Monitor | ||||||
| 		port_add(cell, port, sig); | 		port_add(cell, port, sig); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	virtual void notify_connect(RTLIL::Module *mod YS_ATTRIBUTE(unused), const RTLIL::SigSig &sigsig) YS_OVERRIDE | 	void notify_connect(RTLIL::Module *mod YS_ATTRIBUTE(unused), const RTLIL::SigSig &sigsig) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log_assert(module == mod); | 		log_assert(module == mod); | ||||||
| 
 | 
 | ||||||
|  | @ -214,13 +214,13 @@ struct ModIndex : public RTLIL::Monitor | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	virtual void notify_connect(RTLIL::Module *mod YS_ATTRIBUTE(unused), const std::vector<RTLIL::SigSig>&) YS_OVERRIDE | 	void notify_connect(RTLIL::Module *mod YS_ATTRIBUTE(unused), const std::vector<RTLIL::SigSig>&) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log_assert(module == mod); | 		log_assert(module == mod); | ||||||
| 		auto_reload_module = true; | 		auto_reload_module = true; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	virtual void notify_blackout(RTLIL::Module *mod YS_ATTRIBUTE(unused)) YS_OVERRIDE | 	void notify_blackout(RTLIL::Module *mod YS_ATTRIBUTE(unused)) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log_assert(module == mod); | 		log_assert(module == mod); | ||||||
| 		auto_reload_module = true; | 		auto_reload_module = true; | ||||||
|  |  | ||||||
|  | @ -615,7 +615,7 @@ static struct CellHelpMessages { | ||||||
| 
 | 
 | ||||||
| struct HelpPass : public Pass { | struct HelpPass : public Pass { | ||||||
| 	HelpPass() : Pass("help", "display help messages") { } | 	HelpPass() : Pass("help", "display help messages") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 		log("    help  ................  list all commands\n"); | 		log("    help  ................  list all commands\n"); | ||||||
|  | @ -684,7 +684,7 @@ struct HelpPass : public Pass { | ||||||
| 
 | 
 | ||||||
| 		fclose(f); | 		fclose(f); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design*) | 	void execute(std::vector<std::string> args, RTLIL::Design*) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		if (args.size() == 1) { | 		if (args.size() == 1) { | ||||||
| 			log("\n"); | 			log("\n"); | ||||||
|  | @ -768,7 +768,7 @@ struct HelpPass : public Pass { | ||||||
| 
 | 
 | ||||||
| struct EchoPass : public Pass { | struct EchoPass : public Pass { | ||||||
| 	EchoPass() : Pass("echo", "turning echoing back of commands on and off") { } | 	EchoPass() : Pass("echo", "turning echoing back of commands on and off") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 		log("    echo on\n"); | 		log("    echo on\n"); | ||||||
|  | @ -781,7 +781,7 @@ struct EchoPass : public Pass { | ||||||
| 		log("Do not print all commands to log before executing them. (default)\n"); | 		log("Do not print all commands to log before executing them. (default)\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design*) | 	void execute(std::vector<std::string> args, RTLIL::Design*) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		if (args.size() > 2) | 		if (args.size() > 2) | ||||||
| 			cmd_error(args, 2, "Unexpected argument."); | 			cmd_error(args, 2, "Unexpected argument."); | ||||||
|  | @ -806,10 +806,9 @@ struct MinisatSatSolver : public SatSolver { | ||||||
| 	MinisatSatSolver() : SatSolver("minisat") { | 	MinisatSatSolver() : SatSolver("minisat") { | ||||||
| 		yosys_satsolver = this; | 		yosys_satsolver = this; | ||||||
| 	} | 	} | ||||||
| 	virtual ezSAT *create() YS_OVERRIDE { | 	ezSAT *create() YS_OVERRIDE { | ||||||
| 		return new ezMiniSAT(); | 		return new ezMiniSAT(); | ||||||
| 	} | 	} | ||||||
| } MinisatSatSolver; | } MinisatSatSolver; | ||||||
| 
 | 
 | ||||||
| YOSYS_NAMESPACE_END | YOSYS_NAMESPACE_END | ||||||
| 
 |  | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| /*
 | /* -*- c++ -*-
 | ||||||
|  *  yosys -- Yosys Open SYnthesis Suite |  *  yosys -- Yosys Open SYnthesis Suite | ||||||
|  * |  * | ||||||
|  *  Copyright (C) 2012  Clifford Wolf <clifford@clifford.at> |  *  Copyright (C) 2012  Clifford Wolf <clifford@clifford.at> | ||||||
|  | @ -88,9 +88,9 @@ struct Frontend : Pass | ||||||
| 
 | 
 | ||||||
| 	std::string frontend_name; | 	std::string frontend_name; | ||||||
| 	Frontend(std::string name, std::string short_help = "** document me **"); | 	Frontend(std::string name, std::string short_help = "** document me **"); | ||||||
| 	virtual void run_register() YS_OVERRIDE; | 	void run_register() YS_OVERRIDE; | ||||||
| 	virtual ~Frontend(); | 	~Frontend() YS_OVERRIDE; | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE YS_FINAL; | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE YS_FINAL; | ||||||
| 	virtual void execute(std::istream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) = 0; | 	virtual void execute(std::istream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design *design) = 0; | ||||||
| 
 | 
 | ||||||
| 	static std::vector<std::string> next_args; | 	static std::vector<std::string> next_args; | ||||||
|  | @ -104,9 +104,9 @@ struct Backend : Pass | ||||||
| { | { | ||||||
| 	std::string backend_name; | 	std::string backend_name; | ||||||
| 	Backend(std::string name, std::string short_help = "** document me **"); | 	Backend(std::string name, std::string short_help = "** document me **"); | ||||||
| 	virtual void run_register() YS_OVERRIDE; | 	void run_register() YS_OVERRIDE; | ||||||
| 	virtual ~Backend(); | 	~Backend() YS_OVERRIDE; | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE YS_FINAL; | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE YS_FINAL; | ||||||
| 	virtual void execute(std::ostream *&f, std::string filename,  std::vector<std::string> args, RTLIL::Design *design) = 0; | 	virtual void execute(std::ostream *&f, std::string filename,  std::vector<std::string> args, RTLIL::Design *design) = 0; | ||||||
| 
 | 
 | ||||||
| 	void extra_args(std::ostream *&f, std::string &filename, std::vector<std::string> args, size_t argidx); | 	void extra_args(std::ostream *&f, std::string &filename, std::vector<std::string> args, size_t argidx); | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| /*
 | /* -*- c++ -*-
 | ||||||
|  *  yosys -- Yosys Open SYnthesis Suite |  *  yosys -- Yosys Open SYnthesis Suite | ||||||
|  * |  * | ||||||
|  *  Copyright (C) 2012  Clifford Wolf <clifford@clifford.at> |  *  Copyright (C) 2012  Clifford Wolf <clifford@clifford.at> | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| /*
 | /* -*- c++ -*-
 | ||||||
|  *  yosys -- Yosys Open SYnthesis Suite |  *  yosys -- Yosys Open SYnthesis Suite | ||||||
|  * |  * | ||||||
|  *  Copyright (C) 2012  Clifford Wolf <clifford@clifford.at> |  *  Copyright (C) 2012  Clifford Wolf <clifford@clifford.at> | ||||||
|  |  | ||||||
|  | @ -636,7 +636,7 @@ extern Tcl_Interp *yosys_get_tcl_interp() | ||||||
| 
 | 
 | ||||||
| struct TclPass : public Pass { | struct TclPass : public Pass { | ||||||
| 	TclPass() : Pass("tcl", "execute a TCL script file") { } | 	TclPass() : Pass("tcl", "execute a TCL script file") { } | ||||||
| 	virtual void help() { | 	void help() YS_OVERRIDE { | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 		log("    tcl <filename>\n"); | 		log("    tcl <filename>\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -649,7 +649,7 @@ struct TclPass : public Pass { | ||||||
| 		log("in order to avoid a name collision with the built in commands.\n"); | 		log("in order to avoid a name collision with the built in commands.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) { | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE { | ||||||
| 		if (args.size() < 2) | 		if (args.size() < 2) | ||||||
| 			log_cmd_error("Missing script file.\n"); | 			log_cmd_error("Missing script file.\n"); | ||||||
| 		if (args.size() > 2) | 		if (args.size() > 2) | ||||||
|  | @ -1111,7 +1111,7 @@ void shell(RTLIL::Design *design) | ||||||
| 
 | 
 | ||||||
| struct ShellPass : public Pass { | struct ShellPass : public Pass { | ||||||
| 	ShellPass() : Pass("shell", "enter interactive command mode") { } | 	ShellPass() : Pass("shell", "enter interactive command mode") { } | ||||||
| 	virtual void help() { | 	void help() YS_OVERRIDE { | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 		log("    shell\n"); | 		log("    shell\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -1143,7 +1143,7 @@ struct ShellPass : public Pass { | ||||||
| 		log("Press Ctrl-D or type 'exit' to leave the interactive shell.\n"); | 		log("Press Ctrl-D or type 'exit' to leave the interactive shell.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) { | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE { | ||||||
| 		extra_args(args, 1, design, false); | 		extra_args(args, 1, design, false); | ||||||
| 		shell(design); | 		shell(design); | ||||||
| 	} | 	} | ||||||
|  | @ -1152,7 +1152,7 @@ struct ShellPass : public Pass { | ||||||
| #if defined(YOSYS_ENABLE_READLINE) || defined(YOSYS_ENABLE_EDITLINE) | #if defined(YOSYS_ENABLE_READLINE) || defined(YOSYS_ENABLE_EDITLINE) | ||||||
| struct HistoryPass : public Pass { | struct HistoryPass : public Pass { | ||||||
| 	HistoryPass() : Pass("history", "show last interactive commands") { } | 	HistoryPass() : Pass("history", "show last interactive commands") { } | ||||||
| 	virtual void help() { | 	void help() YS_OVERRIDE { | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 		log("    history\n"); | 		log("    history\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -1161,7 +1161,7 @@ struct HistoryPass : public Pass { | ||||||
| 		log("from executed scripts.\n"); | 		log("from executed scripts.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) { | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE { | ||||||
| 		extra_args(args, 1, design, false); | 		extra_args(args, 1, design, false); | ||||||
| #ifdef YOSYS_ENABLE_READLINE | #ifdef YOSYS_ENABLE_READLINE | ||||||
| 		for(HIST_ENTRY **list = history_list(); *list != NULL; list++) | 		for(HIST_ENTRY **list = history_list(); *list != NULL; list++) | ||||||
|  | @ -1176,7 +1176,7 @@ struct HistoryPass : public Pass { | ||||||
| 
 | 
 | ||||||
| struct ScriptCmdPass : public Pass { | struct ScriptCmdPass : public Pass { | ||||||
| 	ScriptCmdPass() : Pass("script", "execute commands from script file") { } | 	ScriptCmdPass() : Pass("script", "execute commands from script file") { } | ||||||
| 	virtual void help() { | 	void help() YS_OVERRIDE { | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 		log("    script <filename> [<from_label>:<to_label>]\n"); | 		log("    script <filename> [<from_label>:<to_label>]\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -1191,7 +1191,7 @@ struct ScriptCmdPass : public Pass { | ||||||
| 		log("marked with that label (until the next label) is executed.\n"); | 		log("marked with that label (until the next label) is executed.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) { | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE { | ||||||
| 		if (args.size() < 2) | 		if (args.size() < 2) | ||||||
| 			log_cmd_error("Missing script file.\n"); | 			log_cmd_error("Missing script file.\n"); | ||||||
| 		else if (args.size() == 2) | 		else if (args.size() == 2) | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| /*
 | /* -*- c++ -*-
 | ||||||
|  *  yosys -- Yosys Open SYnthesis Suite |  *  yosys -- Yosys Open SYnthesis Suite | ||||||
|  * |  * | ||||||
|  *  Copyright (C) 2012  Clifford Wolf <clifford@clifford.at> |  *  Copyright (C) 2012  Clifford Wolf <clifford@clifford.at> | ||||||
|  |  | ||||||
|  | @ -98,7 +98,7 @@ static void find_stub_nets(RTLIL::Design *design, RTLIL::Module *module, bool re | ||||||
| // each pass contains a singleton object that is derived from Pass
 | // each pass contains a singleton object that is derived from Pass
 | ||||||
| struct StubnetsPass : public Pass { | struct StubnetsPass : public Pass { | ||||||
| 	StubnetsPass() : Pass("stubnets") { } | 	StubnetsPass() : Pass("stubnets") { } | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		// variables to mirror information from passed options
 | 		// variables to mirror information from passed options
 | ||||||
| 		bool report_bits = 0; | 		bool report_bits = 0; | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ PRIVATE_NAMESPACE_BEGIN | ||||||
| 
 | 
 | ||||||
| struct MyPass : public Pass { | struct MyPass : public Pass { | ||||||
|     MyPass() : Pass("my_cmd", "just a simple test") { } |     MyPass() : Pass("my_cmd", "just a simple test") { } | ||||||
|     virtual void execute(std::vector<std::string> args, RTLIL::Design *design) |     void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
|     { |     { | ||||||
|         log("Arguments to my_cmd:\n"); |         log("Arguments to my_cmd:\n"); | ||||||
|         for (auto &arg : args) |         for (auto &arg : args) | ||||||
|  | @ -22,7 +22,7 @@ struct MyPass : public Pass { | ||||||
| 
 | 
 | ||||||
| struct Test1Pass : public Pass { | struct Test1Pass : public Pass { | ||||||
|     Test1Pass() : Pass("test1", "creating the absval module") { } |     Test1Pass() : Pass("test1", "creating the absval module") { } | ||||||
|     virtual void execute(std::vector<std::string>, RTLIL::Design *design) |     void execute(std::vector<std::string>, RTLIL::Design *design) YS_OVERRIDE | ||||||
|     { |     { | ||||||
|         if (design->has("\\absval") != 0) |         if (design->has("\\absval") != 0) | ||||||
|             log_error("A module with the name absval already exists!\n"); |             log_error("A module with the name absval already exists!\n"); | ||||||
|  | @ -49,7 +49,7 @@ struct Test1Pass : public Pass { | ||||||
| 
 | 
 | ||||||
| struct Test2Pass : public Pass { | struct Test2Pass : public Pass { | ||||||
|     Test2Pass() : Pass("test2", "demonstrating sigmap on test module") { } |     Test2Pass() : Pass("test2", "demonstrating sigmap on test module") { } | ||||||
|     virtual void execute(std::vector<std::string>, RTLIL::Design *design) |     void execute(std::vector<std::string>, RTLIL::Design *design) YS_OVERRIDE | ||||||
|     { |     { | ||||||
|         if (design->selection_stack.back().empty()) |         if (design->selection_stack.back().empty()) | ||||||
|             log_cmd_error("This command can't operator on an empty selection!\n"); |             log_cmd_error("This command can't operator on an empty selection!\n"); | ||||||
|  |  | ||||||
|  | @ -83,7 +83,7 @@ static void add_wire(RTLIL::Design *design, RTLIL::Module *module, std::string n | ||||||
| 
 | 
 | ||||||
| struct AddPass : public Pass { | struct AddPass : public Pass { | ||||||
| 	AddPass() : Pass("add", "add objects to the design") { } | 	AddPass() : Pass("add", "add objects to the design") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -106,7 +106,7 @@ struct AddPass : public Pass { | ||||||
| 		log("selected modules.\n"); | 		log("selected modules.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		std::string command; | 		std::string command; | ||||||
| 		std::string arg_name; | 		std::string arg_name; | ||||||
|  |  | ||||||
|  | @ -24,7 +24,7 @@ PRIVATE_NAMESPACE_BEGIN | ||||||
| 
 | 
 | ||||||
| struct BlackboxPass : public Pass { | struct BlackboxPass : public Pass { | ||||||
| 	BlackboxPass() : Pass("blackbox", "change type of cells in the design") { } | 	BlackboxPass() : Pass("blackbox", "change type of cells in the design") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -34,7 +34,7 @@ struct BlackboxPass : public Pass { | ||||||
| 		log("module attribute).\n"); | 		log("module attribute).\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		size_t argidx; | 		size_t argidx; | ||||||
| 		for (argidx = 1; argidx < args.size(); argidx++) | 		for (argidx = 1; argidx < args.size(); argidx++) | ||||||
|  |  | ||||||
|  | @ -27,7 +27,7 @@ PRIVATE_NAMESPACE_BEGIN | ||||||
| 
 | 
 | ||||||
| struct CheckPass : public Pass { | struct CheckPass : public Pass { | ||||||
| 	CheckPass() : Pass("check", "check for obvious problems in the design") { } | 	CheckPass() : Pass("check", "check for obvious problems in the design") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -51,7 +51,7 @@ struct CheckPass : public Pass { | ||||||
| 		log("problems are found in the current design.\n"); | 		log("problems are found in the current design.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		int counter = 0; | 		int counter = 0; | ||||||
| 		bool noinit = false; | 		bool noinit = false; | ||||||
|  |  | ||||||
|  | @ -25,7 +25,7 @@ PRIVATE_NAMESPACE_BEGIN | ||||||
| 
 | 
 | ||||||
| struct ChformalPass : public Pass { | struct ChformalPass : public Pass { | ||||||
| 	ChformalPass() : Pass("chformal", "change formal constraints of the design") { } | 	ChformalPass() : Pass("chformal", "change formal constraints of the design") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -62,7 +62,7 @@ struct ChformalPass : public Pass { | ||||||
| 		log("        change the roles of cells as indicated. this options can be combined\n"); | 		log("        change the roles of cells as indicated. this options can be combined\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		bool assert2assume = false; | 		bool assert2assume = false; | ||||||
| 		bool assume2assert = false; | 		bool assume2assert = false; | ||||||
|  |  | ||||||
|  | @ -24,7 +24,7 @@ PRIVATE_NAMESPACE_BEGIN | ||||||
| 
 | 
 | ||||||
| struct ChtypePass : public Pass { | struct ChtypePass : public Pass { | ||||||
| 	ChtypePass() : Pass("chtype", "change type of cells in the design") { } | 	ChtypePass() : Pass("chtype", "change type of cells in the design") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -40,7 +40,7 @@ struct ChtypePass : public Pass { | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		IdString set_type; | 		IdString set_type; | ||||||
| 		dict<IdString, IdString> map_types; | 		dict<IdString, IdString> map_types; | ||||||
|  |  | ||||||
|  | @ -43,7 +43,7 @@ static void unset_drivers(RTLIL::Design *design, RTLIL::Module *module, SigMap & | ||||||
| 
 | 
 | ||||||
| struct ConnectPass : public Pass { | struct ConnectPass : public Pass { | ||||||
| 	ConnectPass() : Pass("connect", "create or remove connections") { } | 	ConnectPass() : Pass("connect", "create or remove connections") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -75,7 +75,7 @@ struct ConnectPass : public Pass { | ||||||
| 		log("This command does not operate on module with processes.\n"); | 		log("This command does not operate on module with processes.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		RTLIL::Module *module = NULL; | 		RTLIL::Module *module = NULL; | ||||||
| 		for (auto &it : design->modules_) { | 		for (auto &it : design->modules_) { | ||||||
|  |  | ||||||
|  | @ -150,7 +150,7 @@ struct ConnwrappersWorker | ||||||
| 
 | 
 | ||||||
| struct ConnwrappersPass : public Pass { | struct ConnwrappersPass : public Pass { | ||||||
| 	ConnwrappersPass() : Pass("connwrappers", "match width of input-output port pairs") { } | 	ConnwrappersPass() : Pass("connwrappers", "match width of input-output port pairs") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -172,7 +172,7 @@ struct ConnwrappersPass : public Pass { | ||||||
| 		log("The options -signed, -unsigned, and -port can be specified multiple times.\n"); | 		log("The options -signed, -unsigned, and -port can be specified multiple times.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		ConnwrappersWorker worker; | 		ConnwrappersWorker worker; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -26,7 +26,7 @@ PRIVATE_NAMESPACE_BEGIN | ||||||
| 
 | 
 | ||||||
| struct CopyPass : public Pass { | struct CopyPass : public Pass { | ||||||
| 	CopyPass() : Pass("copy", "copy modules in the design") { } | 	CopyPass() : Pass("copy", "copy modules in the design") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -36,7 +36,7 @@ struct CopyPass : public Pass { | ||||||
| 		log("by this command.\n"); | 		log("by this command.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		if (args.size() != 3) | 		if (args.size() != 3) | ||||||
| 			log_cmd_error("Invalid number of arguments!\n"); | 			log_cmd_error("Invalid number of arguments!\n"); | ||||||
|  |  | ||||||
|  | @ -35,7 +35,7 @@ PRIVATE_NAMESPACE_BEGIN | ||||||
| 
 | 
 | ||||||
| struct CoverPass : public Pass { | struct CoverPass : public Pass { | ||||||
| 	CoverPass() : Pass("cover", "print code coverage counters") { } | 	CoverPass() : Pass("cover", "print code coverage counters") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -83,7 +83,7 @@ struct CoverPass : public Pass { | ||||||
| 		log("Coverage counters are only available in Yosys for Linux.\n"); | 		log("Coverage counters are only available in Yosys for Linux.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		std::vector<FILE*> out_files; | 		std::vector<FILE*> out_files; | ||||||
| 		std::vector<std::string> patterns; | 		std::vector<std::string> patterns; | ||||||
|  |  | ||||||
|  | @ -24,7 +24,7 @@ PRIVATE_NAMESPACE_BEGIN | ||||||
| 
 | 
 | ||||||
| struct DeletePass : public Pass { | struct DeletePass : public Pass { | ||||||
| 	DeletePass() : Pass("delete", "delete objects in the design") { } | 	DeletePass() : Pass("delete", "delete objects in the design") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -40,7 +40,7 @@ struct DeletePass : public Pass { | ||||||
| 		log("selected wires, thus 'deleting' module ports.\n"); | 		log("selected wires, thus 'deleting' module ports.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		bool flag_input = false; | 		bool flag_input = false; | ||||||
| 		bool flag_output = false; | 		bool flag_output = false; | ||||||
|  |  | ||||||
|  | @ -27,7 +27,7 @@ std::vector<RTLIL::Design*> pushed_designs; | ||||||
| 
 | 
 | ||||||
| struct DesignPass : public Pass { | struct DesignPass : public Pass { | ||||||
| 	DesignPass() : Pass("design", "save, restore and reset current design") { } | 	DesignPass() : Pass("design", "save, restore and reset current design") { } | ||||||
| 	virtual ~DesignPass() { | 	~DesignPass() YS_OVERRIDE { | ||||||
| 		for (auto &it : saved_designs) | 		for (auto &it : saved_designs) | ||||||
| 			delete it.second; | 			delete it.second; | ||||||
| 		saved_designs.clear(); | 		saved_designs.clear(); | ||||||
|  | @ -35,7 +35,7 @@ struct DesignPass : public Pass { | ||||||
| 			delete it; | 			delete it; | ||||||
| 		pushed_designs.clear(); | 		pushed_designs.clear(); | ||||||
| 	} | 	} | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -94,7 +94,7 @@ struct DesignPass : public Pass { | ||||||
| 		log("between calls to 'read_verilog'. This command resets this memory.\n"); | 		log("between calls to 'read_verilog'. This command resets this memory.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		bool got_mode = false; | 		bool got_mode = false; | ||||||
| 		bool reset_mode = false; | 		bool reset_mode = false; | ||||||
|  |  | ||||||
|  | @ -25,7 +25,7 @@ PRIVATE_NAMESPACE_BEGIN | ||||||
| 
 | 
 | ||||||
| struct EdgetypePass : public Pass { | struct EdgetypePass : public Pass { | ||||||
| 	EdgetypePass() : Pass("edgetypes", "list all types of edges in selection") { } | 	EdgetypePass() : Pass("edgetypes", "list all types of edges in selection") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -35,7 +35,7 @@ struct EdgetypePass : public Pass { | ||||||
| 		log("is a 4-tuple of source and sink cell type and port name.\n"); | 		log("is a 4-tuple of source and sink cell type and port name.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		size_t argidx; | 		size_t argidx; | ||||||
| 		for (argidx = 1; argidx < args.size(); argidx++) { | 		for (argidx = 1; argidx < args.size(); argidx++) { | ||||||
|  |  | ||||||
|  | @ -27,7 +27,7 @@ PRIVATE_NAMESPACE_BEGIN | ||||||
| 
 | 
 | ||||||
| struct LogPass : public Pass { | struct LogPass : public Pass { | ||||||
| 	LogPass() : Pass("log", "print text and log files") { } | 	LogPass() : Pass("log", "print text and log files") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -52,7 +52,7 @@ struct LogPass : public Pass { | ||||||
| 		log("        do not append a newline\n"); | 		log("        do not append a newline\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design*) | 	void execute(std::vector<std::string> args, RTLIL::Design*) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		size_t argidx; | 		size_t argidx; | ||||||
| 		bool to_stdout = false; | 		bool to_stdout = false; | ||||||
|  |  | ||||||
|  | @ -141,7 +141,7 @@ struct LtpWorker | ||||||
| 
 | 
 | ||||||
| struct LtpPass : public Pass { | struct LtpPass : public Pass { | ||||||
| 	LtpPass() : Pass("ltp", "print longest topological path") { } | 	LtpPass() : Pass("ltp", "print longest topological path") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -154,7 +154,7 @@ struct LtpPass : public Pass { | ||||||
| 		log("        automatically exclude FF cell types\n"); | 		log("        automatically exclude FF cell types\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		bool noff = false; | 		bool noff = false; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -58,7 +58,7 @@ void load_plugin(std::string, std::vector<std::string>) | ||||||
| 
 | 
 | ||||||
| struct PluginPass : public Pass { | struct PluginPass : public Pass { | ||||||
| 	PluginPass() : Pass("plugin", "load and list loaded plugins") { } | 	PluginPass() : Pass("plugin", "load and list loaded plugins") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -76,7 +76,7 @@ struct PluginPass : public Pass { | ||||||
| 		log("        List loaded plugins\n"); | 		log("        List loaded plugins\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		std::string plugin_filename; | 		std::string plugin_filename; | ||||||
| 		std::vector<std::string> plugin_aliases; | 		std::vector<std::string> plugin_aliases; | ||||||
|  |  | ||||||
|  | @ -778,7 +778,7 @@ struct QwpWorker | ||||||
| 
 | 
 | ||||||
| struct QwpPass : public Pass { | struct QwpPass : public Pass { | ||||||
| 	QwpPass() : Pass("qwp", "quadratic wirelength placer") { } | 	QwpPass() : Pass("qwp", "quadratic wirelength placer") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -808,7 +808,7 @@ struct QwpPass : public Pass { | ||||||
| 		log("dense matrix operations. It is only a toy-placer for small circuits.\n"); | 		log("dense matrix operations. It is only a toy-placer for small circuits.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		QwpConfig config; | 		QwpConfig config; | ||||||
| 		xorshift32_state = 123456789; | 		xorshift32_state = 123456789; | ||||||
|  |  | ||||||
|  | @ -54,7 +54,7 @@ static void rename_in_module(RTLIL::Module *module, std::string from_name, std:: | ||||||
| 
 | 
 | ||||||
| struct RenamePass : public Pass { | struct RenamePass : public Pass { | ||||||
| 	RenamePass() : Pass("rename", "rename object in the design") { } | 	RenamePass() : Pass("rename", "rename object in the design") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -81,7 +81,7 @@ struct RenamePass : public Pass { | ||||||
| 		log("Rename top module.\n"); | 		log("Rename top module.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		std::string pattern_prefix = "_", pattern_suffix = "_"; | 		std::string pattern_prefix = "_", pattern_suffix = "_"; | ||||||
| 		bool flag_enumerate = false; | 		bool flag_enumerate = false; | ||||||
|  |  | ||||||
|  | @ -27,7 +27,7 @@ PRIVATE_NAMESPACE_BEGIN | ||||||
| 
 | 
 | ||||||
| struct ScatterPass : public Pass { | struct ScatterPass : public Pass { | ||||||
| 	ScatterPass() : Pass("scatter", "add additional intermediate nets") { } | 	ScatterPass() : Pass("scatter", "add additional intermediate nets") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -41,7 +41,7 @@ struct ScatterPass : public Pass { | ||||||
| 		log("Use the opt_clean command to get rid of the additional nets.\n"); | 		log("Use the opt_clean command to get rid of the additional nets.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		CellTypes ct(design); | 		CellTypes ct(design); | ||||||
| 		extra_args(args, 1, design); | 		extra_args(args, 1, design); | ||||||
|  |  | ||||||
|  | @ -218,7 +218,7 @@ struct SccWorker | ||||||
| 
 | 
 | ||||||
| struct SccPass : public Pass { | struct SccPass : public Pass { | ||||||
| 	SccPass() : Pass("scc", "detect strongly connected components (logic loops)") { } | 	SccPass() : Pass("scc", "detect strongly connected components (logic loops)") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -255,7 +255,7 @@ struct SccPass : public Pass { | ||||||
| 		log("        that are part of a found logic loop\n"); | 		log("        that are part of a found logic loop\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		std::map<std::string, std::string> setAttr; | 		std::map<std::string, std::string> setAttr; | ||||||
| 		bool allCellTypes = false; | 		bool allCellTypes = false; | ||||||
|  |  | ||||||
|  | @ -950,7 +950,7 @@ PRIVATE_NAMESPACE_BEGIN | ||||||
| 
 | 
 | ||||||
| struct SelectPass : public Pass { | struct SelectPass : public Pass { | ||||||
| 	SelectPass() : Pass("select", "modify and view the list of selected objects") { } | 	SelectPass() : Pass("select", "modify and view the list of selected objects") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -964,7 +964,7 @@ struct SelectPass : public Pass { | ||||||
| 		log("list of selected objects.\n"); | 		log("list of selected objects.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 		log("Note that many commands support an optional [selection] argument that can be\n"); | 		log("Note that many commands support an optional [selection] argument that can be\n"); | ||||||
| 		log("used to override the global selection for the command. The syntax of this\n"); | 		log("used to YS_OVERRIDE the global selection for the command. The syntax of this\n"); | ||||||
| 		log("optional argument is identical to the syntax of the <selection> argument\n"); | 		log("optional argument is identical to the syntax of the <selection> argument\n"); | ||||||
| 		log("described here.\n"); | 		log("described here.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -1167,7 +1167,7 @@ struct SelectPass : public Pass { | ||||||
| 		log("    select */t:SWITCH %%x:+[GATE] */t:SWITCH %%d\n"); | 		log("    select */t:SWITCH %%x:+[GATE] */t:SWITCH %%d\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		bool add_mode = false; | 		bool add_mode = false; | ||||||
| 		bool del_mode = false; | 		bool del_mode = false; | ||||||
|  | @ -1470,7 +1470,7 @@ struct SelectPass : public Pass { | ||||||
| 
 | 
 | ||||||
| struct CdPass : public Pass { | struct CdPass : public Pass { | ||||||
| 	CdPass() : Pass("cd", "a shortcut for 'select -module <name>'") { } | 	CdPass() : Pass("cd", "a shortcut for 'select -module <name>'") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -1496,7 +1496,7 @@ struct CdPass : public Pass { | ||||||
| 		log("This is just a shortcut for 'select -clear'.\n"); | 		log("This is just a shortcut for 'select -clear'.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		if (args.size() != 1 && args.size() != 2) | 		if (args.size() != 1 && args.size() != 2) | ||||||
| 			log_cmd_error("Invalid number of arguments.\n"); | 			log_cmd_error("Invalid number of arguments.\n"); | ||||||
|  | @ -1578,7 +1578,7 @@ static void log_matches(const char *title, Module *module, T list) | ||||||
| 
 | 
 | ||||||
| struct LsPass : public Pass { | struct LsPass : public Pass { | ||||||
| 	LsPass() : Pass("ls", "list modules or objects in modules") { } | 	LsPass() : Pass("ls", "list modules or objects in modules") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -1589,7 +1589,7 @@ struct LsPass : public Pass { | ||||||
| 		log("When an active module is selected, this prints a list of objects in the module.\n"); | 		log("When an active module is selected, this prints a list of objects in the module.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		size_t argidx = 1; | 		size_t argidx = 1; | ||||||
| 		extra_args(args, argidx, design); | 		extra_args(args, argidx, design); | ||||||
|  |  | ||||||
|  | @ -56,7 +56,7 @@ static void do_setunset(dict<RTLIL::IdString, RTLIL::Const> &attrs, const std::v | ||||||
| 
 | 
 | ||||||
| struct SetattrPass : public Pass { | struct SetattrPass : public Pass { | ||||||
| 	SetattrPass() : Pass("setattr", "set/unset attributes on objects") { } | 	SetattrPass() : Pass("setattr", "set/unset attributes on objects") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -69,7 +69,7 @@ struct SetattrPass : public Pass { | ||||||
| 		log("instead of objects within modules.\n"); | 		log("instead of objects within modules.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		std::vector<setunset_t> setunset_list; | 		std::vector<setunset_t> setunset_list; | ||||||
| 		bool flag_mod = false; | 		bool flag_mod = false; | ||||||
|  | @ -130,7 +130,7 @@ struct SetattrPass : public Pass { | ||||||
| 
 | 
 | ||||||
| struct SetparamPass : public Pass { | struct SetparamPass : public Pass { | ||||||
| 	SetparamPass() : Pass("setparam", "set/unset parameters on objects") { } | 	SetparamPass() : Pass("setparam", "set/unset parameters on objects") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -142,7 +142,7 @@ struct SetparamPass : public Pass { | ||||||
| 		log("The -type option can be used to change the cell type of the selected cells.\n"); | 		log("The -type option can be used to change the cell type of the selected cells.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		vector<setunset_t> setunset_list; | 		vector<setunset_t> setunset_list; | ||||||
| 		string new_cell_type; | 		string new_cell_type; | ||||||
|  | @ -188,7 +188,7 @@ struct SetparamPass : public Pass { | ||||||
| 
 | 
 | ||||||
| struct ChparamPass : public Pass { | struct ChparamPass : public Pass { | ||||||
| 	ChparamPass() : Pass("chparam", "re-evaluate modules with new parameters") { } | 	ChparamPass() : Pass("chparam", "re-evaluate modules with new parameters") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -203,7 +203,7 @@ struct ChparamPass : public Pass { | ||||||
| 		log("List the available parameters of the selected modules.\n"); | 		log("List the available parameters of the selected modules.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		std::vector<setunset_t> setunset_list; | 		std::vector<setunset_t> setunset_list; | ||||||
| 		dict<RTLIL::IdString, RTLIL::Const> new_parameters; | 		dict<RTLIL::IdString, RTLIL::Const> new_parameters; | ||||||
|  |  | ||||||
|  | @ -79,7 +79,7 @@ struct SetundefWorker | ||||||
| 
 | 
 | ||||||
| struct SetundefPass : public Pass { | struct SetundefPass : public Pass { | ||||||
| 	SetundefPass() : Pass("setundef", "replace undef values with defined constants") { } | 	SetundefPass() : Pass("setundef", "replace undef values with defined constants") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -113,7 +113,7 @@ struct SetundefPass : public Pass { | ||||||
| 		log("        also create/update init values for flip-flops\n"); | 		log("        also create/update init values for flip-flops\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		bool got_value = false; | 		bool got_value = false; | ||||||
| 		bool undriven_mode = false; | 		bool undriven_mode = false; | ||||||
|  |  | ||||||
|  | @ -573,7 +573,7 @@ struct ShowWorker | ||||||
| 
 | 
 | ||||||
| struct ShowPass : public Pass { | struct ShowPass : public Pass { | ||||||
| 	ShowPass() : Pass("show", "generate schematics using graphviz") { } | 	ShowPass() : Pass("show", "generate schematics using graphviz") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -655,7 +655,7 @@ struct ShowPass : public Pass { | ||||||
| 		log("the 'show' command is executed.\n"); | 		log("the 'show' command is executed.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log_header(design, "Generating Graphviz representation of design.\n"); | 		log_header(design, "Generating Graphviz representation of design.\n"); | ||||||
| 		log_push(); | 		log_push(); | ||||||
|  |  | ||||||
|  | @ -247,7 +247,7 @@ struct SpliceWorker | ||||||
| 
 | 
 | ||||||
| struct SplicePass : public Pass { | struct SplicePass : public Pass { | ||||||
| 	SplicePass() : Pass("splice", "create explicit splicing cells") { } | 	SplicePass() : Pass("splice", "create explicit splicing cells") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -288,7 +288,7 @@ struct SplicePass : public Pass { | ||||||
| 		log("by selected wires are rewired.\n"); | 		log("by selected wires are rewired.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		bool sel_by_cell = false; | 		bool sel_by_cell = false; | ||||||
| 		bool sel_by_wire = false; | 		bool sel_by_wire = false; | ||||||
|  |  | ||||||
|  | @ -87,7 +87,7 @@ struct SplitnetsWorker | ||||||
| 
 | 
 | ||||||
| struct SplitnetsPass : public Pass { | struct SplitnetsPass : public Pass { | ||||||
| 	SplitnetsPass() : Pass("splitnets", "split up multi-bit nets") { } | 	SplitnetsPass() : Pass("splitnets", "split up multi-bit nets") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -109,7 +109,7 @@ struct SplitnetsPass : public Pass { | ||||||
| 		log("        and split nets so that no driver drives only part of a net.\n"); | 		log("        and split nets so that no driver drives only part of a net.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		bool flag_ports = false; | 		bool flag_ports = false; | ||||||
| 		bool flag_driver = false; | 		bool flag_driver = false; | ||||||
|  |  | ||||||
|  | @ -209,7 +209,7 @@ void read_liberty_cellarea(dict<IdString, double> &cell_area, string liberty_fil | ||||||
| 
 | 
 | ||||||
| struct StatPass : public Pass { | struct StatPass : public Pass { | ||||||
| 	StatPass() : Pass("stat", "print some statistics") { } | 	StatPass() : Pass("stat", "print some statistics") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -231,7 +231,7 @@ struct StatPass : public Pass { | ||||||
| 		log("        e.g. $add_8 for an 8 bit wide $add cell.\n"); | 		log("        e.g. $add_8 for an 8 bit wide $add cell.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log_header(design, "Printing statistics.\n"); | 		log_header(design, "Printing statistics.\n"); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -27,7 +27,7 @@ PRIVATE_NAMESPACE_BEGIN | ||||||
| 
 | 
 | ||||||
| struct TeePass : public Pass { | struct TeePass : public Pass { | ||||||
| 	TeePass() : Pass("tee", "redirect command output to file") { } | 	TeePass() : Pass("tee", "redirect command output to file") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -49,7 +49,7 @@ struct TeePass : public Pass { | ||||||
| 		log("        Add/subract INT from the -v setting for this command.\n"); | 		log("        Add/subract INT from the -v setting for this command.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		std::vector<FILE*> backup_log_files, files_to_close; | 		std::vector<FILE*> backup_log_files, files_to_close; | ||||||
| 		int backup_log_verbose_level = log_verbose_level; | 		int backup_log_verbose_level = log_verbose_level; | ||||||
|  |  | ||||||
|  | @ -27,7 +27,7 @@ PRIVATE_NAMESPACE_BEGIN | ||||||
| 
 | 
 | ||||||
| struct TorderPass : public Pass { | struct TorderPass : public Pass { | ||||||
| 	TorderPass() : Pass("torder", "print cells in topological order") { } | 	TorderPass() : Pass("torder", "print cells in topological order") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -43,7 +43,7 @@ struct TorderPass : public Pass { | ||||||
| 		log("        are not used in topological sorting. this option deactivates that.\n"); | 		log("        are not used in topological sorting. this option deactivates that.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		bool noautostop = false; | 		bool noautostop = false; | ||||||
| 		dict<IdString, pool<IdString>> stop_db; | 		dict<IdString, pool<IdString>> stop_db; | ||||||
|  |  | ||||||
|  | @ -25,34 +25,34 @@ PRIVATE_NAMESPACE_BEGIN | ||||||
| 
 | 
 | ||||||
| struct TraceMonitor : public RTLIL::Monitor | struct TraceMonitor : public RTLIL::Monitor | ||||||
| { | { | ||||||
| 	virtual void notify_module_add(RTLIL::Module *module) YS_OVERRIDE | 	void notify_module_add(RTLIL::Module *module) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log("#TRACE# Module add: %s\n", log_id(module)); | 		log("#TRACE# Module add: %s\n", log_id(module)); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	virtual void notify_module_del(RTLIL::Module *module) YS_OVERRIDE | 	void notify_module_del(RTLIL::Module *module) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log("#TRACE# Module delete: %s\n", log_id(module)); | 		log("#TRACE# Module delete: %s\n", log_id(module)); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	virtual void notify_connect(RTLIL::Cell *cell, const RTLIL::IdString &port, const RTLIL::SigSpec &old_sig, RTLIL::SigSpec &sig) YS_OVERRIDE | 	void notify_connect(RTLIL::Cell *cell, const RTLIL::IdString &port, const RTLIL::SigSpec &old_sig, RTLIL::SigSpec &sig) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log("#TRACE# Cell connect: %s.%s.%s = %s (was: %s)\n", log_id(cell->module), log_id(cell), log_id(port), log_signal(sig), log_signal(old_sig)); | 		log("#TRACE# Cell connect: %s.%s.%s = %s (was: %s)\n", log_id(cell->module), log_id(cell), log_id(port), log_signal(sig), log_signal(old_sig)); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	virtual void notify_connect(RTLIL::Module *module, const RTLIL::SigSig &sigsig) YS_OVERRIDE | 	void notify_connect(RTLIL::Module *module, const RTLIL::SigSig &sigsig) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log("#TRACE# Connection in module %s: %s = %s\n", log_id(module), log_signal(sigsig.first), log_signal(sigsig.second)); | 		log("#TRACE# Connection in module %s: %s = %s\n", log_id(module), log_signal(sigsig.first), log_signal(sigsig.second)); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	virtual void notify_connect(RTLIL::Module *module, const std::vector<RTLIL::SigSig> &sigsig_vec) YS_OVERRIDE | 	void notify_connect(RTLIL::Module *module, const std::vector<RTLIL::SigSig> &sigsig_vec) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log("#TRACE# New connections in module %s:\n", log_id(module)); | 		log("#TRACE# New connections in module %s:\n", log_id(module)); | ||||||
| 		for (auto &sigsig : sigsig_vec) | 		for (auto &sigsig : sigsig_vec) | ||||||
| 			log("##    %s = %s\n", log_signal(sigsig.first), log_signal(sigsig.second)); | 			log("##    %s = %s\n", log_signal(sigsig.first), log_signal(sigsig.second)); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	virtual void notify_blackout(RTLIL::Module *module) YS_OVERRIDE | 	void notify_blackout(RTLIL::Module *module) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log("#TRACE# Blackout in module %s:\n", log_id(module)); | 		log("#TRACE# Blackout in module %s:\n", log_id(module)); | ||||||
| 	} | 	} | ||||||
|  | @ -60,7 +60,7 @@ struct TraceMonitor : public RTLIL::Monitor | ||||||
| 
 | 
 | ||||||
| struct TracePass : public Pass { | struct TracePass : public Pass { | ||||||
| 	TracePass() : Pass("trace", "redirect command output to file") { } | 	TracePass() : Pass("trace", "redirect command output to file") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -70,7 +70,7 @@ struct TracePass : public Pass { | ||||||
| 		log("the design in real time.\n"); | 		log("the design in real time.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		size_t argidx; | 		size_t argidx; | ||||||
| 		for (argidx = 1; argidx < args.size(); argidx++) | 		for (argidx = 1; argidx < args.size(); argidx++) | ||||||
|  | @ -95,4 +95,3 @@ struct TracePass : public Pass { | ||||||
| } TracePass; | } TracePass; | ||||||
| 
 | 
 | ||||||
| PRIVATE_NAMESPACE_END | PRIVATE_NAMESPACE_END | ||||||
| 
 |  | ||||||
|  |  | ||||||
|  | @ -25,7 +25,7 @@ PRIVATE_NAMESPACE_BEGIN | ||||||
| 
 | 
 | ||||||
| struct WriteFileFrontend : public Frontend { | struct WriteFileFrontend : public Frontend { | ||||||
| 	WriteFileFrontend() : Frontend("=write_file", "write a text to a file") { } | 	WriteFileFrontend() : Frontend("=write_file", "write a text to a file") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -44,7 +44,7 @@ struct WriteFileFrontend : public Frontend { | ||||||
| 		log("    EOT\n"); | 		log("    EOT\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::istream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design*) | 	void execute(std::istream *&f, std::string filename, std::vector<std::string> args, RTLIL::Design*) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		bool append_mode = false; | 		bool append_mode = false; | ||||||
| 		std::string output_filename; | 		std::string output_filename; | ||||||
|  |  | ||||||
|  | @ -25,7 +25,7 @@ PRIVATE_NAMESPACE_BEGIN | ||||||
| 
 | 
 | ||||||
| struct EquivAddPass : public Pass { | struct EquivAddPass : public Pass { | ||||||
| 	EquivAddPass() : Pass("equiv_add", "add a $equiv cell") { } | 	EquivAddPass() : Pass("equiv_add", "add a $equiv cell") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -39,7 +39,7 @@ struct EquivAddPass : public Pass { | ||||||
| 		log("This command adds $equiv cells for the ports of the specified cells.\n"); | 		log("This command adds $equiv cells for the ports of the specified cells.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, Design *design) | 	void execute(std::vector<std::string> args, Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		bool try_mode = false; | 		bool try_mode = false; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -162,7 +162,7 @@ struct EquivInductWorker | ||||||
| 
 | 
 | ||||||
| struct EquivInductPass : public Pass { | struct EquivInductPass : public Pass { | ||||||
| 	EquivInductPass() : Pass("equiv_induct", "proving $equiv cells using temporal induction") { } | 	EquivInductPass() : Pass("equiv_induct", "proving $equiv cells using temporal induction") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -192,7 +192,7 @@ struct EquivInductPass : public Pass { | ||||||
| 		log("after reset.\n"); | 		log("after reset.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, Design *design) | 	void execute(std::vector<std::string> args, Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		int success_counter = 0; | 		int success_counter = 0; | ||||||
| 		bool model_undef = false; | 		bool model_undef = false; | ||||||
|  |  | ||||||
|  | @ -390,7 +390,7 @@ struct EquivMakeWorker | ||||||
| 
 | 
 | ||||||
| struct EquivMakePass : public Pass { | struct EquivMakePass : public Pass { | ||||||
| 	EquivMakePass() : Pass("equiv_make", "prepare a circuit for equivalence checking") { } | 	EquivMakePass() : Pass("equiv_make", "prepare a circuit for equivalence checking") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -415,7 +415,7 @@ struct EquivMakePass : public Pass { | ||||||
| 		log("checking problem. Use 'miter -equiv' if you want to create a miter circuit.\n"); | 		log("checking problem. Use 'miter -equiv' if you want to create a miter circuit.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		EquivMakeWorker worker; | 		EquivMakeWorker worker; | ||||||
| 		worker.ct.setup(design); | 		worker.ct.setup(design); | ||||||
|  |  | ||||||
|  | @ -204,7 +204,7 @@ struct EquivMarkWorker | ||||||
| 
 | 
 | ||||||
| struct EquivMarkPass : public Pass { | struct EquivMarkPass : public Pass { | ||||||
| 	EquivMarkPass() : Pass("equiv_mark", "mark equivalence checking regions") { } | 	EquivMarkPass() : Pass("equiv_mark", "mark equivalence checking regions") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -216,7 +216,7 @@ struct EquivMarkPass : public Pass { | ||||||
| 		log("wires and cells.\n"); | 		log("wires and cells.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, Design *design) | 	void execute(std::vector<std::string> args, Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log_header(design, "Executing EQUIV_MARK pass.\n"); | 		log_header(design, "Executing EQUIV_MARK pass.\n"); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -261,7 +261,7 @@ struct EquivMiterWorker | ||||||
| 
 | 
 | ||||||
| struct EquivMiterPass : public Pass { | struct EquivMiterPass : public Pass { | ||||||
| 	EquivMiterPass() : Pass("equiv_miter", "extract miter from equiv circuit") { } | 	EquivMiterPass() : Pass("equiv_miter", "extract miter from equiv circuit") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -282,7 +282,7 @@ struct EquivMiterPass : public Pass { | ||||||
| 		log("        Create compare logic that handles undefs correctly\n"); | 		log("        Create compare logic that handles undefs correctly\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		EquivMiterWorker worker; | 		EquivMiterWorker worker; | ||||||
| 		worker.ct.setup(design); | 		worker.ct.setup(design); | ||||||
|  |  | ||||||
|  | @ -176,7 +176,7 @@ struct EquivPurgeWorker | ||||||
| 
 | 
 | ||||||
| struct EquivPurgePass : public Pass { | struct EquivPurgePass : public Pass { | ||||||
| 	EquivPurgePass() : Pass("equiv_purge", "purge equivalence checking module") { } | 	EquivPurgePass() : Pass("equiv_purge", "purge equivalence checking module") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -187,7 +187,7 @@ struct EquivPurgePass : public Pass { | ||||||
| 		log("ports as needed.\n"); | 		log("ports as needed.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, Design *design) | 	void execute(std::vector<std::string> args, Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log_header(design, "Executing EQUIV_PURGE pass.\n"); | 		log_header(design, "Executing EQUIV_PURGE pass.\n"); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -24,7 +24,7 @@ PRIVATE_NAMESPACE_BEGIN | ||||||
| 
 | 
 | ||||||
| struct EquivRemovePass : public Pass { | struct EquivRemovePass : public Pass { | ||||||
| 	EquivRemovePass() : Pass("equiv_remove", "remove $equiv cells") { } | 	EquivRemovePass() : Pass("equiv_remove", "remove $equiv cells") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -40,7 +40,7 @@ struct EquivRemovePass : public Pass { | ||||||
| 		log("        keep gate circuit\n"); | 		log("        keep gate circuit\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, Design *design) | 	void execute(std::vector<std::string> args, Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		bool mode_gold = false; | 		bool mode_gold = false; | ||||||
| 		bool mode_gate = false; | 		bool mode_gate = false; | ||||||
|  |  | ||||||
|  | @ -273,7 +273,7 @@ struct EquivSimpleWorker | ||||||
| 
 | 
 | ||||||
| struct EquivSimplePass : public Pass { | struct EquivSimplePass : public Pass { | ||||||
| 	EquivSimplePass() : Pass("equiv_simple", "try proving simple $equiv instances") { } | 	EquivSimplePass() : Pass("equiv_simple", "try proving simple $equiv instances") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -298,7 +298,7 @@ struct EquivSimplePass : public Pass { | ||||||
| 		log("        the max. number of time steps to be considered (default = 1)\n"); | 		log("        the max. number of time steps to be considered (default = 1)\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, Design *design) | 	void execute(std::vector<std::string> args, Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		bool verbose = false, short_cones = false, model_undef = false, nogroup = false; | 		bool verbose = false, short_cones = false, model_undef = false, nogroup = false; | ||||||
| 		int success_counter = 0; | 		int success_counter = 0; | ||||||
|  |  | ||||||
|  | @ -24,7 +24,7 @@ PRIVATE_NAMESPACE_BEGIN | ||||||
| 
 | 
 | ||||||
| struct EquivStatusPass : public Pass { | struct EquivStatusPass : public Pass { | ||||||
| 	EquivStatusPass() : Pass("equiv_status", "print status of equivalent checking module") { } | 	EquivStatusPass() : Pass("equiv_status", "print status of equivalent checking module") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -36,7 +36,7 @@ struct EquivStatusPass : public Pass { | ||||||
| 		log("        produce an error if any unproven $equiv cell is found\n"); | 		log("        produce an error if any unproven $equiv cell is found\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, Design *design) | 	void execute(std::vector<std::string> args, Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		bool assert_mode = false; | 		bool assert_mode = false; | ||||||
| 		int unproven_count = 0; | 		int unproven_count = 0; | ||||||
|  |  | ||||||
|  | @ -283,7 +283,7 @@ struct EquivStructWorker | ||||||
| 
 | 
 | ||||||
| struct EquivStructPass : public Pass { | struct EquivStructPass : public Pass { | ||||||
| 	EquivStructPass() : Pass("equiv_struct", "structural equivalence checking") { } | 	EquivStructPass() : Pass("equiv_struct", "structural equivalence checking") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -314,7 +314,7 @@ struct EquivStructPass : public Pass { | ||||||
| 		log("        maximum number of iterations to run before aborting\n"); | 		log("        maximum number of iterations to run before aborting\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, Design *design) | 	void execute(std::vector<std::string> args, Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		pool<IdString> fwonly_cells({ "$equiv" }); | 		pool<IdString> fwonly_cells({ "$equiv" }); | ||||||
| 		bool mode_icells = false; | 		bool mode_icells = false; | ||||||
|  |  | ||||||
|  | @ -27,7 +27,7 @@ PRIVATE_NAMESPACE_BEGIN | ||||||
| 
 | 
 | ||||||
| struct FsmPass : public Pass { | struct FsmPass : public Pass { | ||||||
| 	FsmPass() : Pass("fsm", "extract and optimize finite state machines") { } | 	FsmPass() : Pass("fsm", "extract and optimize finite state machines") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -68,7 +68,7 @@ struct FsmPass : public Pass { | ||||||
| 		log("        passed through to fsm_recode pass\n"); | 		log("        passed through to fsm_recode pass\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		bool flag_nomap = false; | 		bool flag_nomap = false; | ||||||
| 		bool flag_norecode = false; | 		bool flag_norecode = false; | ||||||
|  |  | ||||||
|  | @ -245,7 +245,7 @@ static void detect_fsm(RTLIL::Wire *wire) | ||||||
| 
 | 
 | ||||||
| struct FsmDetectPass : public Pass { | struct FsmDetectPass : public Pass { | ||||||
| 	FsmDetectPass() : Pass("fsm_detect", "finding FSMs in design") { } | 	FsmDetectPass() : Pass("fsm_detect", "finding FSMs in design") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -261,7 +261,7 @@ struct FsmDetectPass : public Pass { | ||||||
| 		log("'fsm_encoding' attribute to \"none\".\n"); | 		log("'fsm_encoding' attribute to \"none\".\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log_header(design, "Executing FSM_DETECT pass (finding FSMs in design).\n"); | 		log_header(design, "Executing FSM_DETECT pass (finding FSMs in design).\n"); | ||||||
| 		extra_args(args, 1, design); | 		extra_args(args, 1, design); | ||||||
|  |  | ||||||
|  | @ -265,7 +265,7 @@ struct FsmExpand | ||||||
| 
 | 
 | ||||||
| struct FsmExpandPass : public Pass { | struct FsmExpandPass : public Pass { | ||||||
| 	FsmExpandPass() : Pass("fsm_expand", "expand FSM cells by merging logic into it") { } | 	FsmExpandPass() : Pass("fsm_expand", "expand FSM cells by merging logic into it") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -279,7 +279,7 @@ struct FsmExpandPass : public Pass { | ||||||
| 		log("word-wide cells. Call with -full to consider all cells for merging.\n"); | 		log("word-wide cells. Call with -full to consider all cells for merging.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		bool full_mode = false; | 		bool full_mode = false; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -120,7 +120,7 @@ void write_kiss2(struct RTLIL::Module *module, struct RTLIL::Cell *cell, std::st | ||||||
|  */ |  */ | ||||||
| struct FsmExportPass : public Pass { | struct FsmExportPass : public Pass { | ||||||
| 	FsmExportPass() : Pass("fsm_export", "exporting FSMs to KISS2 files") { } | 	FsmExportPass() : Pass("fsm_export", "exporting FSMs to KISS2 files") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -143,7 +143,7 @@ struct FsmExportPass : public Pass { | ||||||
| 		log("        use binary state encoding as state names instead of s0, s1, ...\n"); | 		log("        use binary state encoding as state names instead of s0, s1, ...\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		dict<RTLIL::IdString, RTLIL::Const>::iterator attr_it; | 		dict<RTLIL::IdString, RTLIL::Const>::iterator attr_it; | ||||||
| 		std::string arg; | 		std::string arg; | ||||||
|  |  | ||||||
|  | @ -401,7 +401,7 @@ static void extract_fsm(RTLIL::Wire *wire) | ||||||
| 
 | 
 | ||||||
| struct FsmExtractPass : public Pass { | struct FsmExtractPass : public Pass { | ||||||
| 	FsmExtractPass() : Pass("fsm_extract", "extracting FSMs in design") { } | 	FsmExtractPass() : Pass("fsm_extract", "extracting FSMs in design") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -417,7 +417,7 @@ struct FsmExtractPass : public Pass { | ||||||
| 		log("'opt_clean' pass to eliminate this signal.\n"); | 		log("'opt_clean' pass to eliminate this signal.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log_header(design, "Executing FSM_EXTRACT pass (extracting FSM from design).\n"); | 		log_header(design, "Executing FSM_EXTRACT pass (extracting FSM from design).\n"); | ||||||
| 		extra_args(args, 1, design); | 		extra_args(args, 1, design); | ||||||
|  |  | ||||||
|  | @ -30,7 +30,7 @@ PRIVATE_NAMESPACE_BEGIN | ||||||
| 
 | 
 | ||||||
| struct FsmInfoPass : public Pass { | struct FsmInfoPass : public Pass { | ||||||
| 	FsmInfoPass() : Pass("fsm_info", "print information on finite state machines") { } | 	FsmInfoPass() : Pass("fsm_info", "print information on finite state machines") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -41,7 +41,7 @@ struct FsmInfoPass : public Pass { | ||||||
| 		log("pass so that this information is included in the synthesis log file.\n"); | 		log("pass so that this information is included in the synthesis log file.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log_header(design, "Executing FSM_INFO pass (dumping all available information on FSM cells).\n"); | 		log_header(design, "Executing FSM_INFO pass (dumping all available information on FSM cells).\n"); | ||||||
| 		extra_args(args, 1, design); | 		extra_args(args, 1, design); | ||||||
|  |  | ||||||
|  | @ -322,7 +322,7 @@ static void map_fsm(RTLIL::Cell *fsm_cell, RTLIL::Module *module) | ||||||
| 
 | 
 | ||||||
| struct FsmMapPass : public Pass { | struct FsmMapPass : public Pass { | ||||||
| 	FsmMapPass() : Pass("fsm_map", "mapping FSMs to basic logic") { } | 	FsmMapPass() : Pass("fsm_map", "mapping FSMs to basic logic") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -331,7 +331,7 @@ struct FsmMapPass : public Pass { | ||||||
| 		log("This pass translates FSM cells to flip-flops and logic.\n"); | 		log("This pass translates FSM cells to flip-flops and logic.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log_header(design, "Executing FSM_MAP pass (mapping FSMs to basic logic).\n"); | 		log_header(design, "Executing FSM_MAP pass (mapping FSMs to basic logic).\n"); | ||||||
| 		extra_args(args, 1, design); | 		extra_args(args, 1, design); | ||||||
|  |  | ||||||
|  | @ -323,7 +323,7 @@ PRIVATE_NAMESPACE_BEGIN | ||||||
| 
 | 
 | ||||||
| struct FsmOptPass : public Pass { | struct FsmOptPass : public Pass { | ||||||
| 	FsmOptPass() : Pass("fsm_opt", "optimize finite state machines") { } | 	FsmOptPass() : Pass("fsm_opt", "optimize finite state machines") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -334,7 +334,7 @@ struct FsmOptPass : public Pass { | ||||||
| 		log("combination with the 'opt_clean' pass (see also 'help fsm').\n"); | 		log("combination with the 'opt_clean' pass (see also 'help fsm').\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log_header(design, "Executing FSM_OPT pass (simple optimizations of FSMs).\n"); | 		log_header(design, "Executing FSM_OPT pass (simple optimizations of FSMs).\n"); | ||||||
| 		extra_args(args, 1, design); | 		extra_args(args, 1, design); | ||||||
|  |  | ||||||
|  | @ -126,7 +126,7 @@ static void fsm_recode(RTLIL::Cell *cell, RTLIL::Module *module, FILE *fm_set_fs | ||||||
| 
 | 
 | ||||||
| struct FsmRecodePass : public Pass { | struct FsmRecodePass : public Pass { | ||||||
| 	FsmRecodePass() : Pass("fsm_recode", "recoding finite state machines") { } | 	FsmRecodePass() : Pass("fsm_recode", "recoding finite state machines") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -151,7 +151,7 @@ struct FsmRecodePass : public Pass { | ||||||
| 		log("            .map <old_bitpattern> <new_bitpattern>\n"); | 		log("            .map <old_bitpattern> <new_bitpattern>\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		FILE *fm_set_fsm_file = NULL; | 		FILE *fm_set_fsm_file = NULL; | ||||||
| 		FILE *encfile = NULL; | 		FILE *encfile = NULL; | ||||||
|  |  | ||||||
|  | @ -343,7 +343,7 @@ int find_top_mod_score(Design *design, Module *module, dict<Module*, int> &db) | ||||||
| 
 | 
 | ||||||
| struct HierarchyPass : public Pass { | struct HierarchyPass : public Pass { | ||||||
| 	HierarchyPass() : Pass("hierarchy", "check, expand and clean up design hierarchy") { } | 	HierarchyPass() : Pass("hierarchy", "check, expand and clean up design hierarchy") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -414,7 +414,7 @@ struct HierarchyPass : public Pass { | ||||||
| 		log("in the current design.\n"); | 		log("in the current design.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log_header(design, "Executing HIERARCHY pass (managing design hierarchy).\n"); | 		log_header(design, "Executing HIERARCHY pass (managing design hierarchy).\n"); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -269,7 +269,7 @@ struct SubmodWorker | ||||||
| 
 | 
 | ||||||
| struct SubmodPass : public Pass { | struct SubmodPass : public Pass { | ||||||
| 	SubmodPass() : Pass("submod", "moving part of a module to a new submodule") { } | 	SubmodPass() : Pass("submod", "moving part of a module to a new submodule") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -297,7 +297,7 @@ struct SubmodPass : public Pass { | ||||||
| 		log("with -copy to not modify the source module.\n"); | 		log("with -copy to not modify the source module.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log_header(design, "Executing SUBMOD pass (moving cells to submodules as requested).\n"); | 		log_header(design, "Executing SUBMOD pass (moving cells to submodules as requested).\n"); | ||||||
| 		log_push(); | 		log_push(); | ||||||
|  |  | ||||||
|  | @ -24,7 +24,7 @@ PRIVATE_NAMESPACE_BEGIN | ||||||
| 
 | 
 | ||||||
| struct UniquifyPass : public Pass { | struct UniquifyPass : public Pass { | ||||||
| 	UniquifyPass() : Pass("uniquify", "create unique copies of modules") { } | 	UniquifyPass() : Pass("uniquify", "create unique copies of modules") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -41,7 +41,7 @@ struct UniquifyPass : public Pass { | ||||||
| 		log("attribute set (the 'top' module is unique implicitly).\n"); | 		log("attribute set (the 'top' module is unique implicitly).\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log_header(design, "Executing UNIQUIFY pass (creating unique copies of modules).\n"); | 		log_header(design, "Executing UNIQUIFY pass (creating unique copies of modules).\n"); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -27,7 +27,7 @@ PRIVATE_NAMESPACE_BEGIN | ||||||
| 
 | 
 | ||||||
| struct MemoryPass : public Pass { | struct MemoryPass : public Pass { | ||||||
| 	MemoryPass() : Pass("memory", "translate memories to basic cells") { } | 	MemoryPass() : Pass("memory", "translate memories to basic cells") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -48,7 +48,7 @@ struct MemoryPass : public Pass { | ||||||
| 		log("or multiport memory blocks if called with the -nomap option.\n"); | 		log("or multiport memory blocks if called with the -nomap option.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		bool flag_nomap = false; | 		bool flag_nomap = false; | ||||||
| 		bool flag_nordff = false; | 		bool flag_nordff = false; | ||||||
|  |  | ||||||
|  | @ -1120,7 +1120,7 @@ void handle_cell(Cell *cell, const rules_t &rules) | ||||||
| 
 | 
 | ||||||
| struct MemoryBramPass : public Pass { | struct MemoryBramPass : public Pass { | ||||||
| 	MemoryBramPass() : Pass("memory_bram", "map memories to block rams") { } | 	MemoryBramPass() : Pass("memory_bram", "map memories to block rams") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -1210,7 +1210,7 @@ struct MemoryBramPass : public Pass { | ||||||
| 		log("the data bits to accommodate the enable pattern of port A.\n"); | 		log("the data bits to accommodate the enable pattern of port A.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(vector<string> args, Design *design) | 	void execute(vector<string> args, Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		rules_t rules; | 		rules_t rules; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -246,7 +246,7 @@ static void handle_module(Design *design, Module *module) | ||||||
| 
 | 
 | ||||||
| struct MemoryCollectPass : public Pass { | struct MemoryCollectPass : public Pass { | ||||||
| 	MemoryCollectPass() : Pass("memory_collect", "creating multi-port memory cells") { } | 	MemoryCollectPass() : Pass("memory_collect", "creating multi-port memory cells") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -256,7 +256,7 @@ struct MemoryCollectPass : public Pass { | ||||||
| 		log("memory cells.\n"); | 		log("memory cells.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) { | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE { | ||||||
| 		log_header(design, "Executing MEMORY_COLLECT pass (generating $mem cells).\n"); | 		log_header(design, "Executing MEMORY_COLLECT pass (generating $mem cells).\n"); | ||||||
| 		extra_args(args, 1, design); | 		extra_args(args, 1, design); | ||||||
| 		for (auto &mod_it : design->modules_) | 		for (auto &mod_it : design->modules_) | ||||||
|  |  | ||||||
|  | @ -283,7 +283,7 @@ struct MemoryDffWorker | ||||||
| 
 | 
 | ||||||
| struct MemoryDffPass : public Pass { | struct MemoryDffPass : public Pass { | ||||||
| 	MemoryDffPass() : Pass("memory_dff", "merge input/output DFFs into memories") { } | 	MemoryDffPass() : Pass("memory_dff", "merge input/output DFFs into memories") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -297,7 +297,7 @@ struct MemoryDffPass : public Pass { | ||||||
| 		log("        do not merge registers on read ports\n"); | 		log("        do not merge registers on read ports\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		bool flag_wr_only = false; | 		bool flag_wr_only = false; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -352,7 +352,7 @@ struct MemoryMapWorker | ||||||
| 
 | 
 | ||||||
| struct MemoryMapPass : public Pass { | struct MemoryMapPass : public Pass { | ||||||
| 	MemoryMapPass() : Pass("memory_map", "translate multiport memories to basic cells") { } | 	MemoryMapPass() : Pass("memory_map", "translate multiport memories to basic cells") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -362,7 +362,7 @@ struct MemoryMapPass : public Pass { | ||||||
| 		log("pass to word-wide DFFs and address decoders.\n"); | 		log("pass to word-wide DFFs and address decoders.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) { | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE { | ||||||
| 		log_header(design, "Executing MEMORY_MAP pass (converting $mem cells to logic and flip-flops).\n"); | 		log_header(design, "Executing MEMORY_MAP pass (converting $mem cells to logic and flip-flops).\n"); | ||||||
| 		extra_args(args, 1, design); | 		extra_args(args, 1, design); | ||||||
| 		for (auto mod : design->selected_modules()) | 		for (auto mod : design->selected_modules()) | ||||||
|  |  | ||||||
|  | @ -28,7 +28,7 @@ PRIVATE_NAMESPACE_BEGIN | ||||||
| 
 | 
 | ||||||
| struct MemoryMemxPass : public Pass { | struct MemoryMemxPass : public Pass { | ||||||
| 	MemoryMemxPass() : Pass("memory_memx", "emulate vlog sim behavior for mem ports") { } | 	MemoryMemxPass() : Pass("memory_memx", "emulate vlog sim behavior for mem ports") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -38,7 +38,7 @@ struct MemoryMemxPass : public Pass { | ||||||
| 		log("behavior for out-of-bounds memory reads and writes.\n"); | 		log("behavior for out-of-bounds memory reads and writes.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) { | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE { | ||||||
| 		log_header(design, "Executing MEMORY_MEMX pass (converting $mem cells to logic and flip-flops).\n"); | 		log_header(design, "Executing MEMORY_MEMX pass (converting $mem cells to logic and flip-flops).\n"); | ||||||
| 		extra_args(args, 1, design); | 		extra_args(args, 1, design); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -25,7 +25,7 @@ PRIVATE_NAMESPACE_BEGIN | ||||||
| 
 | 
 | ||||||
| struct MemoryNordffPass : public Pass { | struct MemoryNordffPass : public Pass { | ||||||
| 	MemoryNordffPass() : Pass("memory_nordff", "extract read port FFs from memories") { } | 	MemoryNordffPass() : Pass("memory_nordff", "extract read port FFs from memories") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -35,7 +35,7 @@ struct MemoryNordffPass : public Pass { | ||||||
| 		log("similar to what one would get from calling memory_dff with -nordff.\n"); | 		log("similar to what one would get from calling memory_dff with -nordff.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log_header(design, "Executing MEMORY_NORDFF pass (extracting $dff cells from $mem).\n"); | 		log_header(design, "Executing MEMORY_NORDFF pass (extracting $dff cells from $mem).\n"); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -726,7 +726,7 @@ struct MemoryShareWorker | ||||||
| 
 | 
 | ||||||
| struct MemorySharePass : public Pass { | struct MemorySharePass : public Pass { | ||||||
| 	MemorySharePass() : Pass("memory_share", "consolidate memory ports") { } | 	MemorySharePass() : Pass("memory_share", "consolidate memory ports") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -752,7 +752,7 @@ struct MemorySharePass : public Pass { | ||||||
| 		log("optimizations) such as \"share\" and \"opt_merge\".\n"); | 		log("optimizations) such as \"share\" and \"opt_merge\".\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) { | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE { | ||||||
| 		log_header(design, "Executing MEMORY_SHARE pass (consolidating $memrd/$memwr cells).\n"); | 		log_header(design, "Executing MEMORY_SHARE pass (consolidating $memrd/$memwr cells).\n"); | ||||||
| 		extra_args(args, 1, design); | 		extra_args(args, 1, design); | ||||||
| 		for (auto module : design->selected_modules()) | 		for (auto module : design->selected_modules()) | ||||||
|  |  | ||||||
|  | @ -127,7 +127,7 @@ void handle_module(RTLIL::Design *design, RTLIL::Module *module) | ||||||
| 
 | 
 | ||||||
| struct MemoryUnpackPass : public Pass { | struct MemoryUnpackPass : public Pass { | ||||||
| 	MemoryUnpackPass() : Pass("memory_unpack", "unpack multi-port memory cells") { } | 	MemoryUnpackPass() : Pass("memory_unpack", "unpack multi-port memory cells") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -137,7 +137,7 @@ struct MemoryUnpackPass : public Pass { | ||||||
| 		log("$memwr cells. It is the counterpart to the memory_collect pass.\n"); | 		log("$memwr cells. It is the counterpart to the memory_collect pass.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) { | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE { | ||||||
| 		log_header(design, "Executing MEMORY_UNPACK pass (generating $memrd/$memwr cells form $mem cells).\n"); | 		log_header(design, "Executing MEMORY_UNPACK pass (generating $memrd/$memwr cells form $mem cells).\n"); | ||||||
| 		extra_args(args, 1, design); | 		extra_args(args, 1, design); | ||||||
| 		for (auto &mod_it : design->modules_) | 		for (auto &mod_it : design->modules_) | ||||||
|  |  | ||||||
|  | @ -27,7 +27,7 @@ PRIVATE_NAMESPACE_BEGIN | ||||||
| 
 | 
 | ||||||
| struct OptPass : public Pass { | struct OptPass : public Pass { | ||||||
| 	OptPass() : Pass("opt", "perform simple optimizations") { } | 	OptPass() : Pass("opt", "perform simple optimizations") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -63,7 +63,7 @@ struct OptPass : public Pass { | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		std::string opt_clean_args; | 		std::string opt_clean_args; | ||||||
| 		std::string opt_expr_args; | 		std::string opt_expr_args; | ||||||
|  |  | ||||||
|  | @ -442,7 +442,7 @@ void rmunused_module(RTLIL::Module *module, bool purge_mode, bool verbose, bool | ||||||
| 
 | 
 | ||||||
| struct OptCleanPass : public Pass { | struct OptCleanPass : public Pass { | ||||||
| 	OptCleanPass() : Pass("opt_clean", "remove unused cells and wires") { } | 	OptCleanPass() : Pass("opt_clean", "remove unused cells and wires") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -459,7 +459,7 @@ struct OptCleanPass : public Pass { | ||||||
| 		log("        also remove internal nets if they have a public name\n"); | 		log("        also remove internal nets if they have a public name\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		bool purge_mode = false; | 		bool purge_mode = false; | ||||||
| 
 | 
 | ||||||
|  | @ -505,7 +505,7 @@ struct OptCleanPass : public Pass { | ||||||
| 
 | 
 | ||||||
| struct CleanPass : public Pass { | struct CleanPass : public Pass { | ||||||
| 	CleanPass() : Pass("clean", "remove unused cells and wires") { } | 	CleanPass() : Pass("clean", "remove unused cells and wires") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -520,7 +520,7 @@ struct CleanPass : public Pass { | ||||||
| 		log("in -purge mode between the commands.\n"); | 		log("in -purge mode between the commands.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		bool purge_mode = false; | 		bool purge_mode = false; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -169,7 +169,7 @@ void demorgan_worker( | ||||||
| 
 | 
 | ||||||
| struct OptDemorganPass : public Pass { | struct OptDemorganPass : public Pass { | ||||||
| 	OptDemorganPass() : Pass("opt_demorgan", "Optimize reductions with DeMorgan equivalents") { } | 	OptDemorganPass() : Pass("opt_demorgan", "Optimize reductions with DeMorgan equivalents") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -179,7 +179,7 @@ struct OptDemorganPass : public Pass { | ||||||
| 		log("overall gate count of the circuit\n"); | 		log("overall gate count of the circuit\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log_header(design, "Executing OPT_DEMORGAN pass (push inverters through $reduce_* cells).\n"); | 		log_header(design, "Executing OPT_DEMORGAN pass (push inverters through $reduce_* cells).\n"); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1470,7 +1470,7 @@ void replace_const_cells(RTLIL::Design *design, RTLIL::Module *module, bool cons | ||||||
| 
 | 
 | ||||||
| struct OptExprPass : public Pass { | struct OptExprPass : public Pass { | ||||||
| 	OptExprPass() : Pass("opt_expr", "perform const folding and simple expression rewriting") { } | 	OptExprPass() : Pass("opt_expr", "perform const folding and simple expression rewriting") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -1504,7 +1504,7 @@ struct OptExprPass : public Pass { | ||||||
| 		log("        replaced by 'a'. the -keepdc option disables all such optimizations.\n"); | 		log("        replaced by 'a'. the -keepdc option disables all such optimizations.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		bool mux_undef = false; | 		bool mux_undef = false; | ||||||
| 		bool mux_bool = false; | 		bool mux_bool = false; | ||||||
|  |  | ||||||
|  | @ -341,7 +341,7 @@ struct OptMergeWorker | ||||||
| 
 | 
 | ||||||
| struct OptMergePass : public Pass { | struct OptMergePass : public Pass { | ||||||
| 	OptMergePass() : Pass("opt_merge", "consolidate identical cells") { } | 	OptMergePass() : Pass("opt_merge", "consolidate identical cells") { } | ||||||
| 	virtual void help() | 	void help() YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | 		//   |---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|---v---|
 | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
|  | @ -357,7 +357,7 @@ struct OptMergePass : public Pass { | ||||||
| 		log("        Operate on all cell types, not just built-in types.\n"); | 		log("        Operate on all cell types, not just built-in types.\n"); | ||||||
| 		log("\n"); | 		log("\n"); | ||||||
| 	} | 	} | ||||||
| 	virtual void execute(std::vector<std::string> args, RTLIL::Design *design) | 	void execute(std::vector<std::string> args, RTLIL::Design *design) YS_OVERRIDE | ||||||
| 	{ | 	{ | ||||||
| 		log_header(design, "Executing OPT_MERGE pass (detect identical cells).\n"); | 		log_header(design, "Executing OPT_MERGE pass (detect identical cells).\n"); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
Some files were not shown because too many files have changed in this diff Show more
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue