[Tarantool-patches] [PATCH luajit v1 1/5] build: introduce option LUAJIT_ENABLE_TABLE_BUMP
Sergey Kaplun
skaplun at tarantool.org
Mon Apr 22 11:49:54 MSK 2024
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
<CMakeLists.txt>.
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")
+ endif()
+ AppendFlags(TARGET_C_FLAGS -DLUAJIT_ENABLE_TABLE_BUMP)
+endif()
+
# --- Main source tree ---------------------------------------------------------
add_subdirectory(src)
--
2.44.0
More information about the Tarantool-patches
mailing list