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 luajit v1 1/5] build: introduce option LUAJIT_ENABLE_TABLE_BUMP Date: Mon, 22 Apr 2024 11:49:54 +0300 [thread overview] Message-ID: <87a4c5c213df4e9f85eeb77d6cbb98dc2047c084.1713773432.git.skaplun@tarantool.org> (raw) In-Reply-To: <cover.1713773432.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..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
next prev parent reply other threads:[~2024-04-22 8:54 UTC|newest] Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top 2024-04-22 8:49 [Tarantool-patches] [PATCH luajit v1 0/5] Handle all errors during stitching Sergey Kaplun via Tarantool-patches 2024-04-22 8:49 ` Sergey Kaplun via Tarantool-patches [this message] 2024-05-05 12:39 ` [Tarantool-patches] [PATCH luajit v1 1/5] build: introduce option LUAJIT_ENABLE_TABLE_BUMP Maxim Kokryashkin via Tarantool-patches 2024-05-13 11:47 ` Sergey Kaplun via Tarantool-patches 2024-06-06 10:53 ` Sergey Bronnikov via Tarantool-patches 2024-06-13 9:51 ` Sergey Kaplun via Tarantool-patches 2024-06-13 14:37 ` Sergey Bronnikov via Tarantool-patches 2024-04-22 8:49 ` [Tarantool-patches] [PATCH luajit v1 2/5] ci: add tablebump flavor for exotic builds Sergey Kaplun via Tarantool-patches 2024-05-05 12:40 ` Maxim Kokryashkin via Tarantool-patches 2024-05-13 11:49 ` Sergey Kaplun via Tarantool-patches 2024-06-06 10:56 ` Sergey Bronnikov via Tarantool-patches 2024-04-22 8:49 ` [Tarantool-patches] [PATCH luajit v1 3/5] test: allow `jit.parse` to return aborted traces Sergey Kaplun via Tarantool-patches 2024-05-05 12:55 ` Maxim Kokryashkin via Tarantool-patches 2024-05-13 11:53 ` Sergey Kaplun via Tarantool-patches 2024-06-06 11:01 ` Sergey Bronnikov via Tarantool-patches 2024-06-13 10:00 ` Sergey Kaplun via Tarantool-patches 2024-06-13 14:38 ` Sergey Bronnikov via Tarantool-patches 2024-04-22 8:49 ` [Tarantool-patches] [PATCH luajit v1 4/5] Handle all types of errors during trace stitching Sergey Kaplun via Tarantool-patches 2024-05-06 8:25 ` Maxim Kokryashkin via Tarantool-patches 2024-06-06 13:03 ` Sergey Bronnikov via Tarantool-patches 2024-06-13 10:25 ` Sergey Kaplun via Tarantool-patches 2024-06-13 14:52 ` Sergey Bronnikov via Tarantool-patches 2024-04-22 8:49 ` [Tarantool-patches] [PATCH luajit v1 5/5] Use generic trace error for OOM " Sergey Kaplun via Tarantool-patches 2024-05-06 8:27 ` Maxim Kokryashkin via Tarantool-patches 2024-06-06 14:06 ` Sergey Bronnikov via Tarantool-patches 2024-06-13 10:31 ` Sergey Kaplun via Tarantool-patches 2024-06-13 14:58 ` Sergey Bronnikov via Tarantool-patches 2024-06-16 19:13 ` 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=87a4c5c213df4e9f85eeb77d6cbb98dc2047c084.1713773432.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 luajit v1 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