aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvvvv <vvvv@yandex-team.com>2025-01-23 19:20:21 +0300
committervvvv <vvvv@yandex-team.com>2025-01-23 19:40:27 +0300
commit1cd2a0aadd22286806362355c1fc6809b9b8770c (patch)
tree4a91df4abec2b703c471144d7b93dcc743764cc1
parenta6e6da86b7647005f55c75fb2d670e1133fae024 (diff)
downloadydb-1cd2a0aadd22286806362355c1fc6809b9b8770c.tar.gz
llvm16 versions for yt codec codegen & comp nodes
#### Добавление поддержки LLVM 16 и рефакторинг кода 📝 - ✨ Добавлена поддержка LLVM версии 16 для компиляции и тестирования. - 🔧 Рефакторинг макроса `COPY` для условного включения контекста в зависимости от параметра `WITH_CONTEXT`. - 📄 Добавлены новые файлы конфигурации для поддержки LLVM версий 14 и 16. - 📝 Обновлены существующие файлы конфигурации для включения поддержки новых версий LLVM. - 🚀 Добавлены новые тестовые файлы для LLVM версий 14 и 16, включая `ya.make` и `ya.test.make`. commit_hash:6d47a64839e94fbc03ed41d56e68ab5c4389da9a
-rw-r--r--yt/yql/providers/yt/codec/codegen/llvm14/ya.make14
-rw-r--r--yt/yql/providers/yt/codec/codegen/llvm16/ya.make14
-rw-r--r--yt/yql/providers/yt/codec/codegen/ut/llvm14/ya.make12
-rw-r--r--yt/yql/providers/yt/codec/codegen/ut/llvm16/ya.make12
-rw-r--r--yt/yql/providers/yt/codec/codegen/ut/ya.make31
-rw-r--r--yt/yql/providers/yt/codec/codegen/ut/ya.make.inc41
-rw-r--r--yt/yql/providers/yt/codec/codegen/ut/yt_codec_cg_ut.cpp2
-rw-r--r--yt/yql/providers/yt/codec/codegen/ya.make89
-rw-r--r--yt/yql/providers/yt/codec/codegen/ya.make.inc97
-rw-r--r--yt/yql/providers/yt/codec/codegen/yt_codec_cg.cpp6
-rw-r--r--yt/yql/providers/yt/codec/ut/ya.make2
-rw-r--r--yt/yql/providers/yt/comp_nodes/dq/llvm14/ya.make2
-rw-r--r--yt/yql/providers/yt/comp_nodes/dq/llvm16/ya.make10
-rw-r--r--yt/yql/providers/yt/comp_nodes/dq/ya.make51
-rw-r--r--yt/yql/providers/yt/comp_nodes/dq/ya.make.inc69
-rw-r--r--yt/yql/providers/yt/comp_nodes/llvm14/ya.make7
-rw-r--r--yt/yql/providers/yt/comp_nodes/llvm16/ya.make13
-rw-r--r--yt/yql/providers/yt/comp_nodes/ut/llvm14/ya.make11
-rw-r--r--yt/yql/providers/yt/comp_nodes/ut/llvm16/ya.make11
-rw-r--r--yt/yql/providers/yt/comp_nodes/ut/ya.make30
-rw-r--r--yt/yql/providers/yt/comp_nodes/ut/ya.make.inc32
-rw-r--r--yt/yql/providers/yt/comp_nodes/ya.make1
-rw-r--r--yt/yql/providers/yt/comp_nodes/ya.make.inc8
23 files changed, 358 insertions, 207 deletions
diff --git a/yt/yql/providers/yt/codec/codegen/llvm14/ya.make b/yt/yql/providers/yt/codec/codegen/llvm14/ya.make
new file mode 100644
index 0000000000..19bd72186e
--- /dev/null
+++ b/yt/yql/providers/yt/codec/codegen/llvm14/ya.make
@@ -0,0 +1,14 @@
+LIBRARY()
+
+SRCDIR(yt/yql/providers/yt/codec/codegen/llvm14)
+
+PEERDIR(
+ yql/essentials/minikql/codegen/llvm14
+)
+
+USE_LLVM_BC14()
+SET(LLVM_VER 14)
+
+INCLUDE(../ya.make.inc)
+
+END()
diff --git a/yt/yql/providers/yt/codec/codegen/llvm16/ya.make b/yt/yql/providers/yt/codec/codegen/llvm16/ya.make
new file mode 100644
index 0000000000..505f9b6f70
--- /dev/null
+++ b/yt/yql/providers/yt/codec/codegen/llvm16/ya.make
@@ -0,0 +1,14 @@
+LIBRARY()
+
+SRCDIR(yt/yql/providers/yt/codec/codegen/llvm16)
+
+PEERDIR(
+ yql/essentials/minikql/codegen/llvm16
+)
+
+USE_LLVM_BC16()
+SET(LLVM_VER 16)
+
+INCLUDE(../ya.make.inc)
+
+END()
diff --git a/yt/yql/providers/yt/codec/codegen/ut/llvm14/ya.make b/yt/yql/providers/yt/codec/codegen/ut/llvm14/ya.make
new file mode 100644
index 0000000000..64a0664f8b
--- /dev/null
+++ b/yt/yql/providers/yt/codec/codegen/ut/llvm14/ya.make
@@ -0,0 +1,12 @@
+UNITTEST()
+
+SRCDIR(yt/yql/providers/yt/codec/codegen/ut/llvm14)
+
+PEERDIR(
+ yql/essentials/minikql/computation/llvm14
+ yt/yql/providers/yt/codec/codegen/llvm14
+)
+
+INCLUDE(../ya.make.inc)
+
+END()
diff --git a/yt/yql/providers/yt/codec/codegen/ut/llvm16/ya.make b/yt/yql/providers/yt/codec/codegen/ut/llvm16/ya.make
new file mode 100644
index 0000000000..e70ff8c67d
--- /dev/null
+++ b/yt/yql/providers/yt/codec/codegen/ut/llvm16/ya.make
@@ -0,0 +1,12 @@
+UNITTEST()
+
+SRCDIR(yt/yql/providers/yt/codec/codegen/ut/llvm16)
+
+PEERDIR(
+ yql/essentials/minikql/computation/llvm16
+ yt/yql/providers/yt/codec/codegen/llvm16
+)
+
+INCLUDE(../ya.make.inc)
+
+END()
diff --git a/yt/yql/providers/yt/codec/codegen/ut/ya.make b/yt/yql/providers/yt/codec/codegen/ut/ya.make
index cb6befcbf8..48a2e6f160 100644
--- a/yt/yql/providers/yt/codec/codegen/ut/ya.make
+++ b/yt/yql/providers/yt/codec/codegen/ut/ya.make
@@ -1,30 +1 @@
-UNITTEST_FOR(yt/yql/providers/yt/codec/codegen)
-
-SRCS(
- yt_codec_cg_ut.cpp
-)
-
-IF (SANITIZER_TYPE OR WITH_VALGRIND)
- SIZE(MEDIUM)
-ELSE()
- SIZE(SMALL)
-ENDIF()
-
-
-PEERDIR(
- yql/essentials/minikql/computation/llvm14
- yql/essentials/public/udf/service/exception_policy
- yql/essentials/sql
- yql/essentials/sql/pg_dummy
- yt/yql/providers/yt/codec
-)
-
-YQL_LAST_ABI_VERSION()
-
-IF (MKQL_DISABLE_CODEGEN)
- CFLAGS(
- -DMKQL_DISABLE_CODEGEN
- )
-ENDIF()
-
-END()
+RECURSE(llvm14 llvm16)
diff --git a/yt/yql/providers/yt/codec/codegen/ut/ya.make.inc b/yt/yql/providers/yt/codec/codegen/ut/ya.make.inc
new file mode 100644
index 0000000000..4757add1ed
--- /dev/null
+++ b/yt/yql/providers/yt/codec/codegen/ut/ya.make.inc
@@ -0,0 +1,41 @@
+
+SET(ORIG_SRC_DIR yt/yql/providers/yt/codec/codegen/ut)
+
+SET(ORIG_SOURCES
+ yt_codec_cg_ut.cpp
+)
+
+IF (SANITIZER_TYPE OR WITH_VALGRIND)
+ SIZE(MEDIUM)
+ELSE()
+ SIZE(SMALL)
+ENDIF()
+
+ADDINCL(
+ yt/yql/providers/yt/codec/codegen
+)
+
+PEERDIR(
+ yql/essentials/public/udf/service/exception_policy
+ yql/essentials/sql
+ yql/essentials/sql/pg_dummy
+ yt/yql/providers/yt/codec
+)
+
+YQL_LAST_ABI_VERSION()
+
+IF (MKQL_DISABLE_CODEGEN)
+ CFLAGS(
+ -DMKQL_DISABLE_CODEGEN
+ )
+ENDIF()
+
+COPY(
+ WITH_CONTEXT
+ AUTO
+ FROM ${ORIG_SRC_DIR}
+ ${ORIG_SOURCES}
+ OUTPUT_INCLUDES
+ yql/essentials/minikql/computation/mkql_computation_node_holders.h
+ llvm/IR/Module.h
+)
diff --git a/yt/yql/providers/yt/codec/codegen/ut/yt_codec_cg_ut.cpp b/yt/yql/providers/yt/codec/codegen/ut/yt_codec_cg_ut.cpp
index 6ee03c1ecc..15d86fdce5 100644
--- a/yt/yql/providers/yt/codec/codegen/ut/yt_codec_cg_ut.cpp
+++ b/yt/yql/providers/yt/codec/codegen/ut/yt_codec_cg_ut.cpp
@@ -9,7 +9,7 @@
#include <yt/yql/providers/yt/codec/yt_codec_io.h>
#include <yql/essentials/minikql/codegen/codegen.h>
-#include <llvm/IR/Module.h>
+#include <llvm/IR/Module.h> // Y_IGNORE
#include <library/cpp/testing/unittest/registar.h>
diff --git a/yt/yql/providers/yt/codec/codegen/ya.make b/yt/yql/providers/yt/codec/codegen/ya.make
index 15ed0bb53a..4b5f83d5fe 100644
--- a/yt/yql/providers/yt/codec/codegen/ya.make
+++ b/yt/yql/providers/yt/codec/codegen/ya.make
@@ -1,92 +1,11 @@
LIBRARY()
-SRCS(
- yt_codec_cg.cpp
- yt_codec_cg.h
-)
+SRCS()
-PEERDIR(
- library/cpp/resource
- yql/essentials/types/binary_json
- yql/essentials/minikql/computation/llvm14
- yql/essentials/parser/pg_wrapper/interface
- yql/essentials/utils
-)
-
-IF (NOT MKQL_DISABLE_CODEGEN)
- PEERDIR(
- yql/essentials/minikql/codegen/llvm14
- )
- USE_LLVM_BC14()
- LLVM_BC(
- yt_codec_bc.cpp
- NAME
- YtCodecFuncs
- SYMBOLS
- WriteJust
- WriteNothing
- WriteBool
- Write8
- Write16
- Write32
- Write64
- Write120
- WriteDecimal32
- WriteDecimal64
- WriteDecimal128
- WriteFloat
- WriteDouble
- WriteString
- ReadBool
- ReadInt8
- ReadUint8
- ReadInt16
- ReadUint16
- ReadInt32
- ReadUint32
- ReadInt64
- ReadUint64
- ReadInt120
- ReadDecimal32
- ReadDecimal64
- ReadDecimal128
- ReadFloat
- ReadDouble
- ReadOptional
- ReadVariantData
- SkipFixedData
- SkipVarData
- ReadTzDate
- ReadTzDatetime
- ReadTzTimestamp
- ReadTzDate32
- ReadTzDatetime64
- ReadTzTimestamp64
- WriteTzDate
- WriteTzDatetime
- WriteTzTimestamp
- WriteTzDate32
- WriteTzDatetime64
- WriteTzTimestamp64
- GetWrittenBytes
- FillZero
- )
-ELSE()
- CFLAGS(
- -DMKQL_DISABLE_CODEGEN
- )
-ENDIF()
-
-YQL_LAST_ABI_VERSION()
-
-PROVIDES(YT_CODEC_CODEGEN)
+PEERDIR()
END()
-RECURSE(
- no_llvm
-)
+RECURSE(llvm14 llvm16 no_llvm)
-RECURSE_FOR_TESTS(
- ut
-)
+RECURSE_FOR_TESTS(ut)
diff --git a/yt/yql/providers/yt/codec/codegen/ya.make.inc b/yt/yql/providers/yt/codec/codegen/ya.make.inc
new file mode 100644
index 0000000000..0548d7e545
--- /dev/null
+++ b/yt/yql/providers/yt/codec/codegen/ya.make.inc
@@ -0,0 +1,97 @@
+SET(ORIG_SRC_DIR yt/yql/providers/yt/codec/codegen)
+
+SET(ORIG_SOURCES
+ yt_codec_cg.cpp
+ yt_codec_bc.cpp
+)
+
+ADDINCL(
+ ${ORIG_SRC_DIR}
+)
+
+PEERDIR(
+ library/cpp/resource
+ yql/essentials/types/binary_json
+ yql/essentials/parser/pg_wrapper/interface
+ yql/essentials/utils
+ yt/yql/providers/yt/codec/codegen
+)
+
+IF (NOT MKQL_DISABLE_CODEGEN)
+ LLVM_BC(
+ yt_codec_bc.cpp
+ NAME
+ YtCodecFuncs
+ SUFFIX .${LLVM_VER}
+ SYMBOLS
+ WriteJust
+ WriteNothing
+ WriteBool
+ Write8
+ Write16
+ Write32
+ Write64
+ Write120
+ WriteDecimal32
+ WriteDecimal64
+ WriteDecimal128
+ WriteFloat
+ WriteDouble
+ WriteString
+ ReadBool
+ ReadInt8
+ ReadUint8
+ ReadInt16
+ ReadUint16
+ ReadInt32
+ ReadUint32
+ ReadInt64
+ ReadUint64
+ ReadInt120
+ ReadDecimal32
+ ReadDecimal64
+ ReadDecimal128
+ ReadFloat
+ ReadDouble
+ ReadOptional
+ ReadVariantData
+ SkipFixedData
+ SkipVarData
+ ReadTzDate
+ ReadTzDatetime
+ ReadTzTimestamp
+ ReadTzDate32
+ ReadTzDatetime64
+ ReadTzTimestamp64
+ WriteTzDate
+ WriteTzDatetime
+ WriteTzTimestamp
+ WriteTzDate32
+ WriteTzDatetime64
+ WriteTzTimestamp64
+ GetWrittenBytes
+ FillZero
+ )
+ELSE()
+ CFLAGS(
+ -DMKQL_DISABLE_CODEGEN
+ )
+ENDIF()
+
+YQL_LAST_ABI_VERSION()
+
+PROVIDES(YT_CODEC_CODEGEN)
+
+INCLUDE(${ARCADIA_ROOT}/yql/essentials/minikql/computation/header.ya.make.inc)
+
+COPY(
+ WITH_CONTEXT
+ AUTO
+ FROM ${ORIG_SRC_DIR}
+ ${ORIG_SOURCES}
+ OUTPUT_INCLUDES
+ yql/essentials/minikql/codegen/codegen.h
+ ${BINDIR}/yql/essentials/minikql/computation/mkql_computation_node_codegen.h
+ llvm/IR/Module.h
+ llvm/IR/Instructions.h
+)
diff --git a/yt/yql/providers/yt/codec/codegen/yt_codec_cg.cpp b/yt/yql/providers/yt/codec/codegen/yt_codec_cg.cpp
index c81dab97cf..61c56e5531 100644
--- a/yt/yql/providers/yt/codec/codegen/yt_codec_cg.cpp
+++ b/yt/yql/providers/yt/codec/codegen/yt_codec_cg.cpp
@@ -10,7 +10,7 @@
#include <yql/essentials/minikql/mkql_node_builder.h>
#include <yql/essentials/minikql/mkql_string_util.h>
#include <yql/essentials/minikql/mkql_type_ops.h>
-#include <yql/essentials/minikql/computation/mkql_computation_node_codegen.h>
+#include <yql/essentials/minikql/computation/mkql_computation_node_codegen.h> // Y_IGNORE
#include <yql/essentials/minikql/codegen/codegen.h>
#include <yql/essentials/types/binary_json/read.h>
@@ -18,8 +18,8 @@
#include <library/cpp/resource/resource.h>
-#include <llvm/IR/Module.h>
-#include <llvm/IR/Instructions.h>
+#include <llvm/IR/Module.h> // Y_IGNORE
+#include <llvm/IR/Instructions.h> // Y_IGNORE
#endif
diff --git a/yt/yql/providers/yt/codec/ut/ya.make b/yt/yql/providers/yt/codec/ut/ya.make
index c58c4b1d9b..1eb7ca7064 100644
--- a/yt/yql/providers/yt/codec/ut/ya.make
+++ b/yt/yql/providers/yt/codec/ut/ya.make
@@ -13,7 +13,7 @@ PEERDIR(
yql/essentials/providers/common/codec
yql/essentials/providers/common/mkql
yt/yql/providers/yt/lib/yson_helpers
- yt/yql/providers/yt/codec/codegen
+ yt/yql/providers/yt/codec/codegen/llvm14
)
YQL_LAST_ABI_VERSION()
diff --git a/yt/yql/providers/yt/comp_nodes/dq/llvm14/ya.make b/yt/yql/providers/yt/comp_nodes/dq/llvm14/ya.make
index ae11c4c4e7..8d2e1c8ff9 100644
--- a/yt/yql/providers/yt/comp_nodes/dq/llvm14/ya.make
+++ b/yt/yql/providers/yt/comp_nodes/dq/llvm14/ya.make
@@ -5,5 +5,7 @@ PEERDIR(
yql/essentials/minikql/computation/llvm14
)
+INCLUDE(../ya.make.inc)
+
END()
diff --git a/yt/yql/providers/yt/comp_nodes/dq/llvm16/ya.make b/yt/yql/providers/yt/comp_nodes/dq/llvm16/ya.make
new file mode 100644
index 0000000000..b9e76b7bda
--- /dev/null
+++ b/yt/yql/providers/yt/comp_nodes/dq/llvm16/ya.make
@@ -0,0 +1,10 @@
+LIBRARY()
+
+PEERDIR(
+ yt/yql/providers/yt/comp_nodes/dq
+ yql/essentials/minikql/computation/llvm16
+)
+
+INCLUDE(../ya.make.inc)
+
+END()
diff --git a/yt/yql/providers/yt/comp_nodes/dq/ya.make b/yt/yql/providers/yt/comp_nodes/dq/ya.make
index 397213c38a..4b86e9e9b2 100644
--- a/yt/yql/providers/yt/comp_nodes/dq/ya.make
+++ b/yt/yql/providers/yt/comp_nodes/dq/ya.make
@@ -1,55 +1,10 @@
LIBRARY()
-PEERDIR(
- yql/essentials/minikql
- yql/essentials/minikql/computation/llvm14
- yt/yql/providers/yt/comp_nodes
- yt/yql/providers/yt/codec
- yql/essentials/providers/common/codec
- yql/essentials/utils/failure_injector
- yt/cpp/mapreduce/interface
- yt/cpp/mapreduce/common
- library/cpp/yson/node
- yt/yt/core
- yql/essentials/public/udf/arrow
- yql/essentials/public/udf
- contrib/libs/apache/arrow
- contrib/libs/flatbuffers
-)
-
-ADDINCL(
- contrib/libs/flatbuffers/include
-)
-
-IF(LINUX)
- PEERDIR(
- yt/yt/client
- yt/yt/client/arrow
- yt/yql/providers/yt/lib/yt_rpc_helpers
- )
-
- SRCS(
- stream_decoder.cpp
- dq_yt_rpc_reader.cpp
- dq_yt_rpc_helpers.cpp
- dq_yt_block_reader.cpp
- )
- CFLAGS(
- -Wno-unused-parameter
- )
-ENDIF()
+SRCS()
-SRCS(
- dq_yt_reader.cpp
- dq_yt_factory.cpp
- dq_yt_writer.cpp
+PEERDIR(
)
-YQL_LAST_ABI_VERSION()
-
-
END()
-RECURSE(llvm14)
-
-
+RECURSE(llvm14 llvm16)
diff --git a/yt/yql/providers/yt/comp_nodes/dq/ya.make.inc b/yt/yql/providers/yt/comp_nodes/dq/ya.make.inc
new file mode 100644
index 0000000000..601177fb3f
--- /dev/null
+++ b/yt/yql/providers/yt/comp_nodes/dq/ya.make.inc
@@ -0,0 +1,69 @@
+INCLUDE(${ARCADIA_ROOT}/yql/essentials/minikql/computation/header.ya.make.inc)
+
+PEERDIR(
+ yt/yql/providers/yt/comp_nodes/dq
+ yql/essentials/minikql
+ yt/yql/providers/yt/comp_nodes
+ yt/yql/providers/yt/codec
+ yql/essentials/providers/common/codec
+ yql/essentials/utils/failure_injector
+ yt/cpp/mapreduce/interface
+ yt/cpp/mapreduce/common
+ library/cpp/yson/node
+ yt/yt/core
+ yql/essentials/public/udf/arrow
+ yql/essentials/public/udf
+ contrib/libs/apache/arrow
+ contrib/libs/flatbuffers
+)
+
+ADDINCL(
+ contrib/libs/flatbuffers/include
+)
+
+SET(ORIG_SRC_DIR ${ARCADIA_ROOT}/yt/yql/providers/yt/comp_nodes/dq)
+
+IF(LINUX)
+ PEERDIR(
+ yt/yt/client
+ yt/yt/client/arrow
+ yt/yql/providers/yt/lib/yt_rpc_helpers
+ )
+
+ SET(ORIG_SOURCES
+ dq_yt_reader.cpp
+ dq_yt_factory.cpp
+ dq_yt_writer.cpp
+ stream_decoder.cpp
+ dq_yt_rpc_reader.cpp
+ dq_yt_rpc_helpers.cpp
+ dq_yt_block_reader.cpp
+ )
+
+ CFLAGS(
+ -Wno-unused-parameter
+ )
+ELSE()
+ SET(ORIG_SOURCES
+ dq_yt_reader.cpp
+ dq_yt_factory.cpp
+ dq_yt_writer.cpp
+ )
+ENDIF()
+
+YQL_LAST_ABI_VERSION()
+
+ADDINCL(
+ ${ORIG_SRC_DIR}
+)
+
+COPY(
+ WITH_CONTEXT
+ AUTO
+ FROM ${ORIG_SRC_DIR}
+ ${ORIG_SOURCES}
+ OUTPUT_INCLUDES
+ ${BINDIR}/yql/essentials/minikql/computation/mkql_computation_node_codegen.h
+)
+
+PROVIDES(YT_COMP_NODES_DQ)
diff --git a/yt/yql/providers/yt/comp_nodes/llvm14/ya.make b/yt/yql/providers/yt/comp_nodes/llvm14/ya.make
index 47cfd1f49a..e3e64bfe16 100644
--- a/yt/yql/providers/yt/comp_nodes/llvm14/ya.make
+++ b/yt/yql/providers/yt/comp_nodes/llvm14/ya.make
@@ -5,12 +5,7 @@ NO_COMPILER_WARNINGS()
PEERDIR(
yql/essentials/minikql/codegen/llvm14
yql/essentials/minikql/invoke_builtins/llvm14
- contrib/libs/llvm14/lib/IR
- contrib/libs/llvm14/lib/ExecutionEngine/MCJIT
- contrib/libs/llvm14/lib/Linker
- contrib/libs/llvm14/lib/Target/X86
- contrib/libs/llvm14/lib/Target/X86/AsmParser
- contrib/libs/llvm14/lib/Transforms/IPO
+ yt/yql/providers/yt/codec/codegen/llvm14
)
INCLUDE(../ya.make.inc)
diff --git a/yt/yql/providers/yt/comp_nodes/llvm16/ya.make b/yt/yql/providers/yt/comp_nodes/llvm16/ya.make
new file mode 100644
index 0000000000..58aab9df23
--- /dev/null
+++ b/yt/yql/providers/yt/comp_nodes/llvm16/ya.make
@@ -0,0 +1,13 @@
+LIBRARY()
+
+NO_COMPILER_WARNINGS()
+
+PEERDIR(
+ yql/essentials/minikql/codegen/llvm16
+ yql/essentials/minikql/invoke_builtins/llvm16
+ yt/yql/providers/yt/codec/codegen/llvm16
+)
+
+INCLUDE(../ya.make.inc)
+
+END()
diff --git a/yt/yql/providers/yt/comp_nodes/ut/llvm14/ya.make b/yt/yql/providers/yt/comp_nodes/ut/llvm14/ya.make
new file mode 100644
index 0000000000..0dc094f653
--- /dev/null
+++ b/yt/yql/providers/yt/comp_nodes/ut/llvm14/ya.make
@@ -0,0 +1,11 @@
+UNITTEST()
+
+PEERDIR(
+ yt/yql/providers/yt/comp_nodes/llvm14
+ yql/essentials/minikql/comp_nodes/llvm14
+ yt/yql/providers/yt/comp_nodes/llvm14
+)
+
+INCLUDE(../ya.make.inc)
+
+END()
diff --git a/yt/yql/providers/yt/comp_nodes/ut/llvm16/ya.make b/yt/yql/providers/yt/comp_nodes/ut/llvm16/ya.make
new file mode 100644
index 0000000000..c0a8391a1a
--- /dev/null
+++ b/yt/yql/providers/yt/comp_nodes/ut/llvm16/ya.make
@@ -0,0 +1,11 @@
+UNITTEST()
+
+PEERDIR(
+ yt/yql/providers/yt/comp_nodes/llvm16
+ yql/essentials/minikql/comp_nodes/llvm16
+ yt/yql/providers/yt/comp_nodes/llvm16
+)
+
+INCLUDE(../ya.make.inc)
+
+END()
diff --git a/yt/yql/providers/yt/comp_nodes/ut/ya.make b/yt/yql/providers/yt/comp_nodes/ut/ya.make
index 9ec924b301..48a2e6f160 100644
--- a/yt/yql/providers/yt/comp_nodes/ut/ya.make
+++ b/yt/yql/providers/yt/comp_nodes/ut/ya.make
@@ -1,29 +1 @@
-UNITTEST_FOR(yt/yql/providers/yt/comp_nodes)
-
-FORK_SUBTESTS()
-
-IF (SANITIZER_TYPE == "thread" OR WITH_VALGRIND)
- SIZE(LARGE)
- TAG(ya:fat)
-ELSE()
- SIZE(MEDIUM)
-ENDIF()
-
-SRCS(
- yql_mkql_output_ut.cpp
-)
-
-PEERDIR(
- library/cpp/random_provider
- library/cpp/time_provider
- yql/essentials/minikql/comp_nodes/llvm14
- yql/essentials/public/udf/service/exception_policy
- yt/yql/providers/yt/comp_nodes/llvm14
- yt/yql/providers/yt/codec
- yt/yql/providers/yt/codec/codegen
- yql/essentials/sql/pg_dummy
-)
-
-YQL_LAST_ABI_VERSION()
-
-END()
+RECURSE(llvm14 llvm16)
diff --git a/yt/yql/providers/yt/comp_nodes/ut/ya.make.inc b/yt/yql/providers/yt/comp_nodes/ut/ya.make.inc
new file mode 100644
index 0000000000..27516dc34a
--- /dev/null
+++ b/yt/yql/providers/yt/comp_nodes/ut/ya.make.inc
@@ -0,0 +1,32 @@
+FORK_SUBTESTS()
+
+IF (SANITIZER_TYPE == "thread" OR WITH_VALGRIND)
+ SIZE(LARGE)
+ TAG(ya:fat)
+ELSE()
+ SIZE(MEDIUM)
+ENDIF()
+
+SET(ORIG_SRC_DIR yt/yql/providers/yt/comp_nodes/ut)
+
+SET(ORIG_SOURCES
+ yql_mkql_output_ut.cpp
+)
+
+PEERDIR(
+ library/cpp/random_provider
+ library/cpp/time_provider
+ yql/essentials/public/udf/service/exception_policy
+ yt/yql/providers/yt/codec
+ yt/yql/providers/yt/codec/codegen
+ yql/essentials/sql/pg_dummy
+)
+
+YQL_LAST_ABI_VERSION()
+
+COPY(
+ WITH_CONTEXT
+ AUTO
+ FROM ${ORIG_SRC_DIR}
+ ${ORIG_SOURCES}
+)
diff --git a/yt/yql/providers/yt/comp_nodes/ya.make b/yt/yql/providers/yt/comp_nodes/ya.make
index 2f1044fd1d..01bbc05e6a 100644
--- a/yt/yql/providers/yt/comp_nodes/ya.make
+++ b/yt/yql/providers/yt/comp_nodes/ya.make
@@ -4,6 +4,7 @@ END()
RECURSE(
llvm14
+ llvm16
no_llvm
)
diff --git a/yt/yql/providers/yt/comp_nodes/ya.make.inc b/yt/yql/providers/yt/comp_nodes/ya.make.inc
index 0029a16701..b0a54d85a4 100644
--- a/yt/yql/providers/yt/comp_nodes/ya.make.inc
+++ b/yt/yql/providers/yt/comp_nodes/ya.make.inc
@@ -36,10 +36,10 @@ COPY(
AUTO
FROM ${ORIG_SRC_DIR}
${ORIG_SOURCES}
- OUTPUT_INCLUDES
- ${BINDIR}/yql/essentials/minikql/computation/mkql_computation_node_codegen.h
- ${BINDIR}/yql/essentials/minikql/invoke_builtins/mkql_builtins_codegen.h
- ${BINDIR}/yql/essentials/minikql/invoke_builtins/mkql_builtins_decimal.h
+ OUTPUT_INCLUDES
+ ${BINDIR}/yql/essentials/minikql/computation/mkql_computation_node_codegen.h
+ ${BINDIR}/yql/essentials/minikql/invoke_builtins/mkql_builtins_codegen.h
+ ${BINDIR}/yql/essentials/minikql/invoke_builtins/mkql_builtins_decimal.h
)
PROVIDES(YT_COMP_NODES)