Emil J 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								7719beb4ae 
								
							 
						 
						
							
							
								
								Merge pull request  #5349  from rocallahan/cleanup-hashops  
							
							... 
							
							
							
							Reduce hashops verbiage in `OptMergePass` 
							
						 
						
							2025-09-30 19:34:44 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								87c1a868d3 
								
							 
						 
						
							
							
								
								Merge pull request  #5384  from rocallahan/simplify-opt-merge-logic  
							
							... 
							
							
							
							Move `OptMerge` cell filtering logic to happen while building the cell vector 
							
						 
						
							2025-09-29 15:03:01 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								4d209c187d 
								
							 
						 
						
							
							
								
								Switch OptMergeWorker cell type switching to use IdString::in()  
							
							
							
						 
						
							2025-09-25 03:06:58 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								1c73011e7e 
								
							 
						 
						
							
							
								
								Swap SigSpecs using std::swap with moves  
							
							
							
						 
						
							2025-09-25 03:04:17 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								e9aacd8a05 
								
							 
						 
						
							
							
								
								Move OptMerge cell filtering logic to happen while building the cell vector.  
							
							... 
							
							
							
							This code is quite confusing because there are two "is the cell known" filters
applied, one while building the cell vector and one after building the cell
vector, and they're subtly different. I'm preserving the actual behaviour here
but it looks like there is, or was, a bug here. 
							
						 
						
							2025-09-23 23:26:47 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								1e5f920dbd 
								
							 
						 
						
							
							
								
								Remove .c_str() from parameters to log_debug()  
							
							
							
						 
						
							2025-09-23 19:10:33 +12:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								4fe21dd652 
								
							 
						 
						
							
							
								
								Reduce hashops verbiage in OptMergePass  
							
							
							
						 
						
							2025-09-19 03:31:46 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								d24488d3a5 
								
							 
						 
						
							
							
								
								Instead of using builtin_ff_cell_types() directly, go through a method Cell::is_builtin_ff()  
							
							
							
						 
						
							2025-09-17 03:24:19 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								e0ae7b7af4 
								
							 
						 
						
							
							
								
								Remove .c_str() calls from log()/log_error()  
							
							... 
							
							
							
							There are some leftovers, but this is an easy regex-based approach that removes most of them. 
							
						 
						
							2025-09-11 20:59:37 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								54a258f854 
								
							 
						 
						
							
							
								
								In hash_cell_inputs, avoid constructing an std::pair (which requires copying the port IdString)  
							
							
							
						 
						
							2025-09-04 14:17:08 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								8c04e5266c 
								
							 
						 
						
							
							
								
								Use commutative hashing instead of expensive allocation and sorting  
							
							... 
							
							
							
							For one of our large circuits, this improves the `OptMergePass` runtime
from about 150s to about 130s. It's also simpler code. 
							
						 
						
							2025-08-20 19:35:22 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								7d0ea0d64f 
								
							 
						 
						
							
							
								
								Refactor call to sorted_pmux_in to avoid copying the connection dictionary  
							
							
							
						 
						
							2025-08-20 19:35:22 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								3f2c4f6f83 
								
							 
						 
						
							
							
								
								Remove redundant construction of assign_map.  
							
							... 
							
							
							
							We call 'assign_map.set()' below which wipes the `SigMap` and reconstructs it.
