Mercurial > hg > Members > tobaru > cbc > CbC_llvm
comparison include/llvm/ExecutionEngine/MCJIT.h @ 0:95c75e76d11b
LLVM 3.4
author | Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 12 Dec 2013 13:56:28 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:95c75e76d11b |
---|---|
1 //===-- MCJIT.h - MC-Based Just-In-Time Execution Engine --------*- C++ -*-===// | |
2 // | |
3 // The LLVM Compiler Infrastructure | |
4 // | |
5 // This file is distributed under the University of Illinois Open Source | |
6 // License. See LICENSE.TXT for details. | |
7 // | |
8 //===----------------------------------------------------------------------===// | |
9 // | |
10 // This file forces the MCJIT to link in on certain operating systems. | |
11 // (Windows). | |
12 // | |
13 //===----------------------------------------------------------------------===// | |
14 | |
15 #ifndef LLVM_EXECUTIONENGINE_MCJIT_H | |
16 #define LLVM_EXECUTIONENGINE_MCJIT_H | |
17 | |
18 #include "llvm/ExecutionEngine/ExecutionEngine.h" | |
19 #include <cstdlib> | |
20 | |
21 extern "C" void LLVMLinkInMCJIT(); | |
22 | |
23 namespace { | |
24 struct ForceMCJITLinking { | |
25 ForceMCJITLinking() { | |
26 // We must reference MCJIT in such a way that compilers will not | |
27 // delete it all as dead code, even with whole program optimization, | |
28 // yet is effectively a NO-OP. As the compiler isn't smart enough | |
29 // to know that getenv() never returns -1, this will do the job. | |
30 if (std::getenv("bar") != (char*) -1) | |
31 return; | |
32 | |
33 LLVMLinkInMCJIT(); | |
34 } | |
35 } ForceMCJITLinking; | |
36 } | |
37 | |
38 #endif |