Jannis Harder 
								
							 
						 
						
							
							
							
							
								
							
							
								5f79a6e868 
								
							 
						 
						
							
							
								
								Clean up $buf with 'z inputs, $input_port and $connect cells  
							
							... 
							
							
							
							This ensures that entering and leaving bufnorm followed by `opt_clean`
is equivalent to just running `opt_clean`.
Also make sure that 'z-$buf cells get techmapped in a compatible way. 
							
						 
						
							2025-09-17 13:56:46 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								73e47ac3fe 
								
							 
						 
						
							
							
								
								Merge pull request  #5357  from rocallahan/builtin-ff  
							
							... 
							
							
							
							Instead of using `builtin_ff_cell_types()` directly, go through a method `Cell::is_builtin_ff()` 
							
						 
						
							2025-09-17 11:37:16 +02: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 
								
							 
						 
						
							
							
							
							
								
							
							
								a7c46f7b4a 
								
							 
						 
						
							
							
								
								Remove .c_str() calls from parameters to log_warning()/log_warning_noprefix()  
							
							
							
						 
						
							2025-09-16 23:02:16 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								5ac6858f26 
								
							 
						 
						
							
							
								
								Remove .c_str() from log_cmd_error() and log_file_error() parameters  
							
							
							
						 
						
							2025-09-16 22:59:08 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								5600eb2e5b 
								
							 
						 
						
							
							
								
								Update passes/opt to avoid bits()  
							
							
							
						 
						
							2025-09-16 03:17:23 +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 
								
							 
						 
						
							
							
							
							
								
							
							
								66d2c2af08 
								
							 
						 
						
							
							
								
								Make log_header() use variadic templates.  
							
							
							
						 
						
							2025-09-09 15:41:03 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jannis Harder 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								3d14108a96 
								
							 
						 
						
							
							
								
								Merge pull request  #5323  from rocallahan/IdString-references  
							
							... 
							
							
							
							Pass `IdString` by reference in more places 
							
						 
						
							2025-09-08 20:40:24 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jannis Harder 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								c468ee7add 
								
							 
						 
						
							
							
								
								Merge pull request  #5304  from rocallahan/idstring-stringf  
							
							... 
							
							
							
							Support `IdString` parameters in `stringf()` and remove `.c_str()` in a lot of places 
							
						 
						
							2025-09-08 20:29:20 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Mike Inouye 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								6276464ea7 
								
							 
						 
						
							
							
								
								Increase muxtree glob eval attempts to 10M.  
							
							
							
						 
						
							2025-09-04 10:52:37 -07: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 
								
							 
						 
						
							
							
							
							
								
							
							
								c7df6954b9 
								
							 
						 
						
							
							
								
								Remove .c_str() from stringf parameters  
							
							
							
						 
						
							2025-09-01 23:34:42 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								5aa71505fc 
								
							 
						 
						
							
							
								
								Merge pull request  #5287  from Anhijkt/opt_dff-fix-5279  
							
							... 
							
							
							
							opt_dff: fix timeout issue 
							
						 
						
							2025-09-01 11:20:35 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								c5d096b7b8 
								
							 
						 
						
							
							
								
								Merge pull request  #5308  from YosysHQ/emil/opt_muxtree-refactor  
							
							... 
							
							
							
							opt_muxtree: refactor 
							
						 
						
							2025-08-25 16:48:01 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J. Tywoniak 
								
							 
						 
						
							
							
							
							
								
							
							
								b45e5854bf 
								
							 
						 
						
							
							
								
								opt_muxtree: comment wording  
							
							
							
						 
						
							2025-08-25 16:36:07 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J. Tywoniak 
								
							 
						 
						
							
							
							
							
								
							
							
								4dea774171 
								
							 
						 
						
							
							
								
								opt_muxtree: refactor  
							
							
							
						 
						
							2025-08-21 12:52:22 +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 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								025d7a5641 
								
							 
						 
						
							
							
								
								Merge pull request  #5290  from rocallahan/opt-mux-perf  
							
							... 
							
							
							
							Make `OptMuxtreePass` int-indexed vectors into hashtables 
							
						 
						
							2025-08-20 20:00:26 +02: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 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								dd88423334 
								
							 
						 
						
							
							
								
								Make OptMuxtree int-indexed vectors into hashtables  
							
							... 
							
							
							
							For one of our large circuits, this reduced the time for an OPT_MUXTREE pass from
