Maintain the old LTO API, by using the global context.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74678 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/lto/LTOCodeGenerator.cpp b/tools/lto/LTOCodeGenerator.cpp
index 6f5e6bc..1a21132 100644
--- a/tools/lto/LTOCodeGenerator.cpp
+++ b/tools/lto/LTOCodeGenerator.cpp
@@ -19,6 +19,7 @@
 #include "llvm/Constants.h"
 #include "llvm/DerivedTypes.h"
 #include "llvm/Linker.h"
+#include "llvm/LLVMContext.h"
 #include "llvm/Module.h"
 #include "llvm/ModuleProvider.h"
 #include "llvm/PassManager.h"
@@ -69,8 +70,8 @@
 }
 
 
-LTOCodeGenerator::LTOCodeGenerator(LLVMContext& Context) 
-    : _context(Context),
+LTOCodeGenerator::LTOCodeGenerator() 
+    : _context(getGlobalContext()),
       _linker("LinkTimeOptimizer", "ld-temp.o", _context), _target(NULL),
       _emitDwarfDebugInfo(false), _scopeRestrictionsDone(false),
       _codeModel(LTO_CODEGEN_PIC_MODEL_DYNAMIC),
diff --git a/tools/lto/LTOCodeGenerator.h b/tools/lto/LTOCodeGenerator.h
index 7b0c284..5548050 100644
--- a/tools/lto/LTOCodeGenerator.h
+++ b/tools/lto/LTOCodeGenerator.h
@@ -31,7 +31,7 @@
 public:
     static const char*        getVersionString();
     
-                            LTOCodeGenerator(llvm::LLVMContext& Context);
+                            LTOCodeGenerator();
                             ~LTOCodeGenerator();
                             
     bool                addModule(class LTOModule*, std::string& errMsg);
diff --git a/tools/lto/LTOModule.cpp b/tools/lto/LTOModule.cpp
index 157928c..9c8baef 100644
--- a/tools/lto/LTOModule.cpp
+++ b/tools/lto/LTOModule.cpp
@@ -69,7 +69,7 @@
 bool LTOModule::isTargetMatch(MemoryBuffer* buffer, const char* triplePrefix)
 {
     OwningPtr<ModuleProvider> mp(getBitcodeModuleProvider(buffer,
-                                                          *new LLVMContext()));
+                                                          getGlobalContext()));
     // on success, mp owns buffer and both are deleted at end of this method
     if ( !mp ) {
         delete buffer;
@@ -87,13 +87,12 @@
 }
 
 LTOModule* LTOModule::makeLTOModule(const char* path,
-                                    LLVMContext& Context,
                                     std::string& errMsg)
 {
     OwningPtr<MemoryBuffer> buffer(MemoryBuffer::getFile(path, &errMsg));
     if ( !buffer )
         return NULL;
-    return makeLTOModule(buffer.get(), Context, errMsg);
+    return makeLTOModule(buffer.get(), errMsg);
 }
 
 /// makeBuffer - create a MemoryBuffer from a memory range.
@@ -113,13 +112,12 @@
 
 
 LTOModule* LTOModule::makeLTOModule(const void* mem, size_t length, 
-                                    LLVMContext& Context,
                                     std::string& errMsg)
 {
     OwningPtr<MemoryBuffer> buffer(makeBuffer(mem, length));
     if ( !buffer )
         return NULL;
-    return makeLTOModule(buffer.get(), Context, errMsg);
+    return makeLTOModule(buffer.get(), errMsg);
 }
 
 /// getFeatureString - Return a string listing the features associated with the
@@ -142,11 +140,10 @@
 }
 
 LTOModule* LTOModule::makeLTOModule(MemoryBuffer* buffer,
-                                    LLVMContext& Context,
                                     std::string& errMsg)
 {
     // parse bitcode buffer
-    OwningPtr<Module> m(ParseBitcodeFile(buffer, Context, &errMsg));
+    OwningPtr<Module> m(ParseBitcodeFile(buffer, getGlobalContext(), &errMsg));
     if ( !m )
         return NULL;
     // find machine architecture for this module
diff --git a/tools/lto/LTOModule.h b/tools/lto/LTOModule.h
index 367ad10..8fd3915 100644
--- a/tools/lto/LTOModule.h
+++ b/tools/lto/LTOModule.h
@@ -32,7 +32,6 @@
     class GlobalValue;
     class Value;
     class Function;
-    class LLVMContext;
 }
 
 
@@ -52,10 +51,8 @@
                                                     const char* triplePrefix);
 
     static LTOModule*        makeLTOModule(const char* path,
-                                          llvm::LLVMContext& Context,
                                           std::string& errMsg);
     static LTOModule*        makeLTOModule(const void* mem, size_t length,
-                                           llvm::LLVMContext& Context,
                                            std::string& errMsg);
 
     const char*              getTargetTriple();
@@ -91,7 +88,6 @@
                                                     const char* triplePrefix);
 
     static LTOModule*       makeLTOModule(llvm::MemoryBuffer* buffer,
-                                          llvm::LLVMContext& Context,
                                                         std::string& errMsg);
     static llvm::MemoryBuffer* makeBuffer(const void* mem, size_t length);
 
diff --git a/tools/lto/lto.cpp b/tools/lto/lto.cpp
index 02034bb..6482798 100644
--- a/tools/lto/lto.cpp
+++ b/tools/lto/lto.cpp
@@ -86,10 +86,9 @@
 // loads an object file from disk  
 // returns NULL on error (check lto_get_error_message() for details)
 //
-lto_module_t lto_module_create(const char* path, LLVMContextRef Ctxt)
+lto_module_t lto_module_create(const char* path)
 {
-     return LTOModule::makeLTOModule(path, *llvm::unwrap(Ctxt), 
-                                     sLastErrorString);
+     return LTOModule::makeLTOModule(path, sLastErrorString);
 }
 
 
@@ -97,11 +96,9 @@
 // loads an object file from memory 
 // returns NULL on error (check lto_get_error_message() for details)
 //
-lto_module_t lto_module_create_from_memory(const void* mem, size_t length,
-                                           LLVMContextRef Ctxt)
+lto_module_t lto_module_create_from_memory(const void* mem, size_t length)
 {
-     return LTOModule::makeLTOModule(mem, length, *llvm::unwrap(Ctxt),
-                                     sLastErrorString);
+     return LTOModule::makeLTOModule(mem, length, sLastErrorString);
 }
 
 
@@ -158,9 +155,9 @@
 // instantiates a code generator
 // returns NULL if there is an error
 //
-lto_code_gen_t lto_codegen_create(LLVMContextRef ContextRef)
+lto_code_gen_t lto_codegen_create(void)
 {
-     return new LTOCodeGenerator(*llvm::unwrap(ContextRef));
+     return new LTOCodeGenerator();
 }