• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*=============================================================================
2     Copyright (c) 2001-2011 Joel de Guzman
3 
4     Distributed under the Boost Software License, Version 1.0. (See accompanying
5     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 =============================================================================*/
7 #include "config.hpp"
8 #include "vm.hpp"
9 #include <iostream>
10 
11 #if defined(_MSC_VER)
12 # pragma warning(disable: 4800) // forcing value to bool 'true' or 'false'
13                                 // (performance warning)
14 #endif
15 
16 namespace client
17 {
vmachine()18     vmachine::vmachine()
19     {
20         llvm::InitializeNativeTarget();
21         llvm::LLVMContext& context = llvm::getGlobalContext();
22 
23         // Make the module, which holds all the code.
24         module_ = new llvm::Module("Conjure JIT", context);
25 
26         // Create the JIT.  This takes ownership of the module.
27         std::string error;
28         execution_engine_ =
29             llvm::EngineBuilder(module_).setErrorStr(&error).create();
30 
31         BOOST_ASSERT(execution_engine_ != 0);
32         if (!execution_engine_)
33         {
34             std::cerr <<
35                 "Could not create ExecutionEngine: " <<
36                 error << std::endl;
37 
38             exit(1);
39         }
40     }
41 }
42 
43 
44