mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 03:32:29 +00:00 
			
		
		
		
	cxxrtl: mark dead local wires as unused even with inlining disabled.
Fixes #2739.
This commit is contained in:
		
							parent
							
								
									1aab608cff
								
							
						
					
					
						commit
						54b6cb645f
					
				
					 1 changed files with 6 additions and 4 deletions
				
			
		|  | @ -2733,12 +2733,14 @@ struct CxxrtlWorker { | ||||||
| 			for (auto wire : module->wires()) { | 			for (auto wire : module->wires()) { | ||||||
| 				auto &wire_type = wire_types[wire]; | 				auto &wire_type = wire_types[wire]; | ||||||
| 				if (!wire_type.is_local()) continue; | 				if (!wire_type.is_local()) continue; | ||||||
| 				if (!wire->name.isPublic() && !inline_internal) continue; |  | ||||||
| 				if (wire->name.isPublic() && !inline_public) continue; |  | ||||||
| 
 |  | ||||||
| 				if (live_wires[wire].empty()) { | 				if (live_wires[wire].empty()) { | ||||||
| 					wire_type = {WireType::UNUSED}; // wire never used
 | 					wire_type = {WireType::UNUSED}; // wire never used
 | ||||||
| 				} else if (flow.is_inlinable(wire, live_wires[wire])) { | 					continue; | ||||||
|  | 				} | ||||||
|  | 
 | ||||||
|  | 				if (!wire->name.isPublic() && !inline_internal) continue; | ||||||
|  | 				if (wire->name.isPublic() && !inline_public) continue; | ||||||
|  | 				if (flow.is_inlinable(wire, live_wires[wire])) { | ||||||
| 					if (flow.wire_comb_defs[wire].size() > 1) | 					if (flow.wire_comb_defs[wire].size() > 1) | ||||||
| 						log_cmd_error("Wire %s.%s has multiple drivers!\n", log_id(module), log_id(wire)); | 						log_cmd_error("Wire %s.%s has multiple drivers!\n", log_id(module), log_id(wire)); | ||||||
| 					log_assert(flow.wire_comb_defs[wire].size() == 1); | 					log_assert(flow.wire_comb_defs[wire].size() == 1); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue