Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								a8ff020829 
								
							 
						 
						
							
							
								
								Deprecate RTLIL::id2cstr()  
							
							
							
						 
						
							2025-09-16 23:40:35 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jannis Harder 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								b95549b469 
								
							 
						 
						
							
							
								
								Merge pull request  #5348  from rocallahan/remove-string_buf  
							
							... 
							
							
							
							Remove `string_buf` by making `log_signal()` and `log_const()` return `std::string` 
							
						 
						
							2025-09-16 20:20:56 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								8cc86b2643 
								
							 
						 
						
							
							
								
								Update passes/techmap to avoid bits()  
							
							
							
						 
						
							2025-09-16 03:17:23 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								8492c49f6c 
								
							 
						 
						
							
							
								
								Remove string_buf by making log_signal() and log_const() return std::string  
							
							... 
							
							
							
							We only have to fix one caller in-tree so this probably has very low impact on out-of-tree plugins.
Resolves  #5215  
							
						 
						
							2025-09-16 03:06:17 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								ae0ca7578a 
								
							 
						 
						
							
							
								
								Use a pool of ABC processes.  
							
							... 
							
							
							
							Doing ABC runs in parallel can actually make things slower when every ABC run requires
spawning an ABC subprocess --- especially when using popen(), which on glibc does not
use vfork(). What seems to happen is that constant fork()ing keeps making the main
process data pages copy-on-write, so the main process code that is setting up each ABC
call takes a lot of minor page-faults, slowing it down.
The solution is pretty straightforward although a little tricky to implement.
We just reuse ABC subprocesses. Instead of passing the ABC script name on the command
line, we spawn an ABC REPL and pipe a command into it to source the script. When that's
done we echo an `ABC_DONE` token instead of exiting. Yosys then puts the ABC process
onto a stack which we can pull from the next time we do an ABC run.
For one of our large designs, this is an additional 5x speedup of the primary AbcPass.
It does 5155 ABC runs, all very small; runtime of the AbcPass goes from 760s to 149s
(not very scientific benchmarking but the effect size is large). 
							
						 
						
							2025-09-15 17:22:15 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								27462da208 
								
							 
						 
						
							
							
								
								Run ABCs in parallel.  
							
							... 
							
							
							
							Large circuits can run hundreds or thousands of ABCs in a single AbcPass.
For some circuits, some of those ABC runs can run for hundreds of seconds.
Running ABCs in parallel with each other and in parallel with main-thread
processing (reading and writing BLIF files, copying ABC BLIF output into
the design) can give large speedups. 
							
						 
						
							2025-09-15 17:18:42 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								38f8165c80 
								
							 
						 
						
							
							
								
								Remove direct RTLIL access from gate_t  
							
							
							
						 
						
							2025-09-15 17:10:20 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								222f457a04 
								
							 
						 
						
							
							
								
								Only write out stdcells/lutcosts once for all ABC runs  
							
							
							
						 
						
							2025-09-15 17:10:07 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								13b3418a7f 
								
							 
						 
						
							
							
								
								Split abc_module() into prepare_module() and run_abc()  
							
							... 
							
							
							
							`prepare_module()` will have to run on the main thread. 
							
						 
						
							2025-09-15 17:01:25 +02: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 
								
							 
						 
						
							
							
							
							
								
							
							
								d34ac0c87d 
								
							 
						 
						
							
							
								
								Make log() use the FmtString infrastructure.  
							
							... 
							
							
							
							Now `log()` supports `std::string`.
We have to fix a few places where the format parameter was not a compile time constant.
This is mostly trivial. 
							
						 
						
							2025-09-09 15:41:03 +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 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Mohamed Gaber 
								
							 
						 
						
							
							
							
							
								
							
							
								ae8c4e2ea6 
								
							 
						 
						
							
							
								
								libparse/filterlib: mark LibertyParser::error() as weak  
							
							... 
							
							
							
							When FILTERLIB is defined (attempts to compile libparse more or less standalone,) mark the `LibertyParser::error()` as weak so utilities using libparse as a library can override its behavior (the default behavior being exit(1)). As the code is quite performance-critical, I've elected to not modify it to raise an exception or have a callback or similar and simply allow for a link-time replacement. 
							
						 
						
							2025-09-05 00:13:45 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								c7df6954b9 
								
							 
						 
						
							
							
								
								Remove .c_str() from stringf parameters  
							
							
							
						 
						
							2025-09-01 23:34:42 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								62c441107d 
								
							 
						 
						
							
							
								
								Build FfInitVals for the entire module once and use it for every ABC run.  
							
							
							
						 
						
							2025-08-14 22:29:51 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								2654bd5355 
								
							 
						 
						
							
							
								
								Compute is_port in AbcPass without iterating through all cells and wires in the module every time we run ABC.  
							
							... 
							
							
							
							This does not scale when we run ABC thousands of times in a single AbcPass. 
							
						 
						
							2025-08-14 22:29:45 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								ac8259b02e 
								
							 
						 
						
							
							
								
								Preserve assign_map across ABC invocations.  
							
							... 
							
							
							
							Currently `assign_map` is rebuilt from the module from scratch every time we invoke ABC.
