Hi, Sergey thanks for the answer. LGTM On 13.06.2024 12:51, Sergey Kaplun wrote: > Hi, Sergey! > Thanks for the review! > > On 06.06.24, Sergey Bronnikov wrote: >> Hi, Sergey >> >> >> thanks for the patch! Please see a question below. >> >> On 22.04.2024 11:49, Sergey Kaplun wrote: >>> This option enables table bump optimization if sink optimization is >>> enabled. The table bump optimization patches the bytecodes with a table >>> allocation on the trace recording if the recorded trace exceeds the size >>> of the allocated table. This optimization still has some bugs, so it is >>> disabled by default. For more details, see the comment in >>> . >>> >>> Needed for tarantool/tarantool#9924 >>> --- >>> CMakeLists.txt | 17 +++++++++++++++++ >>> 1 file changed, 17 insertions(+) >>> >>> diff --git a/CMakeLists.txt b/CMakeLists.txt >>> index 2355ce17..52014296 100644 >>> --- a/CMakeLists.txt >>> +++ b/CMakeLists.txt >>> @@ -307,6 +307,23 @@ if(LUAJIT_ENABLE_COVERAGE) >>> include(CodeCoverage) >>> endif() >>> >>> +# Enable table bump optimization. This optimization patches the >>> +# bytecodes with a table allocation on the trace recording if the >>> +# recorded trace exceeds the size of the allocated table. >>> +# This optimization still has some bugs, so it is disabled by >>> +# default. See also:https://github.com/LuaJIT/LuaJIT/issues/606. >>> +option(LUAJIT_ENABLE_TABLE_BUMP "Enable table bump optimization" OFF) >>> +if(LUAJIT_ENABLE_TABLE_BUMP) >>> + # Within table bump optimization enabled (and due to our >>> + # modification related to metrics), some offsets in `GG_State` >>> + # stop fit in 12bit immediate. Hence, the build failed due to >>> + # the DASM error (DASM_S_RANGE_I). >>> + if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") >>> + message(FATAL_ERROR "Table Bump optimization is unsupported for aarch64") >> Table optimization works on all architectures supported by LuaJIT except >> aarch64, right? > In the upstream, it works on all architectures. We have a problem > building LuaJIT for aarch64 due to our metrics that too grows the > `GG_State`. > >> >>> + endif() >>> + AppendFlags(TARGET_C_FLAGS -DLUAJIT_ENABLE_TABLE_BUMP) >>> +endif() >>> + >>> # --- Main source tree --------------------------------------------------------- >>> >>> add_subdirectory(src)