Maintain the old LTO API, by using the global context.
authorOwen Anderson <resistor@mac.com>
Thu, 2 Jul 2009 00:31:14 +0000 (00:31 +0000)
committerOwen Anderson <resistor@mac.com>
Thu, 2 Jul 2009 00:31:14 +0000 (00:31 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74678 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm-c/lto.h
tools/lto/LTOCodeGenerator.cpp
tools/lto/LTOCodeGenerator.h
tools/lto/LTOModule.cpp
tools/lto/LTOModule.h
tools/lto/lto.cpp

index 49b8bfbde965ac003ff2e74802258d56c3c565a1..1ae8c670dd29be023fe793c9cb2e9f8ff5c59f27 100644 (file)
@@ -59,8 +59,6 @@ typedef struct LTOModule*         lto_module_t;
 /** opaque reference to a code generator */
 typedef struct LTOCodeGenerator*  lto_code_gen_t;
 
-typedef struct LTOContext*        lto_context_t;
-
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -113,7 +111,7 @@ lto_module_is_object_file_in_memory_for_target(const void* mem, size_t length,
  * Returns NULL on error (check lto_get_error_message() for details).
  */
 extern lto_module_t
-lto_module_create(const char* path, LLVMContextRef Ctxt);
+lto_module_create(const char* path);
 
 
 /**
@@ -121,8 +119,7 @@ lto_module_create(const char* path, LLVMContextRef Ctxt);
  * Returns NULL on error (check lto_get_error_message() for details).
  */
 extern lto_module_t
-lto_module_create_from_memory(const void* mem, size_t length,
-                              LLVMContextRef Ctxt);
+lto_module_create_from_memory(const void* mem, size_t length);
 
 
 /**
@@ -166,7 +163,7 @@ lto_module_get_symbol_attribute(lto_module_t mod, unsigned int index);
  * Returns NULL on error (check lto_get_error_message() for details).
  */
 extern lto_code_gen_t
-lto_codegen_create(LLVMContextRef Ctxt);
+lto_codegen_create(void);
 
 
 /**
index 6f5e6bc77133717f628a04a65a23a7b381da6741..1a21132ef2f57cddb5502178f108e3efecf25468 100644 (file)
@@ -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 @@ const char* LTOCodeGenerator::getVersionString()
 }
 
 
-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),
index 7b0c284d4efae2e8308b37acbbdf446628324e8a..5548050fda01d68f481405fc5dc2b6fd4d0359f8 100644 (file)
@@ -31,7 +31,7 @@ class LTOCodeGenerator {
 public:
     static const char*        getVersionString();
     
-                            LTOCodeGenerator(llvm::LLVMContext& Context);
+                            LTOCodeGenerator();
                             ~LTOCodeGenerator();
                             
     bool                addModule(class LTOModule*, std::string& errMsg);
index 157928c89447cf3c8a73cacb740e362187e88150..9c8baef7d6a9a69a786c53c96975216f478183f0 100644 (file)
@@ -69,7 +69,7 @@ bool LTOModule::isBitcodeFileForTarget(const char* path,
 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(Module* m, TargetMachine* t)
 }
 
 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 @@ MemoryBuffer* LTOModule::makeBuffer(const void* mem, size_t length)
 
 
 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 @@ std::string getFeatureString(const char *TargetTriple) {
 }
 
 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
index 367ad1026f012e2c605eeba3770ccbb68961bf40..8fd3915e28ca46bf16ac91c34f86329462c7af0d 100644 (file)
@@ -32,7 +32,6 @@ namespace llvm {
     class GlobalValue;
     class Value;
     class Function;
-    class LLVMContext;
 }
 
 
@@ -52,10 +51,8 @@ public:
                                                     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 @@ private:
                                                     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);
 
index 02034bbf84660abfd4f8d883c901411bc772b729..648279834fa71d496ceb2099c84632cf1216aa78 100644 (file)
@@ -86,10 +86,9 @@ bool lto_module_is_object_file_in_memory_for_target(const void* mem,
 // 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 @@ lto_module_t lto_module_create(const char* path, LLVMContextRef Ctxt)
 // 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 @@ lto_symbol_attributes lto_module_get_symbol_attribute(lto_module_t mod,
 // 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();
 }