[llvm-commits] CVS: llvm/include/llvm/ExecutionEngine/Interpreter.h JIT.h

Jeff Cohen jeffc at jolt-lang.org
Thu Mar 23 18:54:05 PST 2006



Changes in directory llvm/include/llvm/ExecutionEngine:

Interpreter.h added (r1.1)
JIT.h added (r1.1)
---
Log message:

Get JIT/Interpreter working on Windows again.

---
Diffs of the changes:  (+78 -0)

 Interpreter.h |   39 +++++++++++++++++++++++++++++++++++++++
 JIT.h         |   39 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 78 insertions(+)


Index: llvm/include/llvm/ExecutionEngine/Interpreter.h
diff -c /dev/null llvm/include/llvm/ExecutionEngine/Interpreter.h:1.1
*** /dev/null	Thu Mar 23 20:53:59 2006
--- llvm/include/llvm/ExecutionEngine/Interpreter.h	Thu Mar 23 20:53:49 2006
***************
*** 0 ****
--- 1,39 ----
+ //===- ExecutionEngine.h - Abstract Execution Engine Interface --*- C++ -*-===//
+ //
+ //                     The LLVM Compiler Infrastructure
+ //
+ // This file was developed by Jeff Cohen and is distributed under the
+ // University of Illinois Open Source License. See LICENSE.TXT for details.
+ //
+ //===----------------------------------------------------------------------===//
+ //
+ // This file forces the interpreter to link in on certain operating systems.
+ // (Windows).
+ //
+ //===----------------------------------------------------------------------===//
+ 
+ #ifndef EXECUTION_ENGINE_INTERPRETER_H
+ #define EXECUTION_ENGINE_INTERPRETER_H
+ 
+ #include "llvm/ExecutionEngine/ExecutionEngine.h"
+ 
+ namespace llvm {
+   extern void LinkInInterpreter();
+ }
+ 
+ namespace {
+   struct ForceInterpreterLinking {
+     ForceInterpreterLinking() {
+       // We must reference the passes in such a way that compilers will not
+       // delete it all as dead code, even with whole program optimization,
+       // yet is effectively a NO-OP. As the compiler isn't smart enough
+       // to know that getenv() never returns -1, this will do the job.
+       if (std::getenv("bar") != (char*) -1)
+         return;
+ 
+       llvm::LinkInInterpreter();
+     }
+   } ForceInterpreterLinking;
+ }
+ 
+ #endif


Index: llvm/include/llvm/ExecutionEngine/JIT.h
diff -c /dev/null llvm/include/llvm/ExecutionEngine/JIT.h:1.1
*** /dev/null	Thu Mar 23 20:54:05 2006
--- llvm/include/llvm/ExecutionEngine/JIT.h	Thu Mar 23 20:53:49 2006
***************
*** 0 ****
--- 1,39 ----
+ //===- ExecutionEngine.h - Abstract Execution Engine Interface --*- C++ -*-===//
+ //
+ //                     The LLVM Compiler Infrastructure
+ //
+ // This file was developed by Jeff Cohen and is distributed under the
+ // University of Illinois Open Source License. See LICENSE.TXT for details.
+ //
+ //===----------------------------------------------------------------------===//
+ //
+ // This file forces the interpreter to link in on certain operating systems.
+ // (Windows).
+ //
+ //===----------------------------------------------------------------------===//
+ 
+ #ifndef EXECUTION_ENGINE_JIT_H
+ #define EXECUTION_ENGINE_JIT_H
+ 
+ #include "llvm/ExecutionEngine/ExecutionEngine.h"
+ 
+ namespace llvm {
+   extern void LinkInJIT();
+ }
+ 
+ namespace {
+   struct ForceJITLinking {
+     ForceJITLinking() {
+       // We must reference the passes in such a way that compilers will not
+       // delete it all as dead code, even with whole program optimization,
+       // yet is effectively a NO-OP. As the compiler isn't smart enough
+       // to know that getenv() never returns -1, this will do the job.
+       if (std::getenv("bar") != (char*) -1)
+         return;
+ 
+       llvm::LinkInJIT();
+     }
+   } ForceJITLinking;
+ }
+ 
+ #endif






More information about the llvm-commits mailing list