Generate AstNode accessors via astgen

Introduce the @astgen directives parsed by astgen, currently used for
the generation child node (operand) accessors. Please see the updated
internal documentation for details.
This commit is contained in:
Geza Lore
2022-09-21 14:05:27 +01:00
parent 72e7271a14
commit 95145038b4
74 changed files with 1427 additions and 1579 deletions
+4 -4
View File
@@ -1235,7 +1235,7 @@ AstActive* OrderProcess::processMoveOneLogic(const OrderLogicVertex* lvertexp,
if (AstNodeProcedure* const procp = VN_CAST(nodep, NodeProcedure)) {
suspendable = procp->isSuspendable();
if (suspendable) slow = slow && !VN_IS(procp, Always);
nodep = procp->bodysp();
nodep = procp->stmtsp();
pushDeletep(procp);
}
@@ -1262,7 +1262,7 @@ AstActive* OrderProcess::processMoveOneLogic(const OrderLogicVertex* lvertexp,
newFuncpr->isLoose(true);
newFuncpr->slow(slow);
newStmtsr = 0;
scopep->addActivep(newFuncpr);
scopep->addBlocksp(newFuncpr);
// Create top call to it
AstCCall* const callp = new AstCCall{nodep->fileline(), newFuncpr};
// Where will we be adding the call?
@@ -1423,7 +1423,7 @@ void OrderProcess::processMTasks() {
const MTaskState& fromState = mtaskStates[fromp->id()];
new V3GraphEdge(depGraphp, fromState.m_execMTaskp, state.m_execMTaskp, 1);
}
execGraphp->addMTaskBodyp(bodyp);
execGraphp->addMTaskBodiesp(bodyp);
}
}
@@ -1501,7 +1501,7 @@ AstCFunc* order(AstNetlist* netlistp, //
funcp->slow(slow);
funcp->isConst(false);
funcp->declPrivate(true);
scopeTopp->addActivep(funcp);
scopeTopp->addBlocksp(funcp);
// Add ordered statements to the result function
for (AstNode* const nodep : nodeps) funcp->addStmtsp(nodep);