mirror of
https://github.com/verilator/verilator.git
synced 2026-09-04 08:33:38 +02:00
Internals: Use faster VNVisitorConst where able. No functional change intended.
This commit is contained in:
+5
-5
@@ -236,7 +236,7 @@ string V3HierBlock::commandArgsFileName(bool forCMake) const {
|
||||
|
||||
//######################################################################
|
||||
// Collect how hierarchical blocks are used
|
||||
class HierBlockUsageCollectVisitor final : public VNVisitor {
|
||||
class HierBlockUsageCollectVisitor final : public VNVisitorConst {
|
||||
// NODE STATE
|
||||
// AstNode::user1() -> bool. Processed
|
||||
const VNUser1InUse m_inuser1;
|
||||
@@ -266,7 +266,7 @@ class HierBlockUsageCollectVisitor final : public VNVisitor {
|
||||
}
|
||||
prevGParams.swap(m_gparams);
|
||||
|
||||
iterateChildren(nodep);
|
||||
iterateChildrenConst(nodep);
|
||||
|
||||
if (nodep->hierBlock()) {
|
||||
m_planp->add(nodep, m_gparams);
|
||||
@@ -280,7 +280,7 @@ class HierBlockUsageCollectVisitor final : public VNVisitor {
|
||||
// Visit used module here to know that the module is hier_block or not.
|
||||
// This visitor behaves almost depth first search
|
||||
if (AstModule* const modp = VN_CAST(nodep->modp(), Module)) {
|
||||
iterate(modp);
|
||||
iterateConst(modp);
|
||||
m_referred.insert(modp);
|
||||
}
|
||||
// Nothing to do for interface because hierarchical block does not exist
|
||||
@@ -294,12 +294,12 @@ class HierBlockUsageCollectVisitor final : public VNVisitor {
|
||||
}
|
||||
|
||||
void visit(AstNodeExpr*) override {} // Accelerate
|
||||
void visit(AstNode* nodep) override { iterateChildren(nodep); }
|
||||
void visit(AstNode* nodep) override { iterateChildrenConst(nodep); }
|
||||
|
||||
public:
|
||||
HierBlockUsageCollectVisitor(V3HierBlockPlan* planp, AstNetlist* netlist)
|
||||
: m_planp{planp} {
|
||||
iterateChildren(netlist);
|
||||
iterateChildrenConst(netlist);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user