32 llvm::Module* _module;
33 std::unique_ptr<llvm::LLVMContext> _context;
34 std::unique_ptr<llvm::ExecutionEngine> _executionEngine;
35 std::unique_ptr<llvm::FunctionPassManager> _fpm;
50 if (!_executionEngine.get()) {
54 _fpm.reset(
new llvm::FunctionPassManager(_module));
58 _fpm->doInitialization();
77 llvm::PassManagerBuilder
builder;
79 builder.populateFunctionPassManager(*_fpm);
101 if (
func ==
nullptr) {
109 llvm::verifyFunction(*
func);
115 void *
fPtr = _executionEngine->getPointerToFunction(
func);