diff options
author | Jacques Lucke <jacques@blender.org> | 2021-12-29 22:37:26 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2021-12-29 22:37:26 +0300 |
commit | 6a69a32c6d56ff2c867dd60ed890525723267c99 (patch) | |
tree | f3f71ca9a0eff1e61c28b6a9c19d7e6c20ba15db | |
parent | cc32f73a2959fc5be23f294c3045884d807eeb82 (diff) |
object file test
-rw-r--r-- | source/blender/functions/intern/llvm.cc | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/source/blender/functions/intern/llvm.cc b/source/blender/functions/intern/llvm.cc index de255962dda..e8cf3a3e998 100644 --- a/source/blender/functions/intern/llvm.cc +++ b/source/blender/functions/intern/llvm.cc @@ -25,6 +25,7 @@ #include <llvm/IR/Verifier.h> #include <llvm/Support/CommandLine.h> #include <llvm/Support/TargetRegistry.h> +#include <llvm/Object/ObjectFile.h> #include <llvm/Support/TargetSelect.h> #include "FN_llvm.hh" @@ -90,9 +91,15 @@ void playground() MyObjectCache object_cache; + llvm::Expected<llvm::object::OwningBinary<llvm::object::ObjectFile>> object_file_ex = llvm::object::ObjectFile::createObjectFile(object_file_path); + if (!object_file_ex) { + return; + } + llvm::Module *module_ptr = &*module; std::unique_ptr<llvm::ExecutionEngine> ee{llvm::EngineBuilder(std::move(module)).create()}; - ee->setObjectCache(&object_cache); + ee->addObjectFile(std::move(*object_file_ex)); + //ee->setObjectCache(&object_cache); ee->finalizeObject(); const uint64_t function_ptr = ee->getFunctionAddress(function->getName().str()); |