From 346cf8d188a2d0186988e96bc2c5808aabd9d0b0 Mon Sep 17 00:00:00 2001 From: Andrey Derzhavin Date: Mon, 2 Feb 2026 00:29:03 +0300 Subject: [PATCH 1/2] [cmake] Add tpde + empty target --- cmake/dependencies.cmake | 18 +++++++++++++----- src/jit/CMakeLists.txt | 1 + src/jit/factory/CMakeLists.txt | 10 ++++++++-- src/jit/factory/factory.cc | 4 +++- src/jit/tpde/CMakeLists.txt | 8 ++++++++ src/jit/tpde/include/prot/jit/tpde.hh | 12 ++++++++++++ src/jit/tpde/tpde.cc | 6 ++++++ 7 files changed, 51 insertions(+), 8 deletions(-) create mode 100644 src/jit/tpde/CMakeLists.txt create mode 100644 src/jit/tpde/include/prot/jit/tpde.hh create mode 100644 src/jit/tpde/tpde.cc diff --git a/cmake/dependencies.cmake b/cmake/dependencies.cmake index 3c2e89f..af2e210 100644 --- a/cmake/dependencies.cmake +++ b/cmake/dependencies.cmake @@ -38,8 +38,7 @@ CPMAddPackage( VERSION 7.30 EXCLUDE_FROM_ALL True SYSTEM True - DOWNLOAD_ONLY True -) + DOWNLOAD_ONLY True) # llvm find_package(LLVM 18.1.3 CONFIG REQUIRED) @@ -52,7 +51,7 @@ CPMAddPackage( EXCLUDE_FROM_ALL True SYSTEM True OPTIONS "ASMJIT_STATIC ON" - OPTIONS "ASMJIT_NO_DEPRECATED ON") + OPTIONS "ASMJIT_NO_FOREIGN ON") # mir CPMAddPackage( @@ -62,5 +61,14 @@ CPMAddPackage( EXCLUDE_FROM_ALL True SYSTEM True OPTIONS "BUILD_TESTING OFF" - DOWNLOAD_ONLY True -) + DOWNLOAD_ONLY True) + +# TPDE +CPMAddPackage( + NAME tpde + GITHUB_REPOSITORY tpde2/tpde + GIT_TAG 6ca9d23175b4689e9a1342a584f6a57d46406bfb + EXCLUDE_FROM_ALL True + SYSTEM True + OPTIONS "TPDE_ENABLE_ENCODEGEN OFF" "TPDE_ENABLE_LLVM OFF" + "TPDE_INCLUDE_TESTS OFF") diff --git a/src/jit/CMakeLists.txt b/src/jit/CMakeLists.txt index 942690e..6fa4ee8 100644 --- a/src/jit/CMakeLists.txt +++ b/src/jit/CMakeLists.txt @@ -5,3 +5,4 @@ add_subdirectory(llvm) add_subdirectory(asmjit) add_subdirectory(mir) add_subdirectory(factory) +add_subdirectory(tpde) diff --git a/src/jit/factory/CMakeLists.txt b/src/jit/factory/CMakeLists.txt index 79334ea..8f4a4a4 100644 --- a/src/jit/factory/CMakeLists.txt +++ b/src/jit/factory/CMakeLists.txt @@ -3,8 +3,14 @@ add_library(prot_jit_factory STATIC factory.cc) target_link_libraries( prot_jit_factory PUBLIC PROT::exec_engine - PRIVATE PROT::defaults PROT::JIT::xbyak PROT::JIT::asmjit PROT::JIT::base - PROT::JIT::llvmbased PROT::JIT::lightning PROT::JIT::mir) + PRIVATE PROT::defaults + PROT::JIT::xbyak + PROT::JIT::asmjit + PROT::JIT::base + PROT::JIT::llvmbased + PROT::JIT::lightning + PROT::JIT::mir + PROT::JIT::tpde) target_include_directories(prot_jit_factory PUBLIC include) diff --git a/src/jit/factory/factory.cc b/src/jit/factory/factory.cc index e8fb7ad..37abf05 100644 --- a/src/jit/factory/factory.cc +++ b/src/jit/factory/factory.cc @@ -8,6 +8,7 @@ #include "prot/jit/lightning.hh" #include "prot/jit/llvmbasedjit.hh" #include "prot/jit/mir.hh" +#include "prot/jit/tpde.hh" #include "prot/jit/xbyak.hh" namespace prot::engine { @@ -20,7 +21,8 @@ const std::unordered_map(); }}, {"llvm", []() { return makeLLVMBasedJIT(); }}, {"lightning", []() { return makeLightning(); }}, - {"mir", []() { return makeMirJit(); }}}; + {"mir", []() { return makeMirJit(); }}, + {"tpde", []() { return makeTPDE(); }}}; std::vector JitFactory::backends() { std::vector res(kFactories.size()); diff --git a/src/jit/tpde/CMakeLists.txt b/src/jit/tpde/CMakeLists.txt new file mode 100644 index 0000000..2b7d236 --- /dev/null +++ b/src/jit/tpde/CMakeLists.txt @@ -0,0 +1,8 @@ +add_library(prot_jit_tpde STATIC tpde.cc) +target_link_libraries( + prot_jit_tpde + PUBLIC PROT::isa PROT::exec_engine + PRIVATE PROT::defaults fmt::fmt tpde::tpde PROT::JIT::base) +target_include_directories(prot_jit_tpde PUBLIC include) + +add_library(PROT::JIT::tpde ALIAS prot_jit_tpde) diff --git a/src/jit/tpde/include/prot/jit/tpde.hh b/src/jit/tpde/include/prot/jit/tpde.hh new file mode 100644 index 0000000..504f694 --- /dev/null +++ b/src/jit/tpde/include/prot/jit/tpde.hh @@ -0,0 +1,12 @@ +#ifndef PROT_JIT_TPDE_HH_INCLUDED +#define PROT_JIT_TPDE_HH_INCLUDED + +#include + +#include "prot/exec_engine.hh" + +namespace prot::engine { +std::unique_ptr makeTPDE(); +} + +#endif // PROT_JIT_TPDE_HH_INCLUDED diff --git a/src/jit/tpde/tpde.cc b/src/jit/tpde/tpde.cc new file mode 100644 index 0000000..0468c45 --- /dev/null +++ b/src/jit/tpde/tpde.cc @@ -0,0 +1,6 @@ +#include "prot/jit/tpde.hh" +#include "prot/jit/base.hh" + +namespace prot::engine { +std::unique_ptr makeTPDE() { return {}; } +} // namespace prot::engine From 6255d74e09677960614c4f31001e0aaeeb31ec2a Mon Sep 17 00:00:00 2001 From: Andrey Derzhavin Date: Mon, 2 Feb 2026 00:36:33 +0300 Subject: [PATCH 2/2] CI fix --- .github/workflows/build.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d9ad611..e97900e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -35,7 +35,7 @@ jobs: strategy: matrix: os: [ubuntu-latest] - compiler: [g++, clang++] + compiler: [g++-14, clang++-19] generator: [Ninja] export_commands: [OFF] build_type: [Debug, Release] @@ -56,6 +56,10 @@ jobs: if: ${{ matrix.generator == 'Ninja' }} run: sudo apt install ninja-build + - name: Install Clang 19 + if: ${{ matrix.compiler == 'clang++-19' }} + run: sudo apt install clang-19 + - name: Install clang-tidy if: ${{ matrix.export_commands == 'ON' }} run: sudo apt install clang-tidy