Make DebugLoc independent of DwarfWriter.

-Replace DebugLocTuple's Source ID with CompileUnit's GlobalVariable*
-Remove DwarfWriter::getOrCreateSourceID
-Make necessary changes for the above (fix callsites, etc.)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70520 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
index 9c43065..9d66609 100644
--- a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+++ b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
@@ -1269,9 +1269,6 @@
       GlobalVariable *CU_GV = cast<GlobalVariable>(DSP->getCompileUnit());
       if (DW && (useDEBUG_LOC || useLABEL) && !CU_GV->isDeclaration()) {
         DICompileUnit CU(cast<GlobalVariable>(DSP->getCompileUnit()));
-        std::string Dir, FN;
-        unsigned SrcFile = DW->getOrCreateSourceID(CU.getDirectory(Dir),
-                                                   CU.getFilename(FN));
 
         unsigned Line = DSP->getLine();
         unsigned Col = DSP->getColumn();
@@ -1282,10 +1279,10 @@
           if (useDEBUG_LOC) {
             SDValue Ops[] = { Tmp1, DAG.getConstant(Line, MVT::i32),
                               DAG.getConstant(Col, MVT::i32),
-                              DAG.getConstant(SrcFile, MVT::i32) };
+                              DAG.getSrcValue(CU.getGV()) };
             Result = DAG.getNode(ISD::DEBUG_LOC, dl, MVT::Other, Ops, 4);
           } else {
-            unsigned ID = DW->RecordSourceLine(Line, Col, SrcFile);
+            unsigned ID = DW->RecordSourceLine(Line, Col, CU);
             Result = DAG.getLabel(ISD::DBG_LABEL, dl, Tmp1, ID);
           }
         } else {