Jannis Harder 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								dd9627ed05 
								
							 
						 
						
							
							
								
								Merge pull request  #5336  from rocallahan/remove-log-cstr  
							
							... 
							
							
							
							Remove `.c_str()` calls from `log()`/`log_error()` 
							
						 
						
							2025-09-12 14:09:48 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								b98e54416f 
								
							 
						 
						
							
							
								
								When looking up the IdString table, it can never be empty after we've called prepopulate, so remove some dead code.  
							
							
							
						 
						
							2025-09-12 05:29:22 +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 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								201c40072c 
								
							 
						 
						
							
							
								
								Merge pull request  #5327  from YosysHQ/emil/do_insert-dont-build-new-hash  
							
							... 
							
							
							
							hashlib: don't build an unused hash for expired value in do_insert 
							
						 
						
							2025-09-09 21:53:39 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jannis Harder 
								
							 
						 
						
							
							
							
							
								
							
							
								75a97241fa 
								
							 
						 
						
							
							
								
								Maintain logging ABI compatiblity with YosysHQ Verific Extensions  
							
							... 
							
							
							
							The YosysHQ Verific Extensions are compiled separately using their own
stripped-down version of the Yosys headers. To maintain ABI
compatibility with older extension builds post C++-ification of Yosys's
logging APIs, which are backwards compatible on the API but not ABI
level, this commit adds ABI compatible versions of a subset of the old
logging API used by the extensions. 
							
						 
						
							2025-09-09 15:41:03 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								a137d03c32 
								
							 
						 
						
							
							
								
								Make log_cmd_error() use variadic templates.  
							
							
							
						 
						
							2025-09-09 15:41:03 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								243f5f5201 
								
							 
						 
						
							
							
								
								Make log_file_error() use variadic templates.  
							
							
							
						 
						
							2025-09-09 15:41:03 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								974455378b 
								
							 
						 
						
							
							
								
								Make log_error() use variadic templates.  
							
							
							
						 
						
							2025-09-09 15:41:03 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								c3924d0616 
								
							 
						 
						
							
							
								
								Move log_abort()'s call to log_error() into an out-of-line non-varargs function  
							
							
							
						 
						
							2025-09-09 15:41:03 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								1b5373de0d 
								
							 
						 
						
							
							
								
								Move log_assert_worker()'s call to log_error() into an out-of-line non-varags function  
							
							
							
						 
						
							2025-09-09 15:41:03 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								ea2bb5b79a 
								
							 
						 
						
							
							
								
								Make log_file_info() use variadic templates.  
							
							
							
						 
						
							2025-09-09 15:41:03 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								ec5f62e6d4 
								
							 
						 
						
							
							
								
								Make log_file_warning() use variadic templates.  
							
							
							
						 
						
							2025-09-09 15:41:03 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								2a2c586e2c 
								
							 
						 
						
							
							
								
								Make log_experimental() just take an std::string, since it doesn't need to be varargs.  
							
							
							
						 
						
							2025-09-09 15:41:03 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								25cba6181e 
								
							 
						 
						
							
							
								
								Make log_warning()/log_warning_noprefix() use variadic templates.  
							
							
							
						 
						
							2025-09-09 15:41:03 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								66d2c2af08 
								
							 
						 
						
							
							
								
								Make log_header() use variadic templates.  
							
							
							
						 
						
							2025-09-09 15:41:03 +02: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 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								3f69a768f4 
								
							 
						 
						
							
							
								
								Hide public logv_ variant declarations that don't need to be public  
							
							
							
						 
						
							2025-09-09 15:41:03 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jannis Harder 
								
							 
						 
						
							
							
							
							
								
							
							
								0116dc4384 
								
							 
						 
						
							
							
								
								Add windows workaround to constids.inc  
							
							
							
						 
						
							2025-09-09 10:04:08 +12:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jannis Harder 
								
							 
						 
						
							
							
							
							
								
							
							
								6498265eb0 
								
							 
						 
						
							
							
								
								Add macOS workaround to constids.inc  
							
							... 
							
							
							
							The ID(OVERFLOW) IdString isn't used widely enough that we require a
statically allocated IdString, but I think it's good to have an example
workaround in place in case more collisions come up. 
							
						 
						
							2025-09-09 10:04:08 +12:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jannis Harder 
								
							 
						 
						
							
							
							
							
								
							
							
								9213bc5d54 
								
							 
						 
						
							
							
								
								Update kernel/constids.inc to include all literal ids  
							
							... 
							
							
							
							I've used this shell command to obtain the list:
    rg -I -t cpp -t yacc -o \
        'ID\((\$?[a-zA-Z0-9_]+)\)|ID::($?[a-zA-Z0-9_]+)' -r 'X($1$2)' \
        | LC_ALL=C sort -u
