15 using ModulePtr_t = std::unique_ptr<llvm::Module>;
22 const std::string& cppCode,
const std::vector<std::string>& flags,
28 bool m_useNativePlatform{};
30 template <
class Signature_t>
31 llvm::Expected<std::function<Signature_t>> getFunction(std::string name)
35 auto EntrySym = JIT.lookup(name);
37 return EntrySym.takeError();
40#if LLVM_VERSION_MAJOR <= 14
41 auto* Entry = (Signature_t*)EntrySym->getAddress();
43 auto* Entry = (Signature_t*)(*EntrySym).getValue();
45 return std::function<Signature_t>(Entry);
48 const QString& errors()
const noexcept
52 std::unique_ptr<llvm::jitlink::JITLinkMemoryManager> m_memmgr;
54 std::unique_ptr<llvm::orc::LLJIT> m_jit;
56 llvm::orc::MangleAndInterner m_mangler;