mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-03 21:09:12 +00:00 
			
		
		
		
	Approximately double the max hash table size
This commit is contained in:
		
							parent
							
								
									cbb95cb517
								
							
						
					
					
						commit
						1ae0d8432f
					
				
					 1 changed files with 4 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -324,10 +324,10 @@ template<typename T> struct hash_ops<std::optional<T>> {
 | 
			
		|||
	}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
inline int hashtable_size(int min_size)
 | 
			
		||||
inline unsigned int hashtable_size(unsigned int min_size)
 | 
			
		||||
{
 | 
			
		||||
	// Primes as generated by https://oeis.org/A175953
 | 
			
		||||
	static std::vector<int> zero_and_some_primes = {
 | 
			
		||||
	static std::vector<unsigned int> zero_and_some_primes = {
 | 
			
		||||
		0, 23, 29, 37, 47, 59, 79, 101, 127, 163, 211, 269, 337, 431, 541, 677,
 | 
			
		||||
		853, 1069, 1361, 1709, 2137, 2677, 3347, 4201, 5261, 6577, 8231, 10289,
 | 
			
		||||
		12889, 16127, 20161, 25219, 31531, 39419, 49277, 61603, 77017, 96281,
 | 
			
		||||
| 
						 | 
				
			
			@ -337,13 +337,13 @@ inline int hashtable_size(int min_size)
 | 
			
		|||
		25499291, 31874149, 39842687, 49803361, 62254207, 77817767, 97272239,
 | 
			
		||||
		121590311, 151987889, 189984863, 237481091, 296851369, 371064217,
 | 
			
		||||
		463830313, 579787991, 724735009, 905918777, 1132398479, 1415498113,
 | 
			
		||||
		1769372713
 | 
			
		||||
		1769372713, 2211715897, 2764644871, 2764644887, 3455806139
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	for (auto p : zero_and_some_primes)
 | 
			
		||||
		if (p >= min_size) return p;
 | 
			
		||||
 | 
			
		||||
	if (sizeof(int) == 4)
 | 
			
		||||
	if (sizeof(unsigned int) == 4)
 | 
			
		||||
		throw std::length_error("hash table exceeded maximum size.\nDesign is likely too large for yosys to handle, if possible try not to flatten the design.");
 | 
			
		||||
 | 
			
		||||
	for (auto p : zero_and_some_primes)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue