verilator/docs/gen
Geza Lore 098fe96643
Add V3LiftExpr pass to lower impure expressions and calls (#7141)
Introduce new pass that converts impure expressions, or those with
function and method calls into simple assignment statements. Please see
the blurb at the top of the file why this is useful and how it works.
In particular currently it enables more Dfg optimization as functions
will be inlined without AstExprStmt.

Ideally we should enforce this lowering is applied to every procedural
statement (there are still a handful of exceptions). With that, long
term with this pass + #6820, there should be no need to ever use an
AstExprStmt past this new lowering pass, which should enable more easier
optimization down the line.

Also ideally this should be run earlier. Currently it's after V3Tristate
as that calls pinReconnectSimple so we don't have to touch Cell ports.

Currently disabled when code coverage is enabled due to #7119.
2026-02-28 22:20:09 +00:00
..
ex_ALWNEVER_faulty.rst Add ALWNEVER warning, for `always @*` that never execute (#6291) (#6303) 2025-08-18 12:00:53 -04:00
ex_ALWNEVER_msg.rst Add ALWNEVER warning, for `always @*` that never execute (#6291) (#6303) 2025-08-18 12:00:53 -04:00
ex_ASSIGNEQEXPR_faulty.rst Add V3LiftExpr pass to lower impure expressions and calls (#7141) 2026-02-28 22:20:09 +00:00
ex_ASSIGNEQEXPR_msg.rst Add ASSIGNEQEXPR when use `=` inside expressions (#5567). 2025-09-14 08:28:47 -04:00
ex_BADVLTPRAGMA_faulty.rst Commentary: Convert docs examples to 2 space indents. 2025-09-06 07:51:49 -04:00
ex_BADVLTPRAGMA_msg.rst Commentary: Convert docs examples to 2 space indents. 2025-09-06 07:51:49 -04:00
ex_DIDNOTCONVERGE_faulty.rst Commentary: Convert docs examples to 2 space indents. 2025-09-06 07:51:49 -04:00
ex_DIDNOTCONVERGE_msg.rst Improve converge-limit error message 2026-01-28 18:32:50 -05:00
ex_DIDNOTCONVERGE_nodbg_msg.rst Improve converge-limit error message 2026-01-28 18:32:50 -05:00
ex_FUNCTIMECTL_faulty.rst Tests: Reformat some recent tests to mostly verilog-format standard. No test functional change. 2025-12-20 21:46:43 -05:00
ex_FUNCTIMECTL_msg.rst Add FUNCTIMCTL now as a named error, so can disable (#6385). 2025-09-25 19:19:31 -04:00
ex_HIERPARAM_faulty.rst Add HIERPARAM error code (#6456) (#6484) 2025-09-25 10:27:26 -04:00
ex_HIERPARAM_msg.rst Add HIERPARAM error code (#6456) (#6484) 2025-09-25 10:27:26 -04:00
ex_MULTIDRIVEN_faulty.rst Commentary: Convert docs examples to 2 space indents. 2025-09-06 07:51:49 -04:00
ex_MULTIDRIVEN_msg.rst Commentary: Convert docs examples to 2 space indents. 2025-09-06 07:51:49 -04:00
ex_NORETURN_faulty.rst Add NORETURN warning on functions without return values (#6534). 2025-10-07 21:06:11 -04:00
ex_NORETURN_msg.rst Add NORETURN warning on functions without return values (#6534). 2025-10-07 21:06:11 -04:00
ex_PARAMNODEFAULT_faulty.rst Add PARAMNODEFAULT error, for parameters without defaults. 2025-08-03 15:27:37 -04:00
ex_PARAMNODEFAULT_msg.rst Add PARAMNODEFAULT error, for parameters without defaults. 2025-08-03 15:27:37 -04:00
ex_PINMISSING_faulty.rst Commentary: Clarify some warning messages. 2024-07-20 17:50:14 -04:00
ex_PINMISSING_msg.rst Change cell messages to instance to match IEEE 2025-05-03 04:00:47 -04:00
ex_PROCASSINIT_faulty.rst Commentary: Convert docs examples to 2 space indents. 2025-09-06 07:51:49 -04:00
ex_PROCASSINIT_fixed.rst Commentary: Convert docs examples to 2 space indents. 2025-09-06 07:51:49 -04:00
ex_PROCASSINIT_msg.rst Commentary: Convert docs examples to 2 space indents. 2025-09-06 07:51:49 -04:00
ex_STMTDLY_faulty.rst Commentary: Convert docs examples to 2 space indents. 2025-09-06 07:51:49 -04:00
ex_STMTDLY_msg.rst Commentary: Convert docs examples to 2 space indents. 2025-09-06 07:51:49 -04:00
ex_SUPERNFIRST_faulty.rst Add SUPERNFIRST error on super.new on non-first statement (#6784). 2025-12-09 19:22:59 -05:00
ex_SUPERNFIRST_msg.rst Add SUPERNFIRST error on super.new on non-first statement (#6784). 2025-12-09 19:22:59 -05:00
ex_USERERROR_faulty.rst Commentary: Convert docs examples to 2 space indents. 2025-09-06 07:51:49 -04:00
ex_USERERROR_msg.rst Commentary: Convert docs examples to 2 space indents. 2025-09-06 07:51:49 -04:00
ex_USERFATAL_faulty.rst Commentary: Convert docs examples to 2 space indents. 2025-09-06 07:51:49 -04:00
ex_USERFATAL_msg.rst Commentary: Convert docs examples to 2 space indents. 2025-09-06 07:51:49 -04:00
ex_USERINFO_faulty.rst Commentary: Convert docs examples to 2 space indents. 2025-09-06 07:51:49 -04:00
ex_USERINFO_msg.rst Commentary: Convert docs examples to 2 space indents. 2025-09-06 07:51:49 -04:00
ex_USERWARN_faulty.rst Commentary: Convert docs examples to 2 space indents. 2025-09-06 07:51:49 -04:00
ex_USERWARN_msg.rst Commentary: Convert docs examples to 2 space indents. 2025-09-06 07:51:49 -04:00
ex_VARHIDDEN_faulty.rst Commentary: Convert docs examples to 2 space indents. 2025-09-06 07:51:49 -04:00
ex_VARHIDDEN_msg.rst Commentary: Convert docs examples to 2 space indents. 2025-09-06 07:51:49 -04:00
ex_WIDTHEXPAND_1_faulty.rst Add wire data type checking per IEEE. 2025-07-20 07:21:30 -04:00
ex_WIDTHEXPAND_1_fixed.rst Add wire data type checking per IEEE. 2025-07-20 07:21:30 -04:00
ex_WIDTHEXPAND_1_msg.rst Add wire data type checking per IEEE. 2025-07-20 07:21:30 -04:00