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

Chris Lattner lattner at cs.uiuc.edu
Tue Mar 21 22:07:29 PST 2006



Changes in directory llvm/include/llvm/ExecutionEngine:

ExecutionEngine.h updated: 1.34 -> 1.35
---
Log message:

wrap lines to 80 columns.

Add static JITCtor/InterpCtor fields


---
Diffs of the changes:  (+15 -5)

 ExecutionEngine.h |   20 +++++++++++++++-----
 1 files changed, 15 insertions(+), 5 deletions(-)


Index: llvm/include/llvm/ExecutionEngine/ExecutionEngine.h
diff -u llvm/include/llvm/ExecutionEngine/ExecutionEngine.h:1.34 llvm/include/llvm/ExecutionEngine/ExecutionEngine.h:1.35
--- llvm/include/llvm/ExecutionEngine/ExecutionEngine.h:1.34	Wed Mar  8 12:42:33 2006
+++ llvm/include/llvm/ExecutionEngine/ExecutionEngine.h	Wed Mar 22 00:06:37 2006
@@ -48,11 +48,13 @@
   std::map<void *, const GlobalValue*> GlobalAddressReverseMap;
 
 public:
-  std::map<const GlobalValue*, void *>& getGlobalAddressMap(const MutexGuard& locked) {
+  std::map<const GlobalValue*, void *> &
+  getGlobalAddressMap(const MutexGuard &locked) {
     return GlobalAddressMap;
   }
 
-  std::map<void *, const GlobalValue*>& getGlobalAddressReverseMap(const MutexGuard& locked) {
+  std::map<void*, const GlobalValue*> & 
+  getGlobalAddressReverseMap(const MutexGuard& locked) {
     return GlobalAddressReverseMap;
   }
 };
@@ -71,9 +73,16 @@
     TD = &td;
   }
 
+  // To avoid having libexecutionengine depend on the JIT and interpreter
+  // libraries, the JIT and Interpreter set these functions to ctor pointers
+  // at startup time if they are linked in.
+  typedef ExecutionEngine *(*EECtorFn)(ModuleProvider*, IntrinsicLowering*);
+  static EECtorFn JITCtor, InterpCtor;
+    
 public:
-  /// lock - This lock is protects the ExecutionEngine, JIT, JITResolver and JITEmitter classes.
-  /// It must be held while changing the internal state of any of those classes.
+  /// lock - This lock is protects the ExecutionEngine, JIT, JITResolver and
+  /// JITEmitter classes.  It must be held while changing the internal state of
+  /// any of those classes.
   sys::Mutex lock; // Used to make this class and subclasses thread-safe
 
   ExecutionEngine(ModuleProvider *P);
@@ -156,7 +165,8 @@
   void *getPointerToGlobalIfAvailable(const GlobalValue *GV) {
     MutexGuard locked(lock);
 
-    std::map<const GlobalValue*, void*>::iterator I = state.getGlobalAddressMap(locked).find(GV);
+    std::map<const GlobalValue*, void*>::iterator I =
+      state.getGlobalAddressMap(locked).find(GV);
     return I != state.getGlobalAddressMap(locked).end() ? I->second : 0;
   }
 






More information about the llvm-commits mailing list