That doesn't scale when we do thousands of ABC runs over large modules. Instead,
create it once and then maintain incrementally it as we update the module. 
							
						 
						
							2025-08-14 22:27:04 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								4de3ee093e 
								
							 
						 
						
							
							
								
								Mark kept FF output wires as ports directly instead of via the 'keep' attribute  
							
							
							
						 
						
							2025-08-14 22:26:38 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								ccb23ffc1a 
								
							 
						 
						
							
							
								
								Fix indentation  
							
							
							
						 
						
							2025-08-13 05:44:52 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								885bb744e3 
								
							 
						 
						
							
							
								
								Make module a parameter of the function so we can change its constness in context  
							
							
							
						 
						
							2025-08-13 05:44:52 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								53c72c0d39 
								
							 
						 
						
							
							
								
								Move code in abc_module() that modifies the design into a new function extract()  
							
							... 
							
							
							
							Splits up the big `abc_module()` function and isolates the code that modifies the design
after running ABC. 
							
						 
						
							2025-08-13 05:44:52 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								ceedcecfae 
								
							 
						 
						
							
							
								
								Move the input parameters to abc_module that are identical across modules to an AbcConfig struct.  
							
							
							
						 
						
							2025-08-13 05:44:52 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								4ba42c4752 
								
							 
						 
						
							
							
								
								Move ABC pass state to a struct instead of storing it in global variables.  
							
							
							
						 
						
							2025-08-13 05:44:52 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Krystine Sherwin 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								3959d19291 
								
							 
						 
						
							
							
								
								Reapply "Add groups to command reference"  
							
							... 
							
							
							
							This reverts commit 81f87ce6ed 
							
						 
						
							2025-08-06 13:52:12 +12:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Drew Lewis 
								
							 
						 
						
							
							
							
							
								
							
							
								d9b3a3f7bb 
								
							 
						 
						
							
							
								
								Improve the performance of concat_name in the flattening pass  
							
							... 
							
							
							
							- Make IdString parameter pass by const ref to avoid IdString ref counting in the constructor
- Remove extra std::string allocation to remove prefix
- Avoid using `stringf` for concatenation 
							
						 
						
							2025-07-29 10:52:32 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									N. Engelhardt 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								81f87ce6ed 
								
							 
						 
						
							
							
								
								Revert "Add groups to command reference"  
							
							
							
						 
						
							2025-07-23 14:41:49 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Krystine Sherwin 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								3eb7b35c29 
								
							 
						 
						
							
							
								
								flatten: Move to hierarchy folder  
							
							
							
						 
						
							2025-07-21 10:36:19 +12:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J. Tywoniak 
								
							 
						 
						
							
							
							
							
								
							
							
								21e68ec9be 
								
							 
						 
						
							
							
								
								libparse: fix space ANDs  
							
							
							
						 
						
							2025-07-15 12:53:13 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J. Tywoniak 
								
							 
						 
						
							
							
							
							
								
							
							
								bf1f236998 
								
							 
						 
						
							
							
								
								dfflibmap: add back tab and quote filters for good vibes  
							
							
							
						 
						
							2025-07-11 23:12:58 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J. Tywoniak 
								
							 
						 
						
							
							
							
							
								
							
							
								c6e1d461fa 
								
							 
						 
						
							
							
								
								libparse: support space ANDs  
							
							
							
						 
						
							2025-07-11 23:09:30 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J. Tywoniak 
								
							 
						 
						
							
							
							
							
								
							
							
								4b1a8a3b66 
								
							 
						 
						
							
							
								
								libparse: add LibertyExpression::str for testing  
							
							
							
						 
						
							2025-07-11 18:27:19 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								14aad097f0 
								
							 
						 
						
							
							
								
								Merge pull request  #5190  from YosysHQ/emil/dfflibmap-fix-negated-next_state  
							
							... 
							
							
							
							dfflibmap: propagate negated next_state to output correctly 
							
						 
						
							2025-07-10 19:50:02 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J. Tywoniak 
								
							 
						 
						
							
							
							
							
								
							
							
								ad80e2bd39 
								
							 
						 
						
							
							
								
								libparse: install headers for use in plugins  
							
							
							
						 
						
							2025-07-08 13:39:03 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Miodrag Milanović 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								54013c6da7 
								
							 
						 
						
							
							
								
								Merge pull request  #5162  from YosysHQ/micko/attrmap  
							
							... 
							
							
							
							Make attrmap able to alter memory attributes as well 
							
						 
						
							2025-06-30 15:24:04 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J. Tywoniak 
								
							 
						 
						
							
							
							
							
								
							
							
								778079b058 
								
							 
						 
						
							
							
								
								dfflibmap: propagate negated next_state to output correctly  
							
							
							
						 
						
							2025-06-24 12:01:12 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Krystine Sherwin 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								beaca05b40 
								
							 
						 
						
							
							
								
								Include boxes in attrmap  
							
							... 
							
							
							
							Rename `selected_members` iterator to memb.
