diff --git a/lib/CodeGen/MachineFunction.cpp b/lib/CodeGen/MachineFunction.cpp
index 8bae7bb..0d442af 100644
--- a/lib/CodeGen/MachineFunction.cpp
+++ b/lib/CodeGen/MachineFunction.cpp
@@ -378,6 +378,33 @@
   return *mc;
 }
 
+/// lookUpDebugLocId - Look up the DebugLocTuple index with the given
+/// filename, line, and column. It may add a new filename and / or
+/// a new DebugLocTuple.
+unsigned MachineFunction::lookUpDebugLocId(const char *Filename, unsigned Line,
+                                           unsigned Col) {
+  unsigned FileId;
+  StringMap<unsigned>::iterator I =
+    DebugLocInfo.DebugFilenamesMap.find(Filename);
+  if (I != DebugLocInfo.DebugFilenamesMap.end())
+    FileId = I->second;
+  else {
+    // Add a new filename.
+    FileId = DebugLocInfo.NumFilenames++;
+    DebugLocInfo.DebugFilenames.push_back(Filename);
+    DebugLocInfo.DebugFilenamesMap[Filename] = FileId;
+  }
+
+  struct DebugLocTuple Tuple(FileId, Line, Col);
+  DebugIdMapType::iterator II = DebugLocInfo.DebugIdMap.find(Tuple);
+  if (II != DebugLocInfo.DebugIdMap.end())
+    return II->second;
+  // Add a new tuple.
+  DebugLocInfo.DebugLocations.push_back(Tuple);
+  DebugLocInfo.DebugIdMap[Tuple] = DebugLocInfo.NumDebugLocations;
+  return DebugLocInfo.NumDebugLocations++;
+}
+
 //===----------------------------------------------------------------------===//
 //  MachineFrameInfo implementation
 //===----------------------------------------------------------------------===//
