verilator/include
Geza Lore ff425369ac
Reduce .rodata footprint of trace initialization (#3250)
Trace initialization (tracep->decl* functions) used to explicitly pass
the complete hierarchical names of signals as string constants. This
contains a lot of redundancy (path prefixes), does not scale well with
large designs and resulted in .rodata sections (the string constants) in
ELF executables being extremely large.

This patch changes the API of trace initialization that allows pushing
and popping name prefixes as we walk the hierarchy tree, which are
prepended to declared signal names at run-time during trace
initialization. This in turn allows us to emit repeat path/name
components only once, effectively removing all duplicate path prefixes.
On SweRV EH1 this reduces the .rodata section in a --trace build by 94%.

Additionally, trace declarations are now emitted in lexical order by
hierarchical signal names, and the top level trace initialization
function respects --output-split-ctrace.
2021-12-19 15:15:07 +00:00
..
gtkwave
vltstd
.gitignore
verilated_config.h.in
verilated_cov_key.h
verilated_cov.cpp Internals: More const. No functional change intended. 2021-11-25 09:05:50 -05:00
verilated_cov.h
verilated_dpi.cpp Internals: Remove some unused arguments. 2021-11-28 13:44:16 -05:00
verilated_dpi.h
verilated_fst_c.cpp Reduce .rodata footprint of trace initialization (#3250) 2021-12-19 15:15:07 +00:00
verilated_fst_c.h
verilated_fst_sc.cpp
verilated_fst_sc.h
verilated_funcs.h Fix VL_STREAML_FAST_QQI with 64 bit left-hand-side (#3232) (#3235) 2021-12-09 17:30:04 -05:00
verilated_heavy.h
verilated_imp.h Internals: Revert previous commit const for clang. 2021-11-25 09:47:06 -05:00
verilated_intrinsics.h
verilated_profiler.h Internals: More const. No functional change intended. 2021-11-25 09:05:50 -05:00
verilated_save.cpp Internals: More const. No functional change intended. 2021-11-25 09:05:50 -05:00
verilated_save.h Internals: More const. No functional change intended. 2021-11-25 09:05:50 -05:00
verilated_sc.h
verilated_sym_props.h Internals: More const. No functional change intended. 2021-11-25 09:05:50 -05:00
verilated_syms.h
verilated_threads.cpp
verilated_threads.h Internals: More const. No functional change intended. 2021-11-25 09:05:50 -05:00
verilated_trace_defs.h
verilated_trace_imp.cpp Reduce .rodata footprint of trace initialization (#3250) 2021-12-19 15:15:07 +00:00
verilated_trace.h Reduce .rodata footprint of trace initialization (#3250) 2021-12-19 15:15:07 +00:00
verilated_types.h Primary inputs and outputs (VL_INW/VL_OUTW) now use VlWide type (#3236). 2021-12-09 19:41:33 -05:00
verilated_vcd_c.cpp Reduce .rodata footprint of trace initialization (#3250) 2021-12-19 15:15:07 +00:00
verilated_vcd_c.h Internals: More const. No functional change intended. 2021-11-25 09:05:50 -05:00
verilated_vcd_sc.cpp
verilated_vcd_sc.h
verilated_vpi.cpp Internals: More const. No functional change intended. 2021-11-26 17:55:36 -05:00
verilated_vpi.h
verilated.cpp Reduce .rodata footprint of trace initialization (#3250) 2021-12-19 15:15:07 +00:00
verilated.h Reduce .rodata footprint of trace initialization (#3250) 2021-12-19 15:15:07 +00:00
verilated.mk.in
verilated.v
verilatedos.h Fix timescale portability on Arm64 (#3222). 2021-11-28 15:47:19 -05:00