simplify creation of the interpreter, make ExecutionEngine ctor protected,
delete one ExecutionEngine ctor, minor cleanup.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44646 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/ExecutionEngine/JIT/JIT.cpp b/lib/ExecutionEngine/JIT/JIT.cpp
index 5b04124..b599497 100644
--- a/lib/ExecutionEngine/JIT/JIT.cpp
+++ b/lib/ExecutionEngine/JIT/JIT.cpp
@@ -66,7 +66,7 @@
   setTargetData(TM.getTargetData());
 
   // Initialize MCE
-  MCE = createEmitter(*this);
+  MCE = createEmitter(*this, 0);
 
   // Add target data
   MutexGuard locked(lock);
diff --git a/lib/ExecutionEngine/JIT/JIT.h b/lib/ExecutionEngine/JIT/JIT.h
index 5a3d661..6453740 100644
--- a/lib/ExecutionEngine/JIT/JIT.h
+++ b/lib/ExecutionEngine/JIT/JIT.h
@@ -121,7 +121,7 @@
   /// getCodeEmitter - Return the code emitter this JIT is emitting into.
   MachineCodeEmitter *getCodeEmitter() const { return MCE; }
 private:
-  static MachineCodeEmitter *createEmitter(JIT &J);
+  static MachineCodeEmitter *createEmitter(JIT &J, JITMemoryManager *JMM);
   void runJITOnFunction (Function *F);
 };
 
diff --git a/lib/ExecutionEngine/JIT/JITEmitter.cpp b/lib/ExecutionEngine/JIT/JITEmitter.cpp
index d08bf0b..a1b4b00 100644
--- a/lib/ExecutionEngine/JIT/JITEmitter.cpp
+++ b/lib/ExecutionEngine/JIT/JITEmitter.cpp
@@ -312,8 +312,8 @@
     /// Resolver - This contains info about the currently resolved functions.
     JITResolver Resolver;
   public:
-    JITEmitter(JIT &jit) : Resolver(jit) {
-      MemMgr = JITMemoryManager::CreateDefaultMemManager();
+    JITEmitter(JIT &jit, JITMemoryManager *JMM) : Resolver(jit) {
+      MemMgr = JMM ? JMM : JITMemoryManager::CreateDefaultMemManager();
       if (jit.getJITInfo().needsGOT()) {
         MemMgr->AllocateGOT();
         DOUT << "JIT is managing a GOT\n";
@@ -637,8 +637,8 @@
 //  Public interface to this file
 //===----------------------------------------------------------------------===//
 
-MachineCodeEmitter *JIT::createEmitter(JIT &jit) {
-  return new JITEmitter(jit);
+MachineCodeEmitter *JIT::createEmitter(JIT &jit, JITMemoryManager *JMM) {
+  return new JITEmitter(jit, JMM);
 }
 
 // getPointerToNamedFunction - This function is used as a global wrapper to