Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacques Lucke <jacques@blender.org>2021-12-29 22:37:26 +0300
committerJacques Lucke <jacques@blender.org>2021-12-29 22:37:26 +0300
commit6a69a32c6d56ff2c867dd60ed890525723267c99 (patch)
treef3f71ca9a0eff1e61c28b6a9c19d7e6c20ba15db
parentcc32f73a2959fc5be23f294c3045884d807eeb82 (diff)
object file test
-rw-r--r--source/blender/functions/intern/llvm.cc9
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());