mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-30 19:22:31 +00:00 
			
		
		
		
	Use default copy constructor for RTLIL::SigBit
There was a handwritten copy constructor, which I'm not sure was actually legal C++ (it unconditionally read from the 'data' member of a union, which wouldn't have been written if wire was true). It was also a bit less efficient than the constructor you get from the compiler by default (which is allowed to just copy the memory). This gives a marginal (~0.25%) decrease in code size when compiled with GCC 9.3.
This commit is contained in:
		
							parent
							
								
									a7f2ef6d34
								
							
						
					
					
						commit
						17b5f23f20
					
				
					 1 changed files with 1 additions and 2 deletions
				
			
		|  | @ -721,7 +721,7 @@ struct RTLIL::SigBit | |||
| 	SigBit(const RTLIL::SigChunk &chunk); | ||||
| 	SigBit(const RTLIL::SigChunk &chunk, int index); | ||||
| 	SigBit(const RTLIL::SigSpec &sig); | ||||
| 	SigBit(const RTLIL::SigBit &sigbit); | ||||
| 	SigBit(const RTLIL::SigBit &sigbit) = default; | ||||
| 	RTLIL::SigBit &operator =(const RTLIL::SigBit &other) = default; | ||||
| 
 | ||||
| 	bool operator <(const RTLIL::SigBit &other) const; | ||||
|  | @ -1494,7 +1494,6 @@ inline RTLIL::SigBit::SigBit(RTLIL::Wire *wire) : wire(wire), offset(0) { log_as | |||
| inline RTLIL::SigBit::SigBit(RTLIL::Wire *wire, int offset) : wire(wire), offset(offset) { log_assert(wire != nullptr); } | ||||
| inline RTLIL::SigBit::SigBit(const RTLIL::SigChunk &chunk) : wire(chunk.wire) { log_assert(chunk.width == 1); if (wire) offset = chunk.offset; else data = chunk.data[0]; } | ||||
| inline RTLIL::SigBit::SigBit(const RTLIL::SigChunk &chunk, int index) : wire(chunk.wire) { if (wire) offset = chunk.offset + index; else data = chunk.data[index]; } | ||||
| inline RTLIL::SigBit::SigBit(const RTLIL::SigBit &sigbit) : wire(sigbit.wire), data(sigbit.data){ if (wire) offset = sigbit.offset; } | ||||
| 
 | ||||
| inline bool RTLIL::SigBit::operator<(const RTLIL::SigBit &other) const { | ||||
| 	if (wire == other.wire) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue