From 921ad64d22614b9295bf52ff8a99a9ecc058d3ff Mon Sep 17 00:00:00 2001 From: Wilson Snyder Date: Tue, 23 Dec 2025 19:20:42 -0500 Subject: [PATCH] Commentary: Changes update --- Changes | 2 ++ docs/guide/exe_verilator.rst | 17 +++++++++-------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/Changes b/Changes index 74fbd83ed..7fe4b1ca5 100644 --- a/Changes +++ b/Changes @@ -54,6 +54,7 @@ Verilator 5.043 devel * Optimize combinational loops through sign extension (#6724). [Geza Lore] * Optimize trace initialization code size (#6749). [Geza Lore] * Optimize combinational cycles in DFG (#6744) (#6746) (#6744). [Geza Lore] +* Optimize inlining small C functions and add `-inline-cfuncs` (#6815). [Jose Drowne] * Fix generate function(s) inside of generate blocks (#1011) (#6789). [em2machine] * Fix typedef derived from type defined inside interface (#3441) (#6776). [em2machine] * Fix extern function that returns parameterized class (#4924). @@ -62,6 +63,7 @@ Verilator 5.043 devel * Fix pre/post_randomize on extended classes (#6467). [Alex Solomatnikov] * Fix expression short circuiting (#6483). [Todd Strader] * Fix resized lvalues with warning suppressed (#6497) (#6816). [Alex Solomatnikov] +* Fix unsupported `if` virtual interface warning (#6558) (#6861). [Krzysztof Bieganski, Antmicro Ltd.] * Fix expression coverage of system calls (#6592). [Todd Strader] * Fix `--timing` with `--x-initial-edge` (#6603) (#6631). [Krzysztof Bieganski, Antmicro Ltd.] * Fix merging of impure assignments in gate optimization (#6629) (#6630). [Geza Lore] diff --git a/docs/guide/exe_verilator.rst b/docs/guide/exe_verilator.rst index 766a1d09b..1c08323dc 100644 --- a/docs/guide/exe_verilator.rst +++ b/docs/guide/exe_verilator.rst @@ -869,10 +869,11 @@ Summary: .. option:: --inline-cfuncs - Inline small CFunc calls directly into their callers when the function - has at most nodes. This reduces function call overhead when - :vlopt:`--output-split-cfuncs` places functions in separate compilation - units that the C++ compiler cannot inline. + Inline small C++ function (internal AstCFunc) calls directly into their + callers when the function has at most nodes. This reduces + function call overhead when :vlopt:`--output-split-cfuncs` places + functions in separate compilation units that the C++ compiler cannot + inline. Set to 0 to disable this optimization. The default is 20. @@ -881,10 +882,10 @@ Summary: .. option:: --inline-cfuncs-product - Tune the inlining of CFunc calls for larger functions. When a function - is too large to always inline (exceeds :vlopt:`--inline-cfuncs` threshold), - it may still be inlined if the function size multiplied by the number of - call sites is at most . + Tune the inlining of C++ function (internal AstCFunc) calls for larger + functions. When a function is too large to always inline (exceeds + :vlopt:`--inline-cfuncs` threshold), it may still be inlined if the + function size multiplied by the number of call sites is at most . This allows functions that are called only once or twice to be inlined even if they exceed the small function threshold. Set to 0 to only inline