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