diff --git a/src/Verilator.cpp b/src/Verilator.cpp index 8a072c266..bf74ef44d 100644 --- a/src/Verilator.cpp +++ b/src/Verilator.cpp @@ -175,17 +175,15 @@ static void process() { // Propagate constants into expressions V3Const::constifyAllLint(v3Global.rootp()); - // Split packed variables into multiple pieces to resolve UNOPTFLAT. - // should be after constifyAllLint() which flattens to 1D bit vector - V3SplitVar::splitVariable(v3Global.rootp()); - if (!v3Global.opt.xmlOnly()) { + // Split packed variables into multiple pieces to resolve UNOPTFLAT. + // should be after constifyAllLint() which flattens to 1D bit vector + V3SplitVar::splitVariable(v3Global.rootp()); + // Remove cell arrays (must be between V3Width and scoping) V3Inst::dearrayAll(v3Global.rootp()); V3LinkDot::linkDotArrayed(v3Global.rootp()); - } - if (!v3Global.opt.xmlOnly()) { // Task inlining & pushing BEGINs names to variables/cells // Begin processing must be after Param, before module inlining V3Begin::debeginAll(v3Global.rootp()); // Flatten cell names, before inliner