Rework of parameter expression elaboration.

The compiler currently performs parameter expression elaboration before
performing parameter overrides. This means that the information needed
to correctly determine the expression type and width may not be available
at the time elaboration is performed. This patch reworks the code to
delay elaboration until after all overrides have been performed. It
also provides a new -g option that controls how the width of parameter
expressions is calculated when the parameter itself is unsized.
This commit is contained in:
Martin Whitaker
2010-12-06 14:56:50 -08:00
committed by Stephen Williams
parent fd5bc3fe51
commit 275dde7712
17 changed files with 333 additions and 517 deletions
+1 -1
View File
@@ -138,7 +138,7 @@ class Module : public PScope, public LineInfo {
void dump(ostream&out) const;
bool elaborate(Design*, NetScope*scope) const;
typedef map<perm_string,NetExpr*> replace_t;
typedef map<perm_string,PExpr*> replace_t;
bool elaborate_scope(Design*, NetScope*scope, const replace_t&rep);
bool elaborate_sig(Design*, NetScope*scope) const;