From 019b3015418aaf848313ca05ce1ac59df1715052 Mon Sep 17 00:00:00 2001
From: Clifford Wolf <clifford@clifford.at>
Date: Sun, 24 Nov 2013 19:40:23 +0100
Subject: [PATCH] Early wire/reg/parameter width calculation in ast/simplify

---
 frontends/ast/simplify.cc | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/frontends/ast/simplify.cc b/frontends/ast/simplify.cc
index a3518ff03..80cf230e6 100644
--- a/frontends/ast/simplify.cc
+++ b/frontends/ast/simplify.cc
@@ -212,6 +212,11 @@ bool AstNode::simplify(bool const_fold, bool at_zero, bool in_lvalue, int stage,
 				current_scope[node->str] = node;
 			}
 		}
+		for (size_t i = 0; i < children.size(); i++) {
+			AstNode *node = children[i];
+			if (node->type == AST_PARAMETER || node->type == AST_LOCALPARAM || node->type == AST_WIRE || node->type == AST_AUTOWIRE)
+				while (node->simplify(true, false, false, 1, -1, false)) { }
+		}
 	}
 
 	auto backup_current_block = current_block;