Add a global context, for easing backwards compatibility.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74574 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/llvm/LLVMContext.h b/include/llvm/LLVMContext.h
index 01c64a8..1d95502 100644
--- a/include/llvm/LLVMContext.h
+++ b/include/llvm/LLVMContext.h
@@ -197,6 +197,9 @@
   VectorType* getVectorTypeTruncatedElement(const VectorType* VTy);
 };
 
+/// FOR BACKWARDS COMPATIBILITY - Returns a global context.
+LLVMContext* getGlobalContext();
+
 }
 
 #endif
diff --git a/lib/VMCore/LLVMContext.cpp b/lib/VMCore/LLVMContext.cpp
index e0fe6ab..09c7fcc 100644
--- a/lib/VMCore/LLVMContext.cpp
+++ b/lib/VMCore/LLVMContext.cpp
@@ -15,10 +15,17 @@
 #include "llvm/LLVMContext.h"
 #include "llvm/Constants.h"
 #include "llvm/DerivedTypes.h"
+#include "llvm/Support/ManagedStatic.h"
 #include "LLVMContextImpl.h"
 
 using namespace llvm;
 
+static ManagedStatic<LLVMContext> GlobalContext;
+
+LLVMContext* getGlobalContext() {
+  return &*GlobalContext;
+}
+
 LLVMContext::LLVMContext() : pImpl(new LLVMContextImpl()) { }
 LLVMContext::~LLVMContext() { delete pImpl; }