From 066c1356292d46d5bf5b8e8b6c37304bf98ec9ba Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Sat, 15 Jun 2024 15:11:10 -0400 Subject: [PATCH] xo-jit: bugfix: need release on unique_ptr -> xfer to refcounted ptr --- example/ex1/ex1.cpp | 3 ++- include/xo/jit/Jit.hpp | 2 ++ src/jit/Jit.cpp | 9 +++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/example/ex1/ex1.cpp b/example/ex1/ex1.cpp index 01b914d8..04dc2f12 100644 --- a/example/ex1/ex1.cpp +++ b/example/ex1/ex1.cpp @@ -53,7 +53,8 @@ main() { llvm::InitializeNativeTargetAsmPrinter(); llvm::InitializeNativeTargetAsmParser(); - auto jit = llvm_exit_on_err(Jit::make_aux()); + //auto jit = llvm_exit_on_err(Jit::make_aux()); + auto jit = Jit::make(); //static_assert(std::is_function_v); diff --git a/include/xo/jit/Jit.hpp b/include/xo/jit/Jit.hpp index d66f86fe..26c81e05 100644 --- a/include/xo/jit/Jit.hpp +++ b/include/xo/jit/Jit.hpp @@ -73,6 +73,8 @@ namespace xo { public: /* tracking KaleidoscopeJIT::Create() here.. */ static llvm::Expected> make_aux(); + static xo::ref::rp make(); + llvm::Value * codegen_constant(ref::brw expr); llvm::Function * codegen_primitive(ref::brw expr); diff --git a/src/jit/Jit.cpp b/src/jit/Jit.cpp index d5aa2901..66412b67 100644 --- a/src/jit/Jit.cpp +++ b/src/jit/Jit.cpp @@ -66,6 +66,15 @@ namespace xo { )); } /*make*/ + xo::ref::rp + Jit::make() { + static llvm::ExitOnError llvm_exit_on_err; + + std::unique_ptr jit = llvm_exit_on_err(make_aux()); + + return jit.release(); + } /*make*/ + Jit::Jit( std::unique_ptr kal_jit #ifdef NOT_USING