This operation is expensive because it scans the whole module. I think it's
better to make heavyweight operations more visible so I'm removing
the less obvious operation. 
							
						 
						
							2025-08-17 23:34:11 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J. Tywoniak 
								
							 
						 
						
							
							
							
							
								
							
							
								1d773b50a4 
								
							 
						 
						
							
							
								
								opt_merge: fix dangling pointers in known_cells when keep attribute is used  
							
							
							
						 
						
							2025-03-10 13:14:06 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J. Tywoniak 
								
							 
						 
						
							
							
							
							
								
							
							
								176faae7c9 
								
							 
						 
						
							
							
								
								opt_merge: fix trivial binary regression  
							
							
							
						 
						
							2025-03-10 13:14:06 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J. Tywoniak 
								
							 
						 
						
							
							
							
							
								
							
							
								8903740147 
								
							 
						 
						
							
							
								
								opt_merge: switch to unordered_set  
							
							
							
						 
						
							2025-03-10 13:14:06 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J. Tywoniak 
								
							 
						 
						
							
							
							
							
								
							
							
								ffc057a89c 
								
							 
						 
						
							
							
								
								opt_merge: fix the many collisions case  
							
							
							
						 
						
							2025-03-10 13:14:06 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J. Tywoniak 
								
							 
						 
						
							
							
							
							
								
							
							
								cbb776c626 
								
							 
						 
						
							
							
								
								opt_merge: avoid hashing strings  
							
							
							
						 
						
							2025-03-10 13:14:06 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jannis Harder 
								
							 
						 
						
							
							
							
							
								
							
							
								bfd9cf63db 
								
							 
						 
						
							
							
								
								Ignore $scopeinfo in opt_merge  
							
							
							
						 
						
							2024-02-06 17:51:29 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Rasmus Munk Larsen 
								
							 
						 
						
							
							
							
							
								
							
							
								57a2b4b0cd 
								
							 
						 
						
							
							
								
								Explicitly use uint64_t as the type of fingerprint to avoid type mismatch with some compilers.  
							
							
							
						 
						
							2023-10-03 15:02:02 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Rasmus Munk Larsen 
								
							 
						 
						
							
							
							
							
								
							
							
								8e0308b5e7 
								
							 
						 
						
							
							
								
								Revert changes to celltypes.h. Use dict instead of std::unordered_map and most hash function for uint64_t to hashlib.h to support this.  
							
							
							
						 
						
							2023-10-03 14:25:59 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Rasmus Munk Larsen 
								
							 
						 
						
							
							
							
							
								
							
							
								bce984fa60 
								
							 
						 
						
							
							
								
								Speed up OptMergePass by 1.7x.  
							
							... 
							
							
							
							The main speedup comes from swithing from using a SHA1 hash to std::hash<std::string>. There is no need to use an expensive cryptographic hash for fingerprinting in this context. 
							
						 
						
							2023-10-02 15:57:18 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jannis Harder 
								
							 
						 
						
							
							
							
							
								
							
							
								ca5b910296 
								
							 
						 
						
							
							
								
								opt_merge: Add -keepdc option required for formal verification  
							
							... 
							
							
							
							The `-keepdc` option prevents merging flipflops with dont-care bits in
their initial value, as, in general, this is not a valid transform for
formal verification.
The keepdc option of `opt` is passed along to `opt_merge` now. 
							
						 
						
							2022-04-01 21:03:20 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Marcelina Kościelnicka 
								
							 
						 
						
							
							
							
							
								
							
							
								9cbff3a4a9 
								
							 
						 
						
							
							
								
								opt_merge: Remove and reinsert init when connecting nets.  
							
							... 
							
							
							
							Mutating the SigMap by adding a new connection will throw off FfInitVals
index.  Work around this by removing the relevant init values from index
whenever we connect nets, then re-add the new init value.
Should fix  #2920 . 
							
						 
						
							2021-08-22 18:34:11 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Marcelina Kościelnicka 
								
							 
						 
						
							
							
							
							
								
							
							
								98003430d6 
								
							 
						 
						
							
							
								
								opt_merge: Use FfInitVals.  
							
							... 
							
							
							
							Partial #2920  fix. 
							
						 
						
							2021-08-08 01:19:22 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Claire Xenia Wolf 
								
							 
						 
						
							
							
							
							
								
							
							
								72787f52fc 
								
							 
						 
						
							
							
								
								Fixing old e-mail addresses and deadnames  
							
							... 
							
							
							
							s/((Claire|Xen|Xenia|Clifford)\s+)+(Wolf|Xen)\s+<(claire|clifford)@(symbioticeda.com|clifford.at|yosyshq.com)>/Claire Xenia Wolf <claire@yosyshq.com>/gi;
