/*============================================================================= Copyright (c) 2001-2011 Joel de Guzman Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) =============================================================================*/ #include "config.hpp" #include "vm.hpp" #include #if defined(_MSC_VER) # pragma warning(disable: 4800) // forcing value to bool 'true' or 'false' // (performance warning) #endif namespace client { vmachine::vmachine() { llvm::InitializeNativeTarget(); llvm::LLVMContext& context = llvm::getGlobalContext(); // Make the module, which holds all the code. module_ = new llvm::Module("Conjure JIT", context); // Create the JIT. This takes ownership of the module. std::string error; execution_engine_ = llvm::EngineBuilder(module_).setErrorStr(&error).create(); BOOST_ASSERT(execution_engine_ != 0); if (!execution_engine_) { std::cerr << "Could not create ExecutionEngine: " << error << std::endl; exit(1); } } }