mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-30 19:22:31 +00:00 
			
		
		
		
	Change implicit conversions from bool to Sig* to explicit.
Also fixes some completely broken code in extract_reduce.
This commit is contained in:
		
							parent
							
								
									51d42cc917
								
							
						
					
					
						commit
						5cebf6a8ef
					
				
					 2 changed files with 8 additions and 6 deletions
				
			
		|  | @ -756,7 +756,7 @@ struct RTLIL::SigBit | |||
| 
 | ||||
| 	SigBit(); | ||||
| 	SigBit(RTLIL::State bit); | ||||
| 	SigBit(bool bit); | ||||
| 	explicit SigBit(bool bit); | ||||
| 	SigBit(RTLIL::Wire *wire); | ||||
| 	SigBit(RTLIL::Wire *wire, int offset); | ||||
| 	SigBit(const RTLIL::SigChunk &chunk); | ||||
|  | @ -838,7 +838,7 @@ public: | |||
| 	SigSpec(const std::vector<RTLIL::SigBit> &bits); | ||||
| 	SigSpec(const pool<RTLIL::SigBit> &bits); | ||||
| 	SigSpec(const std::set<RTLIL::SigBit> &bits); | ||||
| 	SigSpec(bool bit); | ||||
| 	explicit SigSpec(bool bit); | ||||
| 
 | ||||
| 	SigSpec(RTLIL::SigSpec &&other) { | ||||
| 		width_ = other.width_; | ||||
|  |  | |||
|  | @ -152,10 +152,10 @@ struct ExtractReducePass : public Pass | |||
| 						log_assert(y.size() == 1); | ||||
| 
 | ||||
| 						// Should only continue if there is one fanout back into a cell (not to a port)
 | ||||
| 						if (sig_to_sink[y[0]].size() != 1) | ||||
| 						if (sig_to_sink[y].size() != 1 || port_sigs.count(y)) | ||||
| 							break; | ||||
| 
 | ||||
| 						x = *sig_to_sink[y[0]].begin(); | ||||
| 						x = *sig_to_sink[y].begin(); | ||||
| 					} | ||||
| 
 | ||||
| 					sinks.insert(head_cell); | ||||
|  | @ -183,13 +183,15 @@ struct ExtractReducePass : public Pass | |||
| 								continue; | ||||
| 							} | ||||
| 
 | ||||
| 							auto xy = sigmap(x->getPort(ID::Y)); | ||||
| 
 | ||||
| 							//If this signal drives a port, add it to the sinks
 | ||||
| 							//(even though it may not be the end of a chain)
 | ||||
| 							if(port_sigs.count(x) && !consumed_cells.count(x)) | ||||
| 							if(port_sigs.count(xy) && !consumed_cells.count(x)) | ||||
| 								sinks.insert(x); | ||||
| 
 | ||||
| 							//It's a match, search everything out from it
 | ||||
| 							auto& next = sig_to_sink[x]; | ||||
| 							auto& next = sig_to_sink[xy]; | ||||
| 							for(auto z : next) | ||||
| 								next_loads.insert(z); | ||||
| 						} | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue