diff --git a/include/llvm/CodeGen/MachineModuleInfo.h b/include/llvm/CodeGen/MachineModuleInfo.h
index 3346c95..2e05c1f 100644
--- a/include/llvm/CodeGen/MachineModuleInfo.h
+++ b/include/llvm/CodeGen/MachineModuleInfo.h
@@ -755,6 +755,10 @@
   DIDeserializer() {}
   ~DIDeserializer() {}
   
+  const std::map<GlobalVariable *, DebugInfoDesc *> &getGlobalDescs() const {
+    return GlobalDescs;
+  }
+
   /// Deserialize - Reconstitute a GlobalVariable into it's component
   /// DebugInfoDesc objects.
   DebugInfoDesc *Deserialize(Value *V);
@@ -810,6 +814,9 @@
   /// Serialize - Recursively cast the specified descriptor into a
   /// GlobalVariable so that it can be serialized to a .bc or .ll file.
   GlobalVariable *Serialize(DebugInfoDesc *DD);
+
+  /// addDescriptor - Directly connect DD with existing GV.
+  void addDescriptor(DebugInfoDesc *DD, GlobalVariable *GV);
 };
 
 //===----------------------------------------------------------------------===//
@@ -1164,7 +1171,7 @@
     std::vector<T *> AnchoredDescs;
     for (unsigned i = 0, N = Globals.size(); i < N; ++i) {
       GlobalVariable *GV = Globals[i];
-      
+
       // FIXME - In the short term, changes are too drastic to continue.
       if (DebugInfoDesc::TagFromGlobal(GV) == Desc.getTag() &&
           DebugInfoDesc::VersionFromGlobal(GV) == LLVMDebugVersion) {
@@ -1276,6 +1283,7 @@
   /// of one is required to emit exception handling info.
   Function *getPersonality() const;
 
+  DIDeserializer *getDIDeserializer() { return &DR; }
 }; // End class MachineModuleInfo
 
 } // End llvm namespace
diff --git a/lib/CodeGen/MachineModuleInfo.cpp b/lib/CodeGen/MachineModuleInfo.cpp
index 8360745..9943fa9 100644
--- a/lib/CodeGen/MachineModuleInfo.cpp
+++ b/lib/CodeGen/MachineModuleInfo.cpp
@@ -1364,6 +1364,12 @@
   return GV;
 }
 
+/// addDescriptor - Directly connect DD with existing GV.
+void DISerializer::addDescriptor(DebugInfoDesc *DD,
+                                 GlobalVariable *GV) {
+  DescGlobals[DD] = GV;
+}
+
 //===----------------------------------------------------------------------===//
 
 /// Verify - Return true if the GlobalVariable appears to be a valid
