Revert "Revert "Enable JIT compilation for more expressions"" and Support JIT for decimal and bigint types#73509
Revert "Revert "Enable JIT compilation for more expressions"" and Support JIT for decimal and bigint types#73509taiyang-li wants to merge 51 commits intoClickHouse:masterfrom
Conversation
This reverts commit fb02bec.
|
This is an automated comment for commit a09780f with description of existing statuses. It's updated for the latest CI running ❌ Click here to open a full report in a separate page
Successful checks
|
|
@taiyang-li, continue? |
I had some issues on making the building success. I had splitted FunctionsConversions.{h,cpp}, but it didn't work. Need your help. Thanks! |
|
Workflow [PR], commit [30d9e9e] Summary: ❌
|
|
Failed building seems not related to this PR: https://s3.amazonaws.com/clickhouse-test-reports/json.html?PR=73509&sha=6a0d47b559681ab8d4e75cbdef7333d15e344593&name_0=PR&name_1=Build%20%28amd_tidy%29 |
|
The issue with sccache server will probably be addressed in #83600 |
|
Fuzzer found signal 8 (floating point exception). |
@alexey-milovidov how to process it when
|
|
Avoid using JIT for integer divisions (intDiv, modulo). |
|
Note: I also considered another way with sigsetjmp/siglongjmp before a loop where nothing besides computations happens (no memory allocations, no exceptions) and using it to catch divisions by zero. |
@alexey-milovidov Thanks for your advice. I'll try this. |
|
Dear @alexey-milovidov, this PR hasn't been updated for a while. You will be unassigned. Will you continue working on it? If so, please feel free to reassign yourself. |
|
@taiyang-li, let's continue. |
| Compile some scalar functions and operators to native code. | ||
| )", 0) \ | ||
| DECLARE(UInt64, min_count_to_compile_expression, 3, R"( | ||
| DECLARE(UInt64, min_count_to_compile_expression, 0, R"( |
| {"enable_vector_similarity_index", false, false, "Added an alias for setting `allow_experimental_vector_similarity_index`"}, | ||
| {"distributed_plan_max_rows_to_broadcast", 20000, 20000, "New experimental setting."}, | ||
| {"min_joined_block_size_rows", 0, DEFAULT_BLOCK_SIZE, "New setting."}, | ||
| {"min_count_to_compile_expression", 3, 1, "For ci tests"}, |
| template <typename A, typename B> | ||
| inline void throwIfDivisionLeadsToFPE(A a, B b) | ||
| { | ||
| std::cout << "jit stacktrace:" << StackTrace().toString() << std::endl; |
| } | ||
| } | ||
|
|
||
| /* |
| throw Exception(ErrorCodes::LOGICAL_ERROR, "ModuloImpl compilation expected integer types in (U)Int8|16|32|64|128|256"); | ||
|
|
||
| auto * mod = b.GetInsertBlock()->getParent()->getParent(); | ||
| // for (const auto & func : mod->functions()) |
| @@ -1,3 +1,8 @@ | |||
| -- When compilation is enabled, the query result is more accurate compared to when compilation is disabled. | |||
There was a problem hiding this comment.
Should be checked in another way.
|
@alexey-milovidov sorry, I've been a bit busy lately and may not have more time to devote to it. I'm really grateful that you could continue my previous work. |
Continuation of #73509.
Changelog category (leave one):
Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md):
Revert "Revert "Enable JIT compilation for more expressions""(#73010) and Support JIT for decimal and bigint types
Documentation entry for user-facing changes
CI Settings (Only check the boxes if you know what you are doing):