s/((Nina|Nak|N\.)\s+)+Engelhardt\s+<nak@(symbioticeda.com|yosyshq.com)>/N. Engelhardt <nak@yosyshq.com>/gi;
s/((David)\s+)+Shah\s+<(dave|david)@(symbioticeda.com|yosyshq.com|ds0.me)>/David Shah <dave@ds0.me>/gi;
s/((Miodrag)\s+)+Milanovic\s+<(miodrag|micko)@(symbioticeda.com|yosyshq.com)>/Miodrag Milanovic <micko@yosyshq.com>/gi;
s,https?://www.clifford.at/yosys/,http://yosyshq.net/yosys/,g ; 
							
						 
						
							2021-06-08 00:39:36 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Marcelina Kościelnicka 
								
							 
						 
						
							
							
							
							
								
							
							
								61a7ec4768 
								
							 
						 
						
							
							
								
								opt_merge: Dedup one more use of FF cell type list.  
							
							
							
						 
						
							2020-07-15 06:19:18 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Marcelina Kościelnicka 
								
							 
						 
						
							
							
							
							
								
							
							
								77b15dd8e9 
								
							 
						 
						
							
							
								
								opt_merge: use the master FF type list  
							
							
							
						 
						
							2020-06-30 20:57:35 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									whitequark 
								
							 
						 
						
							
							
							
							
								
							
							
								7191dd16f9 
								
							 
						 
						
							
							
								
								Use C++11 final/override keywords.  
							
							
							
						 
						
							2020-06-18 23:34:52 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Marcelina Kościelnicka 
								
							 
						 
						
							
							
							
							
								
							
							
								516857f3ba 
								
							 
						 
						
							
							
								
								[NFCI] Deduplicate builtin FF cell types list  
							
							... 
							
							
							
							A few passes included the same list of FF cell types.  Make it a global