Add comment on `selected_processes` loop for clarity. 
							
						 
						
							2025-06-21 09:49:56 +12:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Miodrag Milanovic 
								
							 
						 
						
							
							
							
							
								
							
							
								784de0f6e3 
								
							 
						 
						
							
							
								
								Make attrmap able to alter memory attributes as well  
							
							
							
						 
						
							2025-06-04 08:01:21 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Krystine Sherwin 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								785cabcb0f 
								
							 
						 
						
							
							
								
								abc9_ops: Skip opt_expr in proc  
							
							
							
						 
						
							2025-05-31 12:16:37 +12:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Lofty 
								
							 
						 
						
							
							
							
							
								
							
							
								e4ab6acb46 
								
							 
						 
						
							
							
								
								Add genlib support to abc_new  
							
							
							
						 
						
							2025-05-27 09:47:29 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J. Tywoniak 
								
							 
						 
						
							
							
							
							
								
							
							
								2ca2ecaa1c 
								
							 
						 
						
							
							
								
								libcache: fix help  
							
							
							
						 
						
							2025-05-09 12:40:45 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J. Tywoniak 
								
							 
						 
						
							
							
							
							
								
							
							
								0d621ecc11 
								
							 
						 
						
							
							
								
								libcache: add -quiet and -verbose  
							
							
							
						 
						
							2025-05-09 11:36:39 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J. Tywoniak 
								
							 
						 
						
							
							
							
							
								
							
							
								adb1986dc1 
								
							 
						 
						
							
							
								
								gzip: refactor file open failure errors  
							
							
							
						 
						
							2025-04-29 10:37:35 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Mike Inouye 
								
							 
						 
						
							
							
							
							
								
							
							
								b7d7b377fd 
								
							 
						 
						
							
							
								
								Detect FF functions that use parentheses.  
							
							... 
							
							
							
							Signed-off-by: Mike Inouye <mikeinouye@google.com> 
							
						 
						
							2025-04-22 23:26:55 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									N. Engelhardt 
								
							 
						 
						
							
							
							
							
								
							
							
								5db1765bee 
								
							 
						 
						
							
							
								
								add flatten -nocleanup option  
							
							
							
						 
						
							2025-04-17 18:17:42 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jannis Harder 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								7f7ad87b7b 
								
							 
						 
						
							
							
								
								Merge pull request  #5033  from jix/liberty-fixes  
							
							... 
							
							
							
							liberty: More robust parsing 
							
						 
						
							2025-04-17 09:24:42 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									KrystalDelusion 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								026d161f91 
								
							 
						 
						
							
							
								
								Merge pull request  #4923  from KelvinChung2000/const-wrap  
							
							... 
							
							
							
							feat: Allow full constant wrapping for hilomap 
							
						 
						
							2025-04-17 10:16:59 +12:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jannis Harder 
								
							 
						 
						
							
							
							
							
								
							
							
								ce74404890 
								
							 
						 
						
							
							
								
								liberty: Error on unclosed curly braces  
							
							... 
							
							
							
							This is an indication that the liberty file was truncated, which
shouldn't be silently ignored. 
							
						 
						
							2025-04-16 19:12:01 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jannis Harder 
								
							 
						 
						
							
							
							
							
								
							
							
								418e795235 
								
							 
						 
						
							
							
								
								liberty: Error when a read liberty file has no nodes  
							
							
							
						 
						
							2025-04-16 19:03:05 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jannis Harder 
								
							 
						 
						
							
							
							
							
								
							
							
								5101b9fcba 
								
							 
						 
						
							
							
								
								liberty: Fix handling of non-ascii characters  
							
							... 
							
							
							
							Use an `unsigned char` buffer to ensure characters cast to an `int` are
in the range 0 <= c <= 255. 
							
						 
						
							2025-04-16 18:52:49 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Miodrag Milanović 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								9f25f972dc 
								
							 
						 
						
							
							
								
								Merge pull request  #5008  from donn/wheel_builds_fix  
							
							... 
							
							
							
							wheels: fix builds, add linux aarch64 to ci 
							
						 
						
							2025-04-14 15:10:37 +02:00