From: Sergey Kaplun via Tarantool-patches <tarantool-patches@dev.tarantool.org> To: Maxim Kokryashkin <m.kokryashkin@tarantool.org>, Sergey Bronnikov <sergeyb@tarantool.org> Cc: tarantool-patches@dev.tarantool.org Subject: [Tarantool-patches] [PATCH v2 luajit 1/5] build: introduce option LUAJIT_ENABLE_TABLE_BUMP Date: Sun, 16 Jun 2024 13:00:09 +0300 [thread overview] Message-ID: <5e37d4e892b4ae1dc4bb6a0cb8f298563f92c97c.1718528874.git.skaplun@tarantool.org> (raw) In-Reply-To: <cover.1718528874.git.skaplun@tarantool.org> 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..ce8d0311 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 +# bytecode 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) + # With table bump optimization enabled (and due to our + # modification related to metrics), some offsets in `GG_State` + # stop fitting 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.45.1
next prev parent reply other threads:[~2024-06-16 10:05 UTC|newest] Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top 2024-06-16 10:01 [Tarantool-patches] [PATCH v2 luajit 0/5] Handle all errors during stitching Sergey Kaplun via Tarantool-patches 2024-06-16 10:00 ` Sergey Kaplun via Tarantool-patches [this message] 2024-06-16 10:00 ` [Tarantool-patches] [PATCH v2 luajit 2/5] ci: add tablebump flavor for exotic builds Sergey Kaplun via Tarantool-patches 2024-06-16 10:00 ` [Tarantool-patches] [PATCH v2 luajit 3/5] test: allow `jit.parse` to return aborted traces Sergey Kaplun via Tarantool-patches 2024-06-16 10:00 ` [Tarantool-patches] [PATCH v2 luajit 4/5] Handle all types of errors during trace stitching Sergey Kaplun via Tarantool-patches 2024-06-16 10:00 ` [Tarantool-patches] [PATCH v2 luajit 5/5] Use generic trace error for OOM " Sergey Kaplun via Tarantool-patches 2024-06-18 8:40 ` [Tarantool-patches] [PATCH v2 luajit 0/5] Handle all errors during stitching Sergey Bronnikov via Tarantool-patches 2024-07-09 8:04 ` Sergey Kaplun via Tarantool-patches
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=5e37d4e892b4ae1dc4bb6a0cb8f298563f92c97c.1718528874.git.skaplun@tarantool.org \ --to=tarantool-patches@dev.tarantool.org \ --cc=m.kokryashkin@tarantool.org \ --cc=sergeyb@tarantool.org \ --cc=skaplun@tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH v2 luajit 1/5] build: introduce option LUAJIT_ENABLE_TABLE_BUMP' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox