12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- /*=============================================================================
- 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 <iostream>
- #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);
- }
- }
- }
|