mirror of
https://github.com/verilator/verilator.git
synced 2026-09-03 03:03:01 +02:00
The AstIf nodes conditional on events being triggered used to be created in V3Clock. Now it is in V3Sched*, in order to avoid having to pass AstActive in CFunc or MTask bodies. No functional change intended, some improved optimization due to simplifying timing triggers that were previously missed, also fixes what seems like a bug in the original timing commit code.
This commit is contained in:
@@ -2395,8 +2395,8 @@ struct MTaskVxIdLessThan final {
|
||||
}
|
||||
};
|
||||
|
||||
AstExecGraph* V3Order::createParallel(OrderGraph& orderGraph, const std::string& tag,
|
||||
const TrigToSenMap& trigToSen, bool slow) {
|
||||
AstNodeStmt* V3Order::createParallel(OrderGraph& orderGraph, const std::string& tag,
|
||||
const TrigToSenMap& trigToSen, bool slow) {
|
||||
UINFO(2, " Constructing parallel code for '" + tag + "'");
|
||||
|
||||
// For nondeterminism debug:
|
||||
@@ -2481,7 +2481,7 @@ AstExecGraph* V3Order::createParallel(OrderGraph& orderGraph, const std::string&
|
||||
// Construct the actual MTaskBody
|
||||
AstMTaskBody* const bodyp = new AstMTaskBody{rootFlp};
|
||||
execGraphp->addMTaskBodiesp(bodyp);
|
||||
for (AstActive* const activep : emitter.getAndClearActiveps()) bodyp->addStmtsp(activep);
|
||||
bodyp->addStmtsp(emitter.getStmts());
|
||||
UASSERT_OBJ(bodyp->stmtsp(), bodyp, "Should not try to create empty MTask");
|
||||
|
||||
// Create the ExecMTask
|
||||
|
||||
Reference in New Issue
Block a user