diff --git a/lib/Analysis/DebugInfo.cpp b/lib/Analysis/DebugInfo.cpp
index 0d0d27c..fe19ff8 100644
--- a/lib/Analysis/DebugInfo.cpp
+++ b/lib/Analysis/DebugInfo.cpp
@@ -1059,14 +1059,14 @@
     StringRef FName = "fn";
     if (Fn.getFunction())
       FName = Fn.getFunction()->getName();
-    const Twine FnLVName = Twine("llvm.dbg.lv.", FName);
     char One = '\1';
     if (FName.startswith(StringRef(&One, 1)))
       FName = FName.substr(1);
-
-    NamedMDNode *FnLocals = M.getNamedMetadataUsingTwine(FnLVName);
+    NamedMDNode *FnLocals = 
+      M.getNamedMetadataUsingTwine(Twine("llvm.dbg.lv.", FName));
     if (!FnLocals)
-      FnLocals = NamedMDNode::Create(VMContext, FnLVName, NULL, 0, &M);
+      FnLocals = NamedMDNode::Create(VMContext, Twine("llvm.dbg.lv.", FName),
+                                     NULL, 0, &M);
     FnLocals->addOperand(Node);
   }
   return DIVariable(Node);
diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
index 5f55a3d..41e4bfb 100644
--- a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
+++ b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
@@ -2257,9 +2257,10 @@
   }
 
   // Collect info for variables that were optimized out.
-  const Twine FnLVName = Twine("llvm.dbg.lv.", MF->getFunction()->getName());
-  if (NamedMDNode *NMD =
-      MF->getFunction()->getParent()->getNamedMetadataUsingTwine(FnLVName)) {
+  const Function *F = MF->getFunction();
+  const Module *M = F->getParent();
+  if (NamedMDNode *NMD = 
+      M->getNamedMetadataUsingTwine(Twine("llvm.dbg.lv.", F->getName()))) {
     for (unsigned i = 0, e = NMD->getNumOperands(); i != e; ++i) {
       DIVariable DV(cast_or_null<MDNode>(NMD->getOperand(i)));
       if (!DV || !Processed.insert(DV))
