verilator/include
Geza Lore 8ad8d4f807
Fix long C++ compilation due to VerilatedScope constructors (#6664)
The Syms class can contain a very large number of VeriltedScope
instances if `--vpi` is used, all of which need a call to the default
constructor in the constructor of the Syms class. This can lead to very
long compilation times, even without optimization on some compilers.

To avoid the constructor calls, hold VeriltedScope via pointers in the
Syms class, and explicitly new and delete them in the Syms
constructor/destructor. These explicit new/delte can then be
automatically split up into sub functions when the Syms
constructor/destructor become large.

Regarding run-time performance, this should have no significant effect,
most interactions are either during construction/destruction of the Syms
object, or are via pointers already. The one place where we used to
refer to VerilatedScope instances is when emitting an AstScopeName for
things like $display %m. For those there will be an extra load
instruction at run-time, which should not make a big difference.

Patch 3 of 3 to fix long compile times of the Syms module in some
scenarios.
2025-11-08 15:56:15 +00:00
..
gtkwave Update libfst from upstream 2025-04-12 18:10:40 -04:00
vltstd Commentary: Changes update 2025-05-22 06:45:39 -04:00
.gitignore Support VPI product info, warning calls, etc, bug588. 2013-01-17 21:40:37 -05:00
verilated.cpp Fix long C++ compilation due to VerilatedScope constructors (#6664) 2025-11-08 15:56:15 +00:00
verilated.h Fix long C++ compilation due to VerilatedScope constructors (#6664) 2025-11-08 15:56:15 +00:00
verilated.mk.in Fix ccache-report with PCH files 2025-11-07 09:41:23 +00:00
verilated.v Copyright year update. 2025-01-01 08:30:25 -05:00
verilated_config.h.in Copyright year update. 2025-01-01 08:30:25 -05:00
verilated_cov.cpp Internals: Fix up include/ cppcheck issues (#6311) 2025-08-20 07:27:55 -04:00
verilated_cov.h Support separate coverage counters for toggles 0->1 and 1->0 (#6086) 2025-08-20 07:31:04 -04:00
verilated_cov_key.h Copyright year update. 2025-01-01 08:30:25 -05:00
verilated_dpi.cpp Internals: Fix up include/ cppcheck issues (#6311) 2025-08-19 21:36:52 -04:00
verilated_dpi.h Internals: Make AstCExpr always cleanOut (#6280) (#6570) 2025-10-19 09:44:33 +01:00
verilated_fst_c.cpp Fix missing net type mappings in FST traces (#6582) (#6583) 2025-10-21 21:07:51 -04:00
verilated_fst_c.h Optimize duplicate timestamps out of traces (#4686) 2025-04-05 14:19:58 -04:00
verilated_fst_sc.cpp Copyright year update. 2025-01-01 08:30:25 -05:00
verilated_fst_sc.h Copyright year update. 2025-01-01 08:30:25 -05:00
verilated_funcs.h Internals: Replace VlTriggerVec with unpacked array (#6616) 2025-10-31 18:29:11 +00:00
verilated_imp.h Internals: Fix up include/ cppcheck issues (#6311) 2025-08-19 21:36:52 -04:00
verilated_intrinsics.h Copyright year update. 2025-01-01 08:30:25 -05:00
verilated_probdist.cpp Internals: Favor preincrements. No functional change. 2025-05-09 21:20:35 -04:00
verilated_profiler.cpp Internals: Fix up include/ cppcheck issues (#6311) 2025-08-19 21:36:52 -04:00
verilated_profiler.h Internals: Replace AstMTaskBody with AstCFunc(#6280) (#6628) 2025-11-03 06:32:03 +00:00
verilated_random.cpp Internals: Misc verilated_random style cleanups. No functional change. 2025-09-21 12:33:38 -04:00
verilated_random.h Internals/Tests: Cleanup some missing dev coverage items 2025-10-11 12:54:55 -04:00
verilated_saif_c.cpp Fix trace hierarchicalName runtime errors (#5668) (#6076). 2025-06-10 20:17:32 -04:00
verilated_saif_c.h Optimize SAIF writes (#5916) 2025-04-05 15:09:32 -04:00
verilated_saif_sc.h Add `--trace-saif` for SAIF power traces (#5812) 2025-03-07 10:41:29 -05:00
verilated_save.cpp Internals: Fix up include/ cppcheck issues (#6311) 2025-08-19 21:36:52 -04:00
verilated_save.h Internals: Cleanup cppcheck c casts. No functional change intended. 2025-08-21 20:06:43 -04:00
verilated_sc.h Copyright year update. 2025-01-01 08:30:25 -05:00
verilated_sc_trace.h Internals: Fix coverage exclusion markers 2025-10-01 21:22:16 +01:00
verilated_std.sv Fix side effects for improved function/task/process purity (#6559) 2025-10-29 14:27:31 -04:00
verilated_std_waiver.vlt Update UVM 1800.2 2017-1.1 waivers 2025-11-01 16:34:31 -04:00
verilated_sym_props.h Apply 'make format' 2025-01-10 00:05:16 +00:00
verilated_syms.h Copyright year update. 2025-01-01 08:30:25 -05:00
verilated_threads.cpp Change default thread pool sizes to respect processor affinity (#6604) 2025-10-28 18:10:40 +00:00
verilated_threads.h Change default thread pool sizes to respect processor affinity (#6604) 2025-10-28 18:10:40 +00:00
verilated_timing.cpp Fix `--timing` with `--x-initial-edge` (#6603) (#6631) 2025-11-03 09:39:23 -05:00
verilated_timing.h Fix 'experimental/coroutine' file not found on macOS (#5030) (#5031) (#5151) 2024-06-08 08:33:50 -04:00
verilated_trace.h Fix missing net type mappings in FST traces (#6582) (#6583) 2025-10-21 21:07:51 -04:00
verilated_trace_imp.h Commentary: spelling 2025-08-25 18:47:08 -04:00
verilated_types.h Internals: Replace VlTriggerVec with unpacked array (#6616) 2025-10-31 18:29:11 +00:00
verilated_vcd_c.cpp Internals: Move roundUpToMultipleOf into vlstd:: 2025-10-30 15:58:49 +00:00
verilated_vcd_c.h Internals: Upgrade to clang-format-18 (#6333) 2025-08-25 20:47:48 -04:00
verilated_vcd_sc.cpp Copyright year update. 2025-01-01 08:30:25 -05:00
verilated_vcd_sc.h Copyright year update. 2025-01-01 08:30:25 -05:00
verilated_vpi.cpp Internals: Fix name of some static and thread variables. No functional change. 2025-10-27 20:49:41 -04:00
verilated_vpi.h Copyright year update. 2025-01-01 08:30:25 -05:00
verilatedos.h Internals: Move roundUpToMultipleOf into vlstd:: 2025-10-30 15:58:49 +00:00
verilatedos_c.h Add memory usage statistics on macOS (#6644) 2025-11-05 15:45:35 +00:00