This removed the entries X(_TECHMAP_FAIL_) and X(nomem2init). 
							
						 
						
							2025-09-09 09:56:55 +12:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jannis Harder 
								
							 
						 
						
							
							
							
							
								
							
							
								a97381448a 
								
							 
						 
						
							
							
								
								Ensure static IdStrings get prepopulated when initializing yosys  
							
							... 
							
							
							
							An alternative would be to call ensure_prepopulated() in various
IdString methods. 
							
						 
						
							2025-09-09 09:56:55 +12:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jannis Harder 
								
							 
						 
						
							
							
							
							
								
							
							
								b6db32873d 
								
							 
						 
						
							
							
								
								Add IdString const &id_string() const to StaticIdString and IdString  
							
							... 
							
							
							
							The vast majority of ID(...) uses are in a context that is overloaded
for StaticIdString or will cause implicit conversion to an IdString
constant reference. For some sufficently overloaded contexts, implicit
conversion may fail, so it's useful to have a method to force obtaining
a `IdString const &` from an ID(...) use.
When turning all literal IdStrings of the codebase into StaticIdStrings
this was needed in exactly one place, for which this commit adds an
`id_string()` call. 
							
						 
						
							2025-09-09 09:56:55 +12:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jannis Harder 
								
							 
						 
						
							
							
							
							
								
							
							
								3ebecb631c 
								
							 
						 
						
							
							
								
								Add a compile time check that kernel/constids.inc is sorted  
							
							... 
							
							
							
							This is an invariant now required by the ID macro, so it's better to
have an actual check and not rely on a comment at the top of
kernel/constids.inc. 
							
						 
						
							2025-09-09 09:56:55 +12:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jannis Harder 
								
							 
						 
						
							
							
							
							
								
							
							
								2a4a9aedfe 
								
							 
						 
						
							
							
								
								Ensure the ID macro consistently uses YOSYS_NAMESPACE_PREFIX  
							
							... 
							
							
							
							The previous version of the ID macro used this for everything in the
Yosys namespace, so the new version should continue to do so. 
							
						 
						
							2025-09-09 09:56:55 +12:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								23af52c3c8 
								
							 
						 
						
							
							
								
								Use well-known constants in ID macro and make the constant values known at compile time  
							
							
							
						 
						
							2025-09-09 09:56:55 +12: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 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J. Tywoniak 
								
							 
						 
						
							
							
							
							
								
							
							
								ccf140f2ef 
								
							 
						 
						
							
							
								
								hashlib: don't build an unused hash for expired value in do_insert  
							
							
							
						 
						
							2025-09-04 14:47:45 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								030e5ec438 
								
							 
						 
						
							
							
								
								Make IdString hashing take a reference to the IdString instead of copying it  
							
							
							
						 
						
							2025-09-04 14:17:08 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								ddf7ba5a34 
								
							 
						 
						
							
							
								
								Make ID() macro return a reference to the underlying IdString instead of copying it  
							
							... 
							
							
							
							Lambda return type deduction infers `IdString` here. 
							
						 
						
							2025-09-04 14:17:08 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								b2ccfb2d0e 
								
							 
						 
						
							
							
								
								Make in() variadic operator take parameters by reference so we don't copy IdStrings  
							
							... 
							
							
							
							Template argument deduction strips references. 
							
						 
						
							2025-09-04 14:17:08 +02: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 
								
							 
						 
						
							
							
							
							
								
							
							
								41b6c0cb9f 
								
							 
						 
						
							
							
								
								Make CellTypes methods take IdString by reference to avoid refcount churn  
							
							
							
						 
						
							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 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								c41ba912d8 
								
							 
						 
						
							
							
								
								Support IdString parameters in stringf  
							
							
							
						 
						
							2025-09-01 23:34:42 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								2163b3ebe4 
								
							 
						 
						
							
							
								
								Merge pull request  #5313  from rocallahan/hash-ref  
							
							... 
							
							
							
							hash_ops should take all parameters by reference instead of requiring copies of vectors, tuples etc 
							
						 
						
							2025-08-25 16:31:36 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								a67a3ca49c 
								
							 
						 
						
							
							
								
								Merge pull request  #4497  from YosysHQ/emil/bitpattern-comments  
							
							... 
							
							
							
							bitpattern: comments 
							
						 
						
							2025-08-25 15:25:37 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								b5aa3ab9f7 
								
							 
						 
						
							
							
								
								hash_ops should take all parameters by reference instead of requiring copies of vectors, tuples etc  
							
							
							
						 
						
							2025-08-25 03:09:04 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								3a5742ffd2 
								
							 
						 
						
							
							
								
								Improve commutative hashing.  
							
							... 
							
							
							
							The simple XOR `commutative_eat()` implementation produces a lot of collisions.