const instead.
The zinit pass also seems to include a list like that, but given that
it seems to be completely broken at the time (see #1568  discussion),
I'm going to pretend I didn't see that. 
							
						 
						
							2020-04-09 18:05:06 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Eddie Hung 
								
							 
						 
						
							
							
							
							
								
							
							
								956ecd48f7 
								
							 
						 
						
							
							
								
								kernel: big fat patch to use more ID::*, otherwise ID(*)  
							
							
							
						 
						
							2020-04-02 09:51:32 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Eddie Hung 
								
							 
						 
						
							
							
							
							
								
							
							
								cdf17c4455 
								
							 
						 
						
							
							
								
								opt_merge: unordered_map -> dict as per @cliffordwolf review  
							
							
							
						 
						
							2020-03-16 12:44:33 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Eddie Hung 
								
							 
						 
						
							
							
							
							
								
							
							
								9f30d7f843 
								
							 
						 
						
							
							
								
								opt_merge: speedup  
							
							
							
						 
						
							2020-03-16 12:43:54 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Eddie Hung 
								
							 
						 
						
							
							
							
							
								
							
							
								f5e0a07ad6 
								
							 
						 
						
							
							
								
								Add $_FF_ and $_SR* courtesy of @mwkmwkmwk  
							
							
							
						 
						
							2019-12-20 13:00:04 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Eddie Hung 
								
							 
						 
						
							
							
							
							
								
							
							
								d038cea3c7 
								
							 
						 
						
							
							
								
								More stringent check for flop cells  
							
							
							
						 
						
							2019-12-20 12:32:00 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Eddie Hung 
								
							 
						 
						
							
							
							
							
								
							
							
								83d36394f8 
								
							 
						 
						
							
							
								
								opt_merge to discard \init of '$' cells with 'Q' port when merging  
							
							
							
						 
						
							2019-12-13 10:26:37 -08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Eddie Hung 
								
							 
						 
						
							
							
							
							
								
							
							
								52355f5185 
								
							 
						 
						
							
							
								
								Use more ID::{A,B,Y,blackbox,whitebox}  
							
							
							
						 
						
							2019-08-15 14:50:10 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Clifford Wolf 
								
							 
						 
						
							
							
							
							
								
							
							
								6995914f3f 
								
							 
						 
						
							
							
								
								Use ID() macro in all of passes/opt/  
							
							... 
							
							
							
							This was obtained by running the following SED command in passes/opt/
and then using "meld foo.cc foo.cc.orig" to manually fix all resulting
compiler errors.
sed -i.orig -r 's/"\\\\([a-zA-Z0-9_]+)"/ID(\1)/g; s/"(\$[a-zA-Z0-9_]+)"/ID(\1)/g;' *.cc
Signed-off-by: Clifford Wolf <clifford@clifford.at> 
							
						 
						
							2019-08-11 11:39:46 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Eddie Hung 
								
							 
						 
						
							
							
							
							
								
							
							
								6d77236f38 
								
							 
						 
						
							
							
								
								substr() -> compare()  
							
							
							
						 
						
							2019-08-07 12:20:08 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Eddie Hung 
								
							 
						 
						
							
							
							
							
								
							
							
								3486235338 
								
							 
						 
						
							
							
								
								Make liberal use of IdString.in()  
							
							
							
						 
						
							2019-08-06 16:18:18 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Clifford Wolf 
								
							 
						 
						
							
							
							
							
								
							
							
								e158ea2097 
								
							 
						 
						
							
							
								
								Add log_debug() framework  
							
							... 
							
							
							
							Signed-off-by: Clifford Wolf <clifford@clifford.at> 
							
						 
						
							2019-04-22 17:25:52 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Henner Zeller 
								
							 
						 
						
							
							
							
							
								
							
							
								3aa4484a3c 
								
							 
						 
						
							
							
								
								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) 
							
						 
						
							2018-07-20 23:51:06 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Clifford Wolf 
								
							 
						 
						
							
							
							
							
								
							
							
								eb67a7532b 
								
							 
						 
						
							
							
								
								Add $allconst and $allseq cell types  
							
							... 
							
							
							
							Signed-off-by: Clifford Wolf <clifford@clifford.at> 
							
						 
						
							2018-02-23 13:14:47 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Salvador E. Tropea 
								
							 
						 
						
							
							
							
							
								
							
							
								ca23554528 
								
							 
						 
						
							
							
								
								Excluded $_TBUF_ from opt_merge pass  
							
							
							
						 
						
							2017-07-03 13:21:20 -03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Clifford Wolf 
								
							 
						 
						
							
							
							
							
								
							
							
								18c030a8c9 
								
							 
						 
						
							
							
								
								Add $tribuf to opt_merge blacklist  
							
							
							
						 
						
							2017-06-30 17:44:44 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Clifford Wolf 
								
							 
						 
						
							
							
							
							
								
							
							
								180d704568 
								
							 
						 
						
							
							
								
								Disable opt_merge for $anyseq and $anyconst  
							
							
							
						 
						
							2017-02-28 22:17:00 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Clifford Wolf 
								
							 
						 
						
							
							
							
							
								
							
							
								e6cc67b46f 
								
							 
						 
						
							
							
								
								Fix handling of init attributes with strange width  
							
							
							
						 
						
							2017-02-09 16:06:58 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Clifford Wolf 
								
							 
						 
						
							
							
							
							
								
							
							
								0bc95f1e04 
								
							 
						 
						
							
							
								
								Added "yosys -D" feature  
							
							
							
						 
						
							2016-04-21 23:28:37 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Clifford Wolf 
								
							 
						 
						
							
							
							
							
								
							
							
								6cafd08ac1 
								
							 
						 
						
							
							
								
								Improved opt_merge support for $pmux cells  
							
							
							
						 
						
							2016-03-31 09:58:55 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Clifford Wolf 
								
							 
						 
						
							
							
							
							
								
							
							
								e2f6d61c00 
								
							 
						 
						
							
							
								
								Typo fixes in opt_expr and opt_merge  
							
							
							
						 
						
							2016-03-31 09:56:56 +02:00