From e2f5854088ffcccb63a5438b9de0b93531e75774 Mon Sep 17 00:00:00 2001 From: Jens Yuechao Liu Date: Wed, 5 Nov 2025 11:48:22 +0100 Subject: [PATCH] Fix slice memory overflow on large output arrays (#6636) (#6638) --- docs/CONTRIBUTORS | 1 + docs/guide/exe_verilator.rst | 5 +++++ src/V3Options.cpp | 5 ++++- src/V3Options.h | 2 ++ src/V3Slice.cpp | 11 +++++++++- test_regress/t/t_opt_slice_element_limit.py | 20 ++++++++++++++++++ test_regress/t/t_opt_slice_element_limit.v | 20 ++++++++++++++++++ .../t/t_opt_slice_element_limit_allow_all.py | 20 ++++++++++++++++++ .../t/t_opt_slice_element_limit_bad.out | 2 ++ .../t/t_opt_slice_element_limit_bad.py | 21 +++++++++++++++++++ .../t/t_opt_slice_element_limit_default.py | 20 ++++++++++++++++++ 11 files changed, 125 insertions(+), 2 deletions(-) create mode 100644 test_regress/t/t_opt_slice_element_limit.py create mode 100644 test_regress/t/t_opt_slice_element_limit.v create mode 100644 test_regress/t/t_opt_slice_element_limit_allow_all.py create mode 100644 test_regress/t/t_opt_slice_element_limit_bad.out create mode 100644 test_regress/t/t_opt_slice_element_limit_bad.py create mode 100644 test_regress/t/t_opt_slice_element_limit_default.py diff --git a/docs/CONTRIBUTORS b/docs/CONTRIBUTORS index 968b95e1b..e5f399df8 100644 --- a/docs/CONTRIBUTORS +++ b/docs/CONTRIBUTORS @@ -105,6 +105,7 @@ Jamey Hicks Jamie Iles Jan Van Winkel Jean Berniolles +Jens Yuechao Liu Jeremy Bennett Jesse Taube Jevin Sweval diff --git a/docs/guide/exe_verilator.rst b/docs/guide/exe_verilator.rst index 2f11d50cb..4df0a1e1a 100644 --- a/docs/guide/exe_verilator.rst +++ b/docs/guide/exe_verilator.rst @@ -719,6 +719,11 @@ Summary: automatically. Variables explicitly annotated with :option:`/*verilator&32;split_var*/` are still split. +.. option:: --fslice-element-limit + + Rarely needed. Set the maximum array size (number of elements) + for slice optimization to avoid excessive memory usage. + .. option:: -future0