mirror of
https://github.com/verilator/verilator.git
synced 2026-10-06 10:03:44 +02:00
Make all expressions derive from AstNodeExpr (#3721).
Apart from the representational changes below, this patch renames AstNodeMath to AstNodeExpr, and AstCMath to AstCExpr. Now every expression (i.e.: those AstNodes that represent a [possibly void] value, with value being interpreted in a very general sense) has AstNodeExpr as a super class. This necessitates the introduction of an AstStmtExpr, which represents an expression in statement position, e.g : 'foo();' would be represented as AstStmtExpr(AstCCall(foo)). In exchange we can get rid of isStatement() in AstNodeStmt, which now really always represent a statement Peak memory consumption and verilation speed are not measurably changed. Partial step towards #3420
This commit is contained in:
+1
-1
@@ -104,7 +104,7 @@ class ForceConvertVisitor final : public VNVisitor {
|
||||
AstVarRef* const lhsp = new AstVarRef{flp, m_enVscp, VAccess::WRITE};
|
||||
V3Number zero{m_enVscp, m_enVscp->width()};
|
||||
zero.setAllBits0();
|
||||
AstNodeMath* const rhsp = new AstConst{flp, zero};
|
||||
AstNodeExpr* const rhsp = new AstConst{flp, zero};
|
||||
AstAssign* const assignp = new AstAssign{flp, lhsp, rhsp};
|
||||
AstActive* const activep = new AstActive{
|
||||
flp, "force-init",
|
||||
|
||||
Reference in New Issue
Block a user