169s to 5s. 
							
						 
						
							2025-08-14 23:09:15 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Anhijkt 
								
							 
						 
						
							
							
							
							
								
							
							
								b3ca5ee0f1 
								
							 
						 
						
							
							
								
								opt_dff: fix timeout issue  
							
							
							
						 
						
							2025-08-13 01:48:59 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Krystine Sherwin 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								3959d19291 
								
							 
						 
						
							
							
								
								Reapply "Add groups to command reference"  
							
							... 
							
							
							
							This reverts commit 81f87ce6ed 
							
						 
						
							2025-08-06 13:52:12 +12:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Lofty 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								7537a49f0d 
								
							 
						 
						
							
							
								
								Merge pull request  #5241  from Anhijkt/opt_dff-simplify-pt  
							
							... 
							
							
							
							opt_dff: implement simplify_patterns 
							
						 
						
							2025-08-04 09:44:57 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Anhijkt 
								
							 
						 
						
							
							
							
							
								
							
							
								85e0e8ca67 
								
							 
						 
						
							
							
								
								typo  
							
							
							
						 
						
							2025-07-30 21:40:20 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Anhijkt 
								
							 
						 
						
							
							
							
							
								
							
							
								bfff7a47f1 
								
							 
						 
						
							
							
								
								typo  
							
							
							
						 
						
							2025-07-30 21:34:42 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Anhijkt 
								
							 
						 
						
							
							
							
							
								
							
							
								206d2a4553 
								
							 
						 
						
							
							
								
								opt_dff: refactor simplify_patterns  
							
							
							
						 
						
							2025-07-30 21:31:34 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									N. Engelhardt 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								81f87ce6ed 
								
							 
						 
						
							
							
								
								Revert "Add groups to command reference"  
							
							
							
						 
						
							2025-07-23 14:41:49 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Anhijkt 
								
							 
						 
						
							
							
							
							
								
							
							
								d9fc6dda9e 
								
							 
						 
						
							
							
								
								typo  
							
							
							
						 
						
							2025-07-21 14:42:52 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Anhijkt 
								
							 
						 
						
							
							
							
							
								
							
							
								ca8af1f8c8 
								
							 
						 
						
							
							
								
								opt_dff: implement simplify_patterns  
							
							
							
						 
						
							2025-07-21 14:15:26 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Krystine Sherwin 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								f2ef17b581 
								
							 
						 
						
							
							
								
								cmdref: Assign rmports to greenpak group  
							
							... 
							
							
							
							Also tidy `#include`s. 
							
						 
						
							2025-07-21 10:35:57 +12:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Martin Povišer 
								
							 
						 
						
							
							
							
							
								
							
							
								22a44e4333 
								
							 
						 
						
							
							
								
								Start opt_hier  
							
							
							
						 
						
							2025-07-05 16:45:52 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									George Rennie 
								
							 
						 
						
							
							
							
							
								
							
							
								8c38e2081d 
								
							 
						 
						
							
							
								
								opt_dff: don't emit cells until all have been visited to prevent UAF  
							
							
							
						 
						
							2025-06-06 23:46:07 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									George Rennie 
								
							 
						 
						
							
							
							
							
								
							
							
								19cdbc5a0c 
								
							 
						 
						
							
							
								
								opt_dff: don't remove cells until all have been visited to prevent UAF  
							
							
							
						 
						
							2025-06-04 21:02:21 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									George Rennie 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								6331f92d00 
								
							 
						 
						
							
							
								
								Merge pull request  #5101  from georgerennie/george/opt_expr_shift_ovfl  
							
							... 
							
							
							
							opt_expr: fix shift optimization with overflowing shift amount 
							
						 
						
							2025-05-22 15:16:19 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								3823157c25 
								
							 
						 
						
							
							
								
								Merge pull request  #5080  from akashlevy/muldiv_c  
							
							... 
							
							
							
							Add `muldiv_c` peepopt 
							
						 
						
							2025-05-15 11:03:25 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									George Rennie 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								748600c167 
								
							 
						 
						
							
							
								
								small whitespace cleanup ( #5119 )  
							
							
							
						 
						
							2025-05-14 15:18:57 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									George Rennie 
								
							 
						 
						
							
							
							
							
								
							
							
								0dcd94b6ad 
								
							 
						 
						
							
							
								
								opt_expr: saturate shift amount instead of overflowing for large shifts  
							
							
							
						 
						
							2025-05-07 14:41:13 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Akash Levy 
								
							 
						 
						
							
							
							
							
								
							
							
								4bd91fbb11 
								
							 
						 
						
							
							
								
								Add muldiv_c peepopt pass  
							
							
							
						 
						
							2025-04-30 08:06:59 -07:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									George Rennie 
								
							 
						 
						
							
							
							
							
								
							
							
								c952ab417f 
								
							 
						 
						
							
							
								
								opt_expr: only sign extend shift arguments for arithmetic right shift  
							
							
							
						 
						
							2025-04-26 12:40:04 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jannis Harder 
								
							 
						 
						
							
							
							
							
								
							
							
								4b273a4ae9 
								
							 
						 
						
							
							
								
								share: Cleanup and additional testing  
							
							... 
							
							
							
							Fixes a typo and adds another test case that triggers the fallback
behavior as the existing tests all trigger the new optimization. 
							
						 
						
							2025-04-15 12:34:46 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jannis Harder 
								
							 
						 
						
							
							
							
							
								
							
							
								7593b5b224 
								
							 
						 
						
							
							
								
								share: Only print optimized activation patterns when different  
							
							... 
							
							
							
							This removes redundant information from the log and makes it easier to
spot where the new optimization had an effect. 
							
						 
						
							2025-04-15 12:34:46 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jannis Harder 
								
							 
						 
						
							
							
							
							
								
							
							
								27ed77ea24 
								
							 
						 
						
							
							
								
								share: Keep filtered activation patterns for the supercell  
							
							... 
							
							
							
							The previous commit introduced code that optimizes the activation
patterns to be able to generate smaller activation logic. The resulting
supercell was then enqueued as shareable using those optimized
activation patterns. The condition represented by the optimized patterns
is an over-approximation of the actual activiation condition. This means
using it as activiation for the supercell loses precision and pessimises
sharing of the supercell with further cells, breaking the sat/share
test.
This commit fixes that by using the optimized activiation patterns only
for the generation of activation logic and using the original patterns
for enqueuing the supercell. 
							
						 
						
							2025-04-15 12:34:46 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jannis Harder 
								
							 
						 
						
							
							
							
							
								
							
							
								6dff9e7787 
								
							 
						 
						
							
							
								
								share: Restrict activation patterns to potentially relevant signals  
							
							... 
							
							
							
							In case the two sets of activation patterns are mutually exclusive
without considering the logic feeding into the activation signals, an
activation condition can only be relevant if present in both sets with
opposite polarity.
This detects pattern-only mutual exclusion by running an additional SAT
query before importing the input cone logic. If that is already UNSAT,
we remove all non-relevant condition and re-simplify the remaining
patterns.
In cases of pattern-only mutual exclusion, this will often produce much
smaller selection logic and avoid the more costly SAT query that
includes the input cones. 
							
						 
						
							2025-04-15 12:34:46 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Martin Povišer 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								38beae1e06 
								
							 
						 
						
							
							
								
								Merge pull request  #4946  from povik/cost-cc-enhance  
							
							... 
							
							
							
							cost: Add `$mem_v2`, `$macc_v2` estimates 
							
						 
						
							2025-04-14 11:08:59 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Krystine Sherwin 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								cd3b914132 
								
							 
						 
						
							
							
								
								Reinstate  #4768  
							
							... 
							
							
							
							Revert the reversion so that we can fix the bugs that the PR missed. 
							
						 
						
							2025-04-08 11:58:05 +12:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Krystine Sherwin 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								406b400458 
								
							 
						 
						
							
							
								
								opt_expr:  Fix   #4590  
							
							... 
							
							
							
							If all the (non-select) inputs of a `$_MUX{4,8,16}_` are undefined, replace it, just like we do for `$mux` and `$_MUX_`.
Add `tests/opt/opt_expr_mux_undef.ys` to verify this.
This doesn't do any const folding on the wide muxes, or shrinking to less wide muxes.  It only handles the case where all inputs are 'x and the mux can be completely removed. 
							
						 
						
							2025-04-04 12:25:31 +13:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Anhijkt 
								
							 
						 
						
							
							
							
							
								
							
							
								6b5507139e 
								
							 
						 
						
							
							
								
								opt_expr: requsted changes  
							
							
							
						 
						
							2025-04-01 20:37:22 +03:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Anhijkt 
								
							 
						 
						
							
							
							
							
								
							
							
								83b095ab6c 
								
							 
						 
						
							
							
								
								opt_expr: optimize pow of 2 cells  
							
							
							
						 
						
							2025-03-30 15:43:41 +03:00