https://www.preprints.org/manuscript/201710.0192/v1/download  is a useful reference on this topic.
Running the included `hashTest.cc` without the hashlib changes, I get 49,580,349 collisions.
The 49,995,000 (i,j) pairs (0 <= i < 10000, i < j < 10000) hash into only 414,651 unique hash values.
We get simple collisions like (0,1) colliding with (2,3).
With the hashlib changes, we get only 707,099 collisions and 49,287,901 unique hash values.
Much better! The `commutative_hash` implementation corresponds to `Sum(4)` in the paper
mentioned above. 
							
						 
						
							2025-08-19 21:45:52 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J. Tywoniak 
								
							 
						 
						
							
							
							
							
								
							
							
								6a2984540b 
								
							 
						 
						
							
							
								
								bitpattern: comments  
							
							
							
						 
						
							2025-08-18 19:57:45 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									KrystalDelusion 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								4a324e1da8 
								
							 
						 
						
							
							
								
								Merge pull request  #5292  from rocallahan/wasm-varargs  
							
							... 
							
							
							
							Fix vararg alignment 
							
						 
						
							2025-08-16 10:29:36 +12:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robert O'Callahan 
								
							 
						 
						
							
							
							
							
								
							
							
								6d62a1fff7 
								
							 
						 
						
							
							
								
								Fix vararg alignment  
							
							
							
						 
						
							2025-08-15 05:43:53 +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 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								fb024c4d55 
								
							 
						 
						
							
							
								
								Merge pull request  #5135  from YosysHQ/emil/ast-ownership  
							
							... 
							
							
							
							ast, read_verilog: ownership in AST, use C++ styles for parser and lexer 
							
						 
						
							2025-08-12 10:58:12 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Krystine Sherwin 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								1afe8d9f4d 
								
							 
						 
						
							
							
								
								celltypes: Comment pointing to ConstEval  
							
							... 
							
							
							
							`CellTypes::eval()` is more generic but also more limited.  `ConstEval::eval()` requires more setup (both in code and at runtime) but has more complete support. 
							
						 
						
							2025-08-12 10:57:59 +12:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Krystine Sherwin 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								db4ffaffd2 
								
							 
						 
						
							
							
								
								consteval: Fix $bwmux handling  
							
							... 
							
							
							
							If the cell type has a S signal and hasn't already been handled, use `CellTypes::eval(cell, A, B, S)`. 
							
						 
						
							2025-08-12 10:57:58 +12:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Krystine Sherwin 
								
							 
						 
						
							
							
								
								
							
							
							
								
							
							
								22aa9fba3b 
								
							 
						 
						
							
							
								
								test_cell: Support more cell types  
							
							... 
							
							
							
							Still unsupported:
- wide muxes (`$_MUX16_` and friends)
Partially supported types have comments in `test_cell.cc`.
Fix `CellTypes::eval() for `$_NMUX_`.
Fix `RTLIL::Cell::fixup_parameters()` for $concat, $bwmux and $bweqx. 
							
						 
						
							2025-08-12 10:57:58 +12:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J. Tywoniak 
								
							 
						 
						
							
							
							
							
								
							
							
								99ab73424d 
								
							 
						 
						
							
							
								
								verilog_location: rename location to Location to avoid conflict with Pass::location  
							
							
							
						 
						
							2025-08-11 13:34:10 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J 
								
							 
						 
						
							
							
							
							
								
							
							
								aedc237c7a 
								
							 
						 
						
							
							
								
								rtlil: remove comment  
							
							... 
							
							
							
							Co-authored-by: KrystalDelusion <93062060+KrystalDelusion@users.noreply.github.com> 
							
						 
						
							2025-08-11 13:34:10 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J. Tywoniak 
								
							 
						 
						
							
							
							
							
								
							
							
								ecec9a760b 
								
							 
						 
						
							
							
								
								ast, read_verilog: unify location types, reduce filename copying  
							
							
							
						 
						
							2025-08-11 13:34:10 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Emil J. Tywoniak 
								
							 
						 
						
							
							
							
							
								
							
							
								c8e0ac0c61 
								
							 
						 
						
							
							
								
								ast, read_verilog: ownership in AST, use C++ styles for parser and lexer  
							
							
							
						 
						
							2025-08-11 13:34:10 +02:00